* 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 "MethodReplicant.h"
|
||||||
|
|
||||||
#include <safemode_defs.h>
|
#include <safemode_defs.h>
|
||||||
|
#include <syscalls.h>
|
||||||
|
|
||||||
#include <AppServerLink.h>
|
#include <AppServerLink.h>
|
||||||
#include <MessagePrivate.h>
|
#include <MessagePrivate.h>
|
||||||
@@ -39,15 +40,6 @@
|
|||||||
using std::nothrow;
|
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.
|
// Global InputServer member variables.
|
||||||
|
|
||||||
InputServer* gInputServer;
|
InputServer* gInputServer;
|
||||||
@@ -172,64 +164,22 @@ InputServer::InputServer()
|
|||||||
char parameter[32];
|
char parameter[32];
|
||||||
size_t parameterLength = sizeof(parameter);
|
size_t parameterLength = sizeof(parameter);
|
||||||
|
|
||||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter,
|
||||||
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK)
|
¶meterLength) == B_OK) {
|
||||||
#else
|
|
||||||
if (_kget_safemode_option_(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
||||||
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
||||||
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
||||||
fSafeMode = true;
|
fSafeMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter,
|
||||||
if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter, ¶meterLength) == B_OK)
|
¶meterLength) == B_OK) {
|
||||||
#else
|
|
||||||
if (_kget_safemode_option_(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter, ¶meterLength) == B_OK)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
||||||
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
||||||
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
||||||
fSafeMode = true;
|
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();
|
_InitKeyboardMouseStates();
|
||||||
|
|
||||||
fAddOnManager = new(std::nothrow) ::AddOnManager(SafeMode());
|
fAddOnManager = new(std::nothrow) ::AddOnManager(SafeMode());
|
||||||
@@ -477,9 +427,7 @@ InputServer::_ReleaseInput(BMessage* /*message*/)
|
|||||||
{
|
{
|
||||||
if (fCursorBuffer != NULL) {
|
if (fCursorBuffer != NULL) {
|
||||||
fCursorBuffer = NULL;
|
fCursorBuffer = NULL;
|
||||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
|
||||||
delete_sem(fCursorSem);
|
delete_sem(fCursorSem);
|
||||||
#endif
|
|
||||||
delete_area(fCursorArea);
|
delete_area(fCursorArea);
|
||||||
|
|
||||||
fCursorSem = -1;
|
fCursorSem = -1;
|
||||||
@@ -1538,28 +1486,6 @@ InputServer::_SanitizeEvents(EventList& events)
|
|||||||
for (int32 index = 0; BMessage* event = (BMessage*)events.ItemAt(index);
|
for (int32 index = 0; BMessage* event = (BMessage*)events.ItemAt(index);
|
||||||
index++) {
|
index++) {
|
||||||
switch (event->what) {
|
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_MOVED:
|
||||||
case B_MOUSE_DOWN:
|
case B_MOUSE_DOWN:
|
||||||
{
|
{
|
||||||
@@ -1819,19 +1745,10 @@ InputServer::_DispatchEvent(BMessage* event)
|
|||||||
case B_MOUSE_DOWN:
|
case B_MOUSE_DOWN:
|
||||||
case B_MOUSE_UP:
|
case B_MOUSE_UP:
|
||||||
if (fCursorBuffer) {
|
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
|
atomic_set((int32*)&fCursorBuffer->pos, (uint32)fMousePos.x << 16UL
|
||||||
| ((uint32)fMousePos.y & 0xffff));
|
| ((uint32)fMousePos.y & 0xffff));
|
||||||
if (atomic_or(&fCursorBuffer->read, 1) == 0)
|
if (atomic_or(&fCursorBuffer->read, 1) == 0)
|
||||||
release_sem(fCursorSem);
|
release_sem(fCursorSem);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1868,19 +1785,9 @@ InputServer::_DispatchEvent(BMessage* event)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAIKU_TARGET_PLATFORM_HAIKU)
|
|
||||||
BMessenger reply;
|
BMessenger reply;
|
||||||
BMessage::Private messagePrivate(event);
|
BMessage::Private messagePrivate(event);
|
||||||
return messagePrivate.SendMessage(fAppServerPort, -1, 0, true, 0, reply);
|
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;
|
sem_id fCursorSem;
|
||||||
port_id fAppServerPort;
|
port_id fAppServerPort;
|
||||||
area_id fCursorArea;
|
area_id fCursorArea;
|
||||||
#ifdef HAIKU_TARGET_PLATFORM_HAIKU
|
|
||||||
shared_cursor* fCursorBuffer;
|
shared_cursor* fCursorBuffer;
|
||||||
#else
|
|
||||||
uint32* fCursorBuffer;
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern InputServer* gInputServer;
|
extern InputServer* gInputServer;
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
/*
|
|
||||||
* input_server.rdef
|
|
||||||
*/
|
|
||||||
|
|
||||||
resource app_signature "application/x-vnd.Be-input_server";
|
resource app_signature "application/x-vnd.Be-input_server";
|
||||||
|
|
||||||
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP;
|
||||||
@@ -15,11 +11,9 @@ resource app_version {
|
|||||||
internal = 0,
|
internal = 0,
|
||||||
|
|
||||||
short_info = "input_server",
|
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 {
|
resource vector_icon array {
|
||||||
$"6E6369660804016E05010200060339A8B53A3D37BF18F73E87E74C12504788C9"
|
$"6E6369660804016E05010200060339A8B53A3D37BF18F73E87E74C12504788C9"
|
||||||
$"00AAB5BE77E9ECF0FFAAB5BE020006033AAE0D382BEDBD010D3FB50F4B0D3246"
|
$"00AAB5BE77E9ECF0FFAAB5BE020006033AAE0D382BEDBD010D3FB50F4B0D3246"
|
||||||
@@ -39,61 +33,3 @@ resource vector_icon array {
|
|||||||
$"A1FEBBA1FE3FE5414670ABC64A300A01010630201E01178400040A0701062020"
|
$"A1FEBBA1FE3FE5414670ABC64A300A01010630201E01178400040A0701062020"
|
||||||
$"1E"
|
$"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