evdev: add helper function evdev_need_mtdev
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 15 Sep 2014 04:59:07 +0000 (14:59 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 18 Sep 2014 01:31:20 +0000 (11:31 +1000)
Prep work for upcoming patches

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/evdev.c

index 9e91ee5..f7f8f08 100644 (file)
@@ -733,6 +733,16 @@ configure_pointer_acceleration(struct evdev_device *device)
        return 0;
 }
 
+static inline int
+evdev_need_mtdev(struct evdev_device *device)
+{
+       struct libevdev *evdev = device->evdev;
+
+       return (libevdev_has_event_code(evdev, EV_ABS, ABS_MT_POSITION_X) &&
+               libevdev_has_event_code(evdev, EV_ABS, ABS_MT_POSITION_Y) &&
+               !libevdev_has_event_code(evdev, EV_ABS, ABS_MT_SLOT));
+}
+
 static int
 evdev_configure_device(struct evdev_device *device)
 {
@@ -806,8 +816,7 @@ evdev_configure_device(struct evdev_device *device)
                        has_touch = 1;
                        has_mt = 1;
 
-                       if (!libevdev_has_event_code(evdev,
-                                                    EV_ABS, ABS_MT_SLOT)) {
+                       if (evdev_need_mtdev(device)) {
                                device->mtdev = mtdev_new_open(device->fd);
                                if (!device->mtdev)
                                        return -1;