char name[MAX_NAME];
struct input_id ids;
+ int driver_version;
unsigned long bits[NLONGS(EV_CNT)];
unsigned long props[NLONGS(INPUT_PROP_CNT)];
unsigned long key_bits[NLONGS(KEY_CNT)];
if (rc < 0)
goto out;
+ rc = ioctl(fd, EVIOCGVERSION, &dev->driver_version);
+ if (rc < 0)
+ goto out;
+
rc = ioctl(fd, EVIOCGPROP(sizeof(dev->props)), dev->props);
if (rc < 0)
goto out;
return dev->ids.bustype;
}
+int libevdev_get_version(const struct libevdev *dev)
+{
+ return dev->ids.version;
+}
+
+int libevdev_get_driver_version(const struct libevdev *dev)
+{
+ return dev->driver_version;
+}
+
int
libevdev_has_property(const struct libevdev *dev, unsigned int prop)
{
int libevdev_get_bustype(const struct libevdev *dev);
/**
+ * @return The device's firmware version
+ *
+ * @note This function is signal-safe.
+ */
+int libevdev_get_version(const struct libevdev *dev);
+
+/**
+ * @return The driver version for this device
+ *
+ * @note This function is signal-safe.
+ */
+int libevdev_get_driver_version(const struct libevdev *dev);
+
+/**
* @return 1 if the device supports this event type, or 0 otherwise.
*
* @note This function is signal-safe
NAME
----
-libevdev_get_name, libevdev_get_product_id, libevdev_get_vendor_id, libevdev_get_bustype - retreive information about this device
+libevdev_get_name, libevdev_get_product_id, libevdev_get_vendor_id,
+libevdev_get_bustype, libevdev_get_version, libevdev_get_driver_version - retreive information about this device
SYNOPSIS
--------
int libevdev_get_bustype(const struct libevdev *dev);
+int libevdev_get_version(const struct libevdev *dev);
+
+int libevdev_get_driver_version(const struct libevdev *dev);
+
DESCRIPTION
-----------
*libevdev_get_bustype* returns the numeric bus type as set by the kernel.
+*libevdev_get_version* returns the firmware or driver version.
+
+*libevdev_get_driver_version* returns the version of the evdev kernel
+driver.
+
PARAMETERS
----------
*dev*::
*libevdev_get_name* returns a const pointer to the device name.
*libevdev_get_product_id*, *libevdev_get_vendor_id* and
-*libevdev_get_bustype* return the numeric product ID, vendor ID, or bus
-type.
+*libevdev_get_bustype*, *libevdev_get_version* return the numeric product
+ID, vendor ID, bus type or version.
+
+*libevdev_get_driver_version* returns the version of the evdev kernel
+driver.
SEE ALSO
--------
libevdev_get_bustype(dev),
libevdev_get_vendor_id(dev),
libevdev_get_product_id(dev));
+ printf("Evdev version: %x\n", libevdev_get_driver_version(dev));
printf("Input device name: \"%s\"\n", libevdev_get_name(dev));
print_bits(dev);
print_props(dev);