From: Peter Hutterer Date: Fri, 27 Jun 2014 02:55:29 +0000 (+1000) Subject: Add functions to get the device name, PID and VID X-Git-Tag: 0.5.0~59 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b6f24ee1c77399c6e8dffae80cff2ec35ca3e73;p=platform%2Fupstream%2Flibinput.git Add functions to get the device name, PID and VID Those three are the ones that matter for logging or device identification in callers, so let's provide them. Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede Reviewed-by: Jonas Ã…dahl --- diff --git a/src/evdev.c b/src/evdev.c index f72bd43e..183c2000 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -857,6 +857,24 @@ evdev_device_get_sysname(struct evdev_device *device) return device->sysname; } +const char * +evdev_device_get_name(struct evdev_device *device) +{ + return device->devname; +} + +unsigned int +evdev_device_get_id_product(struct evdev_device *device) +{ + return libevdev_get_id_product(device->evdev); +} + +unsigned int +evdev_device_get_id_vendor(struct evdev_device *device) +{ + return libevdev_get_id_vendor(device->evdev); +} + void evdev_device_calibrate(struct evdev_device *device, float calibration[6]) { diff --git a/src/evdev.h b/src/evdev.h index 4a83a78a..fad1f84c 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -141,6 +141,15 @@ evdev_device_get_output(struct evdev_device *device); const char * evdev_device_get_sysname(struct evdev_device *device); +const char * +evdev_device_get_name(struct evdev_device *device); + +unsigned int +evdev_device_get_id_product(struct evdev_device *device); + +unsigned int +evdev_device_get_id_vendor(struct evdev_device *device); + void evdev_device_calibrate(struct evdev_device *device, float calibration[6]); diff --git a/src/libinput.c b/src/libinput.c index 44f4f23d..1918b48a 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -1161,6 +1161,24 @@ libinput_device_get_sysname(struct libinput_device *device) return evdev_device_get_sysname((struct evdev_device *) device); } +LIBINPUT_EXPORT const char * +libinput_device_get_name(struct libinput_device *device) +{ + return evdev_device_get_name((struct evdev_device *) device); +} + +LIBINPUT_EXPORT unsigned int +libinput_device_get_id_product(struct libinput_device *device) +{ + return evdev_device_get_id_product((struct evdev_device *) device); +} + +LIBINPUT_EXPORT unsigned int +libinput_device_get_id_vendor(struct libinput_device *device) +{ + return evdev_device_get_id_vendor((struct evdev_device *) device); +} + LIBINPUT_EXPORT const char * libinput_device_get_output_name(struct libinput_device *device) { diff --git a/src/libinput.h b/src/libinput.h index ff67ce7c..ff8caf48 100644 --- a/src/libinput.h +++ b/src/libinput.h @@ -1248,12 +1248,53 @@ libinput_device_get_user_data(struct libinput_device *device); * * Get the system name of the device. * + * To get the descriptive device name, use libinput_device_get_name(). + * * @param device A previously obtained device * @return System name of the device + * */ const char * libinput_device_get_sysname(struct libinput_device *device); +/** + * @ingroup device + * + * The descriptive device name as advertised by the kernel and/or the + * hardware itself. To get the sysname for this device, use + * libinput_device_get_sysname(). + * + * The lifetime of the returned string is tied to the struct + * libinput_device. The string may be the empty string but is never NULL. + * + * @param device A previously obtained device + * @return The device name + */ +const char * +libinput_device_get_name(struct libinput_device *device); + +/** + * @ingroup device + * + * Get the product ID for this device. + * + * @param device A previously obtained device + * @return The product ID of this device + */ +unsigned int +libinput_device_get_id_product(struct libinput_device *device); + +/** + * @ingroup device + * + * Get the vendor ID for this device. + * + * @param device A previously obtained device + * @return The vendor ID of this device + */ +unsigned int +libinput_device_get_id_vendor(struct libinput_device *device); + /** * @ingroup device * diff --git a/test/misc.c b/test/misc.c index bea7e889..e467a5c2 100644 --- a/test/misc.c +++ b/test/misc.c @@ -390,6 +390,25 @@ START_TEST(context_ref_counting) } END_TEST +START_TEST(device_ids) +{ + struct litest_device *dev = litest_current_device(); + const char *name; + int pid, vid; + + name = libevdev_get_name(dev->evdev); + pid = libevdev_get_id_product(dev->evdev); + vid = libevdev_get_id_vendor(dev->evdev); + + ck_assert_str_eq(name, + libinput_device_get_name(dev->libinput_device)); + ck_assert_int_eq(pid, + libinput_device_get_id_product(dev->libinput_device)); + ck_assert_int_eq(vid, + libinput_device_get_id_vendor(dev->libinput_device)); +} +END_TEST + int main (int argc, char **argv) { litest_add_no_device("events:conversion", event_conversion_device_notify); litest_add_no_device("events:conversion", event_conversion_pointer); @@ -397,6 +416,7 @@ int main (int argc, char **argv) { litest_add_no_device("events:conversion", event_conversion_key); litest_add_no_device("events:conversion", event_conversion_touch); litest_add_no_device("context:refcount", context_ref_counting); + litest_add("device:id", device_ids, LITEST_ANY, LITEST_ANY); return litest_run(argc, argv); }