* 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:
Axel Dörfler
2009-12-05 15:07:49 +00:00
parent f0f0a2d136
commit efb527ca96
3 changed files with 6 additions and 167 deletions
+5 -98
View File
@@ -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, &parameterLength) == B_OK)
#else
if (_kget_safemode_option_(B_SAFEMODE_SAFE_MODE, parameter, &parameterLength) == B_OK)
#endif
{
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter,
&parameterLength) == 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, &parameterLength) == B_OK)
#else
if (_kget_safemode_option_(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter, &parameterLength) == B_OK)
#endif
{
if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS, parameter,
&parameterLength) == 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
}
-4
View File
@@ -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 -65
View File
@@ -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