summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Expósito <jose.exposito89@gmail.com>2021-11-23 18:07:27 +0100
committerPeter Hutterer <peter.hutterer@who-t.net>2021-12-03 00:20:47 +0000
commita694a06b925009d836e5ba17cb73e29fdbcb188c (patch)
tree80a2a92a32d7245d453538bbd2fbb3e828a69e6e
parentfbe5d35dca88ae9a751623cbfa3b6ed2f012ec83 (diff)
downloadlibinput-a694a06b925009d836e5ba17cb73e29fdbcb188c.tar.gz
evdev: refactor joystick/gamepad detection
Move the logic to detect joysticks and gamepads to its own function. Refactor, no functional changes. Signed-off-by: José Expósito <jose.exposito89@gmail.com>
-rw-r--r--src/evdev.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/evdev.c b/src/evdev.c
index d8dfdadd..9eb2d30b 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1850,6 +1850,18 @@ evdev_disable_accelerometer_axes(struct evdev_device *device)
libevdev_disable_event_code(evdev, EV_ABS, REL_Z);
}
+static bool
+evdev_device_is_joystick_or_gamepad(struct evdev_device *device)
+{
+ enum evdev_device_udev_tags udev_tags;
+
+ udev_tags = evdev_device_get_udev_tags(device, device->udev_device);
+ if (udev_tags == (EVDEV_UDEV_TAG_INPUT|EVDEV_UDEV_TAG_JOYSTICK))
+ return true;
+
+ return false;
+}
+
static struct evdev_dispatch *
evdev_configure_device(struct evdev_device *device)
{
@@ -1893,9 +1905,9 @@ evdev_configure_device(struct evdev_device *device)
evdev_disable_accelerometer_axes(device);
}
- if (udev_tags == (EVDEV_UDEV_TAG_INPUT|EVDEV_UDEV_TAG_JOYSTICK)) {
+ if (evdev_device_is_joystick_or_gamepad(device)) {
evdev_log_info(device,
- "device is a joystick, ignoring\n");
+ "device is a joystick or a gamepad, ignoring\n");
return NULL;
}