Fixed --no-extra-devices

This commit is contained in:
Ingo Ruhnke 2011-01-29 20:10:51 +01:00
parent 6da095af71
commit 4e9279fb87
5 changed files with 41 additions and 28 deletions

View file

@ -193,6 +193,10 @@ LinuxUinput::finish()
// nothing to be done
break;
case kKeyboardDevice:
// FIXME: do something clever
break;
case kMouseDevice:
add_rel(REL_X);
add_rel(REL_Y);

View file

@ -28,7 +28,7 @@ class ForceFeedbackHandler;
class LinuxUinput
{
public:
enum DeviceType { kGenericDevice, kMouseDevice, kJoystickDevice };
enum DeviceType { kGenericDevice, kKeyboardDevice, kMouseDevice, kJoystickDevice };
private:
DeviceType m_device_type;

View file

@ -105,30 +105,37 @@ UIEvent::resolve_device_id(int slot, bool extra_devices)
if (m_device_id == DEVICEID_AUTO)
{
switch(type)
if (extra_devices)
{
case EV_KEY:
if (is_mouse_button(code))
{
switch(type)
{
case EV_KEY:
if (is_mouse_button(code))
{
m_device_id = DEVICEID_MOUSE;
}
else if (is_keyboard_button(code))
{
m_device_id = DEVICEID_KEYBOARD;
}
else
{
m_device_id = DEVICEID_JOYSTICK;
}
break;
case EV_REL:
m_device_id = DEVICEID_MOUSE;
}
else if (is_keyboard_button(code))
{
m_device_id = DEVICEID_KEYBOARD;
}
else
{
break;
case EV_ABS:
m_device_id = DEVICEID_JOYSTICK;
}
break;
case EV_REL:
m_device_id = DEVICEID_MOUSE;
break;
case EV_ABS:
m_device_id = DEVICEID_JOYSTICK;
break;
break;
}
}
else
{
m_device_id = DEVICEID_GENERIC;
}
}

View file

@ -23,11 +23,12 @@
#include <stdint.h>
enum {
DEVICEID_INVALID = static_cast<uint16_t>(-4),
DEVICEID_KEYBOARD = static_cast<uint16_t>(-3),
DEVICEID_MOUSE = static_cast<uint16_t>(-2),
DEVICEID_INVALID = static_cast<uint16_t>(-5),
DEVICEID_KEYBOARD = static_cast<uint16_t>(-4),
DEVICEID_MOUSE = static_cast<uint16_t>(-3),
DEVICEID_JOYSTICK = static_cast<uint16_t>(-2),
DEVICEID_AUTO = static_cast<uint16_t>(-1),
DEVICEID_JOYSTICK = 0
DEVICEID_GENERIC = static_cast<uint16_t>(0)
};
enum {

View file

@ -142,7 +142,7 @@ UInput::create_uinput_device(uint32_t device_id)
else
{
log_debug("create device: " << device_id);
LinuxUinput::DeviceType device_type = LinuxUinput::kGenericDevice;
LinuxUinput::DeviceType device_type;
switch (device_id)
{
@ -155,10 +155,11 @@ UInput::create_uinput_device(uint32_t device_id)
break;
case DEVICEID_KEYBOARD:
device_type = LinuxUinput::kGenericDevice;
device_type = LinuxUinput::kKeyboardDevice;
break;
default:
device_type = LinuxUinput::kGenericDevice;
break;
}