-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
is there an acutal reason, why joysticks and/or gamepads are ignored inside libinput. Is it just, that they are not yet implemented, or are there some real reasons? If the answer is that nobody has yet written the code, would someone of the more knowledgeable persons on the list be willing to help me a little (most likely a lot) to put some code together? best wishes Michael Am 21.01.2015 um 12:04 schrieb Hans de Goede: > After switching my main workstation over to using > xf86-input-libinput, I noticed that the multi-media keys like > play/pause on my keyboard no longer worked. > > It turns out that the second hid interface on my keyboard which has > the multimedia-keys, also declares having: BTN_BASE6 and BTN_MODE > which both fell into the range we were using to test for something > being a joystick. > > The commit makes our joystick test mode strict, restoring > functionality of the multi-media keys on the keyboard in question. > > Signed-off-by: Hans de Goede <[email protected]> --- src/evdev.c > | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 > deletions(-) > > diff --git a/src/evdev.c b/src/evdev.c index 6edacba..b2bb2aa > 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1324,7 +1324,7 @@ > evdev_configure_device(struct evdev_device *device) struct libevdev > *evdev = device->evdev; const struct input_absinfo *absinfo; int > has_abs, has_rel, has_mt; - int has_button, has_keyboard, > has_touch; + int has_button, has_keyboard, has_touch, > has_joy_button; struct mt_slot *slots; int num_slots; int > active_slot; @@ -1336,17 +1336,24 @@ evdev_configure_device(struct > evdev_device *device) has_abs = 0; has_mt = 0; has_button = 0; + > has_joy_button = 0; has_keyboard = 0; has_touch = 0; > > - for (i = BTN_JOYSTICK; i < BTN_DIGI; i++) { - > if (libevdev_has_event_code(evdev, EV_KEY, i)) { - > log_info(libinput, - "input device > '%s', %s is a joystick, ignoring\n", - > device->devname, devnode); - return -1; - > } - } + for (i = BTN_JOYSTICK; i <= BTN_PINKIE; i++) + > if > (libevdev_has_event_code(evdev, EV_KEY, i)) + has_joy_button = > 1; + + for (i = BTN_GAMEPAD; i <= BTN_TR2; i++) + if > (libevdev_has_event_code(evdev, EV_KEY, i)) + has_joy_button = > 1; + + if (has_joy_button) { + log_info(libinput, + > "input > device '%s', %s is a joystick, ignoring\n", + > device->devname, > devnode); + return -1; + } > > if (libevdev_has_event_type(evdev, EV_ABS)) { > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJUv4yzAAoJECfkpCAi2eFKOX0H/RYolCotiuoU6qWeTPQbiQ3x RYcekI/lp94SkuUEtGwNleILrAV+FWfYQ8v49nP9BNZucSbJ5/qPuC3py+2J2pS0 XQcY8hUm9wq0FAxxMhunXO2y5qSXwjgZB/fbZe5gzVHrggSQQNlNMTh4ZPdzmpz/ 2yKF1CMXIFmeLHqGAIEGx3cu+6tUhFKiMFKJPYa4FCyp3uqvQhUeGnkceUaH7FER k9BFZ1XpNwEGZw+yT+DxNVaE/YJQPEle1xE1a20fRI1YCkbfy3q0VQA2+h1tdfMl C1WV1sJArJnsks3PFK1iMYiOoAC0YMEJpsh4UQH2MAzrUPyY3e+9yOaVxlJFXMs= =gymn -----END PGP SIGNATURE----- _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
