Fixed --no-extra-devices
This commit is contained in:
parent
6da095af71
commit
4e9279fb87
5 changed files with 41 additions and 28 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue