* Removed BeOS drop-in support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34511 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "MethodReplicant.h"
|
||||
|
||||
#include <safemode_defs.h>
|
||||
#include <syscalls.h>
|
||||
|
||||
#include <AppServerLink.h>
|
||||
#include <MessagePrivate.h>
|
||||
@@ -39,15 +40,6 @@
|
||||
using std::nothrow;
|
||||
|
||||
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
extern "C" status_t _kern_get_safemode_option(const char *parameter,
|
||||
char *buffer, size_t *_bufferSize);
|
||||
#else
|
||||
extern "C" status_t _kget_safemode_option_(const char *parameter,
|
||||
char *buffer, size_t *_bufferSize);
|
||||
#endif
|
||||
|
||||
|
||||
// Global InputServer member variables.
|
||||
|
||||
InputServer* gInputServer;
|
||||
@@ -172,64 +164,22 @@ InputServer::InputServer()
|
||||
char parameter[32];
|
||||
size_t parameterLength = sizeof(parameter);
|
||||
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK)
|
||||
#else
|
||||
if (_kget_safemode_option_(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK)
|
||||
#endif
|
||||
{
|
||||
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter,
|
||||
¶meterLength) == B_OK) {
|
||||
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
||||
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
||||
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
||||
fSafeMode = true;
|
||||
}
|
||||
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter, ¶meterLength) == B_OK)
|
||||
#else
|
||||
if (_kget_safemode_option_(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter, ¶meterLength) == B_OK)
|
||||
#endif
|
||||
{
|
||||
if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter,
|
||||
¶meterLength) == B_OK) {
|
||||
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
||||
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
||||
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
||||
fSafeMode = true;
|
||||
}
|
||||
|
||||
#ifndef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
if (has_data(find_thread(NULL))) {
|
||||
PRINT(("HasData == YES\n"));
|
||||
int32 buffer[2];
|
||||
thread_id appThreadId;
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
int32 code = receive_data(&appThreadId, buffer, sizeof(buffer));
|
||||
(void)code; // suppresses warning in non-debug build
|
||||
PRINT(("tid : %ld, code :%ld\n", appThreadId, code));
|
||||
for (int32 i = 0; i < 2; i++) {
|
||||
PRINT(("data : %lx\n", buffer[i]));
|
||||
}
|
||||
fCursorSem = buffer[0];
|
||||
area_id appArea = buffer[1];
|
||||
|
||||
fCursorArea = clone_area("isClone", (void**)&fCursorBuffer,
|
||||
B_ANY_ADDRESS, B_READ_AREA|B_WRITE_AREA, appArea);
|
||||
if (fCursorArea < B_OK) {
|
||||
PRINTERR(("clone_area error : %s\n", strerror(fCloneArea)));
|
||||
}
|
||||
|
||||
fAppServerPort = create_port(100, "is_as");
|
||||
|
||||
PRINT(("is_as port :%ld\n", fAppServerPort));
|
||||
|
||||
buffer[1] = fEventLooperPort;
|
||||
buffer[0] = fAppServerPort;
|
||||
|
||||
status_t err;
|
||||
if ((err = send_data(appThreadId, 0, buffer, sizeof(buffer)))!=B_OK)
|
||||
PRINTERR(("error when send_data %s\n", strerror(err)));
|
||||
}
|
||||
#endif
|
||||
|
||||
_InitKeyboardMouseStates();
|
||||
|
||||
fAddOnManager = new(std::nothrow) ::AddOnManager(SafeMode());
|
||||
@@ -477,9 +427,7 @@ InputServer::_ReleaseInput(BMessage* /*message*/)
|
||||
{
|
||||
if (fCursorBuffer != NULL) {
|
||||
fCursorBuffer = NULL;
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
delete_sem(fCursorSem);
|
||||
#endif
|
||||
delete_area(fCursorArea);
|
||||
|
||||
fCursorSem = -1;
|
||||
@@ -1538,28 +1486,6 @@ InputServer::_SanitizeEvents(EventList& events)
|
||||
for (int32 index = 0; BMessage* event = (BMessage*)events.ItemAt(index);
|
||||
index++) {
|
||||
switch (event->what) {
|
||||
#ifndef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
case IS_SCREEN_BOUNDS_UPDATED:
|
||||
{
|
||||
// This is what the R5 app_server sends us when the screen
|
||||
// configuration changes
|
||||
BRect frame;
|
||||
if (event->FindRect("screen_bounds", &frame) != B_OK)
|
||||
frame = fScreen.Frame();
|
||||
|
||||
if (frame != fFrame) {
|
||||
fMousePos.x = fMousePos.x * frame.Width() / fFrame.Width();
|
||||
fMousePos.y = fMousePos.y * frame.Height() / fFrame.Height();
|
||||
fFrame = frame;
|
||||
} else {
|
||||
// TODO: discard event
|
||||
}
|
||||
|
||||
event->what = B_MOUSE_MOVED;
|
||||
event->AddPoint("where", fMousePos);
|
||||
// supposed to fall through
|
||||
}
|
||||
#endif
|
||||
case B_MOUSE_MOVED:
|
||||
case B_MOUSE_DOWN:
|
||||
{
|
||||
@@ -1819,19 +1745,10 @@ InputServer::_DispatchEvent(BMessage* event)
|
||||
case B_MOUSE_DOWN:
|
||||
case B_MOUSE_UP:
|
||||
if (fCursorBuffer) {
|
||||
#ifndef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
fCursorBuffer[0] = (0x3 << 30L)
|
||||
| ((uint32)fMousePos.x & 0x7fff) << 15
|
||||
| ((uint32)fMousePos.y & 0x7fff);
|
||||
|
||||
PRINT(("released cursorSem with value : %08lx\n", fCursorBuffer[0]));
|
||||
release_sem(fCursorSem);
|
||||
#else
|
||||
atomic_set((int32*)&fCursorBuffer->pos, (uint32)fMousePos.x << 16UL
|
||||
| ((uint32)fMousePos.y & 0xffff));
|
||||
if (atomic_or(&fCursorBuffer->read, 1) == 0)
|
||||
release_sem(fCursorSem);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1868,19 +1785,9 @@ InputServer::_DispatchEvent(BMessage* event)
|
||||
break;
|
||||
}
|
||||
|
||||
#if defined(HAIKU_TARGET_PLATFORM_HAIKU)
|
||||
BMessenger reply;
|
||||
BMessage::Private messagePrivate(event);
|
||||
return messagePrivate.SendMessage(fAppServerPort, -1, 0, true, 0, reply);
|
||||
#else
|
||||
ssize_t length = event->FlattenedSize();
|
||||
char buffer[length];
|
||||
status_t err;
|
||||
if ((err = event->Flatten(buffer,length)) < B_OK)
|
||||
return err;
|
||||
|
||||
return write_port(fAppServerPort, 0, buffer, length);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -243,11 +243,7 @@ class InputServer : public BApplication {
|
||||
sem_id fCursorSem;
|
||||
port_id fAppServerPort;
|
||||
area_id fCursorArea;
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
shared_cursor* fCursorBuffer;
|
||||
#else
|
||||
uint32* fCursorBuffer;
|
||||
#endif
|
||||
};
|
||||
|
||||
extern InputServer* gInputServer;
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
/*
|
||||
* input_server.rdef
|
||||
*/
|
||||
|
||||
resource app_signature "application/x-vnd.Be-input_server";
|
||||
|
||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||
@@ -15,11 +11,9 @@ resource app_version {
|
||||
internal = 0,
|
||||
|
||||
short_info = "input_server",
|
||||
long_info = "input_server ©2002-2008 Haiku"
|
||||
long_info = "input_server ©2002-2009 Haiku"
|
||||
};
|
||||
|
||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
resource vector_icon array {
|
||||
$"6E6369660804016E05010200060339A8B53A3D37BF18F73E87E74C12504788C9"
|
||||
$"00AAB5BE77E9ECF0FFAAB5BE020006033AAE0D382BEDBD010D3FB50F4B0D3246"
|
||||
@@ -39,61 +33,3 @@ resource vector_icon array {
|
||||
$"A1FEBBA1FE3FE5414670ABC64A300A01010630201E01178400040A0701062020"
|
||||
$"1E"
|
||||
};
|
||||
|
||||
#else // !HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
resource large_icon array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF"
|
||||
$"FFFFFFFFFF000000000000000000000000000000FFFF003FD9D9D90000FFFFFF"
|
||||
$"FFFFFFFF003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F00003FD9D9D9D9D9D90000FF"
|
||||
$"FFFFFFFF003FD9D9D9D9D9D9D9D9D9D9D9D9D9D93F3F0000D9D9D9D9D9D98300"
|
||||
$"FFFFFFFF003FD98383838383838383D9D9D9D9D9D98383830000D9D9D983AA00"
|
||||
$"FFFFFFFF110000000000000000003FD9D9D9D9D900003FD93F3F000083AAAA00"
|
||||
$"FFFFFFFFFF11111111111111003FD9D9D90000003F170000D9D93F3F0000AA00"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFF003FD9D9D90017003F170A17170000D9D983010011"
|
||||
$"FFFFFFFFFFFFFFFFFFFF003FD9D9D900170000113F3F17171700AAD9D9830117"
|
||||
$"FFFFFFFFFFFFFFFFFF003FD9D900001700D9000011113F170A00AAD9D9830111"
|
||||
$"FFFFFFFFFFFFFFFF003FD9D9003F170000D9D9D90000110A00AAAAD983830011"
|
||||
$"FFFFFFFFFFFFFF003FD9D9003F0B1717180000D9D9D90000AAAAD98383011111"
|
||||
$"FFFFFFFFFFFF003FD983003F0B170B170B17170000D9D9D9D9D98383001111FF"
|
||||
$"FFFFFFFFFF003FD983003F0B170B170B17170A0B00AAD9D9D98383001111FFFF"
|
||||
$"FFFFFFFF003FD983003F0B170B170B17170A0A00AAAAD9D98383001111FFFFFF"
|
||||
$"FFFFFF003FD983003F0B170B170B17170B0A00AAAAD9D98383001111FFFFFFFF"
|
||||
$"FFFF003FD983003F0B170B170B17170B0A00AAAAD9D98383001111FFFFFFFFFF"
|
||||
$"FF003FD983003F3F180A180A18170A0B00AAAAD9D98383011111FFFFFFFFFFFF"
|
||||
$"003FD983830011113F3F0B17170A0A00AAAAD9D98383001111FFFFFFFFFFFFFF"
|
||||
$"00D983830000111111113F170A0A00AAAAD9D98383001111FFFFFFFFFFFFFFFF"
|
||||
$"FF0000003FD900001111110A0B00AAAAD9D98383001111FFFFFFFFFFFFFFFFFF"
|
||||
$"FFFF003FD9D983830000110A00AAAAD9D98383001111FFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFF00D9D98383003FD90000AAAAD9D98383001111FFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFF0083830000D9D9838300D9D98383001111FFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFF0000FFFF000000003FD98300001111FFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFF000000111111FFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
resource mini_icon array {
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF"
|
||||
$"FFFFFF0000000000000000D9D90000FF"
|
||||
$"FFFF00D9D9D9D9D9D9D9D9AAAAD98300"
|
||||
$"FFFF0000000000D9D909833F3FAAAA00"
|
||||
$"FFFF11111100D90604171209D9D9AA00"
|
||||
$"FFFFFFFF00D90300D9090D083FD98301"
|
||||
$"FFFFFF00D9001A1601D909AAD9830011"
|
||||
$"FFFF00D9001A13160D03D9D9830011FF"
|
||||
$"FF00D9001A13160D01AAD9830011FFFF"
|
||||
$"00D9001A13160D01AAD9830011FFFFFF"
|
||||
$"008301131A0D00AAD9830011FFFFFFFF"
|
||||
$"FF0001011301AAD9830011FFFFFFFFFF"
|
||||
$"FFFF0000000000000011FFFFFFFFFFFF"
|
||||
$"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
};
|
||||
|
||||
#endif // !HAIKU_TARGET_PLATFORM_HAIKU
|
||||
|
||||
Reference in New Issue
Block a user