The input_server now works on R5 and on Haiku (depending on COMPILE_FOR_R5).
Fixed two minor warnings. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11063 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
56833e831f
commit
e4e9b6a7a4
@ -8,7 +8,7 @@
|
|||||||
// where noted, are licensed under the MIT License, and have been written
|
// where noted, are licensed under the MIT License, and have been written
|
||||||
// and are:
|
// and are:
|
||||||
//
|
//
|
||||||
// Copyright (c) 2002-2004 Haiku Project
|
// Copyright (c) 2002-2005 Haiku Project
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
// copy of this software and associated documentation files (the "Software"),
|
// copy of this software and associated documentation files (the "Software"),
|
||||||
@ -30,18 +30,20 @@
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <Deskbar.h>
|
#include <Deskbar.h>
|
||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
#include <Entry.h>
|
#include <Entry.h>
|
||||||
#include <File.h>
|
#include <File.h>
|
||||||
#include <FindDirectory.h>
|
#include <FindDirectory.h>
|
||||||
#include <Locker.h>
|
|
||||||
#include <Message.h>
|
|
||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
#include <Roster.h>
|
#include <Roster.h>
|
||||||
|
#include <Locker.h>
|
||||||
|
#include <Message.h>
|
||||||
#include <String.h>
|
#include <String.h>
|
||||||
#include <OS.h>
|
#include <OS.h>
|
||||||
|
#include <driver_settings.h>
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "InputServer.h"
|
#include "InputServer.h"
|
||||||
#include "InputServerTypes.h"
|
#include "InputServerTypes.h"
|
||||||
@ -60,8 +62,11 @@ extern "C" void RegisterDevices(input_device_ref** devices)
|
|||||||
CALLED();
|
CALLED();
|
||||||
};
|
};
|
||||||
|
|
||||||
// i don't know the exact signature but this one works
|
#ifdef COMPILE_FOR_R5
|
||||||
extern "C" status_t _kget_safemode_option_(char* name, uint8 *p1, uint32 *p2);
|
extern "C" status_t _kget_safemode_option_(const char *parameter, char *buffer, size_t *_bufferSize);
|
||||||
|
#else
|
||||||
|
extern "C" status_t _kern_get_safemode_option(const char *parameter, char *buffer, size_t *_bufferSize);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// Static InputServer member variables.
|
// Static InputServer member variables.
|
||||||
@ -93,7 +98,6 @@ instantiate_deskbar_item()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -121,32 +125,40 @@ InputServer::InputServer(void) : BApplication(INPUTSERVER_SIGNATURE),
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
CALLED();
|
CALLED();
|
||||||
|
|
||||||
EventLoop();
|
|
||||||
|
|
||||||
uint8 p1;
|
|
||||||
uint32 p2 = 1;
|
|
||||||
|
|
||||||
if (_kget_safemode_option_("safemode", &p1, &p2) == B_OK)
|
|
||||||
sSafeMode = true;
|
|
||||||
|
|
||||||
gDeviceManager.LoadState();
|
|
||||||
|
|
||||||
#ifdef COMPILE_FOR_R5
|
|
||||||
|
|
||||||
|
EventLoop();
|
||||||
|
|
||||||
|
char parameter[32];
|
||||||
|
size_t parameterLength = sizeof(parameter);
|
||||||
|
|
||||||
|
#ifdef COMPILE_FOR_R5
|
||||||
|
if (_kget_safemode_option_(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK) {
|
||||||
|
#else
|
||||||
|
if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE, parameter, ¶meterLength) == B_OK) {
|
||||||
|
#endif
|
||||||
|
if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
|
||||||
|
|| !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
|
||||||
|
|| !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
|
||||||
|
sSafeMode = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
gDeviceManager.LoadState();
|
||||||
|
|
||||||
|
#ifdef COMPILE_FOR_R5
|
||||||
if (has_data(find_thread(NULL))) {
|
if (has_data(find_thread(NULL))) {
|
||||||
PRINT(("HasData == YES\n"));
|
PRINT(("HasData == YES\n"));
|
||||||
int32 buffer[2];
|
int32 buffer[2];
|
||||||
thread_id appThreadId;
|
thread_id appThreadId;
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
int32 code = receive_data(&appThreadId, buffer, 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));
|
PRINT(("tid : %ld, code :%ld\n", appThreadId, code));
|
||||||
for (int32 i=0; i<2; i++) {
|
for (int32 i = 0; i < 2; i++) {
|
||||||
PRINT(("data : %lx\n", buffer[i]));
|
PRINT(("data : %lx\n", buffer[i]));
|
||||||
}
|
}
|
||||||
fCursorSem = buffer[0];
|
fCursorSem = buffer[0];
|
||||||
area_id appArea = buffer[1];
|
area_id appArea = buffer[1];
|
||||||
|
|
||||||
fCloneArea = clone_area("isClone", (void**)&fAppBuffer, B_ANY_ADDRESS, B_READ_AREA|B_WRITE_AREA, appArea);
|
fCloneArea = clone_area("isClone", (void**)&fAppBuffer, B_ANY_ADDRESS, B_READ_AREA|B_WRITE_AREA, appArea);
|
||||||
if (fCloneArea < B_OK) {
|
if (fCloneArea < B_OK) {
|
||||||
PRINTERR(("clone_area error : %s\n", strerror(fCloneArea)));
|
PRINTERR(("clone_area error : %s\n", strerror(fCloneArea)));
|
||||||
@ -155,19 +167,18 @@ InputServer::InputServer(void) : BApplication(INPUTSERVER_SIGNATURE),
|
|||||||
fAsPort = create_port(100, "is_as");
|
fAsPort = create_port(100, "is_as");
|
||||||
|
|
||||||
PRINT(("is_as port :%ld\n", fAsPort));
|
PRINT(("is_as port :%ld\n", fAsPort));
|
||||||
|
|
||||||
buffer[1] = fEventLooperPort;
|
buffer[1] = fEventLooperPort;
|
||||||
buffer[0] = fAsPort;
|
buffer[0] = fAsPort;
|
||||||
|
|
||||||
status_t err;
|
status_t err;
|
||||||
if ((err = send_data(appThreadId, 0, buffer, sizeof(buffer)))!=B_OK)
|
if ((err = send_data(appThreadId, 0, buffer, sizeof(buffer)))!=B_OK)
|
||||||
PRINTERR(("error when send_data %s\n", strerror(err)));
|
PRINTERR(("error when send_data %s\n", strerror(err)));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
InitKeyboardMouseStates();
|
InitKeyboardMouseStates();
|
||||||
|
|
||||||
fAddOnManager = new AddOnManager(SafeMode());
|
fAddOnManager = new AddOnManager(SafeMode());
|
||||||
fAddOnManager->LoadState();
|
fAddOnManager->LoadState();
|
||||||
|
|
||||||
@ -1641,7 +1652,6 @@ InputServer::ControlDevices(const char* name, input_device_type type, uint32 cod
|
|||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
else
|
else
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1655,6 +1665,9 @@ InputServer::DoMouseAcceleration(int32 *x,
|
|||||||
{
|
{
|
||||||
CALLED();
|
CALLED();
|
||||||
int32 speed = fMouseSettings.MouseSpeed() >> 15;
|
int32 speed = fMouseSettings.MouseSpeed() >> 15;
|
||||||
|
|
||||||
|
// ToDo: implement mouse acceleration
|
||||||
|
(void)speed;
|
||||||
//*y = *x * speed;
|
//*y = *x * speed;
|
||||||
PRINT(("DoMouse : %ld %ld %ld %ld\n", *x, *y, speed, fMouseSettings.MouseSpeed()));
|
PRINT(("DoMouse : %ld %ld %ld %ld\n", *x, *y, speed, fMouseSettings.MouseSpeed()));
|
||||||
return true;
|
return true;
|
||||||
|
@ -60,13 +60,13 @@ Server input_server :
|
|||||||
AddOnMonitorHandler.cpp
|
AddOnMonitorHandler.cpp
|
||||||
NodeMonitorHandler.cpp
|
NodeMonitorHandler.cpp
|
||||||
|
|
||||||
: be
|
: stdc++.r4
|
||||||
;
|
;
|
||||||
|
|
||||||
if $(COMPILE_FOR_R5) {
|
if $(COMPILE_FOR_R5) {
|
||||||
LinkSharedOSLibs input_server : stdc++.r4 ;
|
LinkSharedOSLibs input_server : be ;
|
||||||
} else {
|
} else {
|
||||||
LinkSharedOSLibs input_server : <boot!home!config!lib>libopenbeos.so stdc++.r4 ;
|
LinkSharedOSLibs input_server : libroot.so libbe.so ;
|
||||||
}
|
}
|
||||||
|
|
||||||
SEARCH on [ FGristFiles AddOnMonitor.cpp
|
SEARCH on [ FGristFiles AddOnMonitor.cpp
|
||||||
|
Loading…
Reference in New Issue
Block a user