Slots are now definitely zero-indexed, see recent kernel patch
authorPeter Hutterer <peter.hutterer@who-t.net>
Sat, 22 Jun 2013 09:45:39 +0000 (19:45 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 27 Jun 2013 00:41:54 +0000 (10:41 +1000)
doc: specify that ABS_MT_SLOT must have a minimum of 0

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
libevdev/libevdev.c
libevdev/libevdev.h

index 5c5a2fa..d92c81f 100644 (file)
@@ -243,7 +243,7 @@ libevdev_set_fd(struct libevdev* dev, int fd)
 
                        dev->abs_info[i] = abs_info;
                        if (i == ABS_MT_SLOT) {
-                               dev->num_slots = abs_info.maximum + 1; /* FIXME: non-zero min? */
+                               dev->num_slots = abs_info.maximum + 1;
                                dev->current_slot = abs_info.value;
                        }
 
index 9d2991e..613d930 100644 (file)
@@ -533,11 +533,11 @@ int libevdev_fetch_slot_value(const struct libevdev *dev, unsigned int slot, uns
  *
  * Get the number of slots supported by this device.
  *
- * Note that the slot offset may be non-zero, use libevdev_get_abs_min() or
- * libevdev_get_abs_info() to get the minimum slot number.
- *
  * @return The number of slots supported, or -1 if the device does not provide
  * any slots
+ *
+ * @note A device may provide ABS_MT_SLOT but a total number of 0 slots. Hence
+ * the return value of -1 for "device does not provide slots at all"
  */
 int libevdev_get_num_slots(const struct libevdev *dev);