[PATCH libinput] Add functions to get the device name, PID and VID
Hans de Goede
hdegoede at redhat.com
Fri Jun 27 05:17:46 PDT 2014
Hi,
On 06/27/2014 05:02 AM, Peter Hutterer wrote:
> Those three are the ones that matter for logging or device identification in
> callers, so let's provide them.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Looks good:
Reviewed-by: Hans de Goede <hdegoede at redhat.com>
Regards,
Hans
> ---
> src/evdev.c | 18 ++++++++++++++++++
> src/evdev.h | 9 +++++++++
> src/libinput.c | 18 ++++++++++++++++++
> src/libinput.h | 34 ++++++++++++++++++++++++++++++++++
> test/misc.c | 20 ++++++++++++++++++++
> 5 files changed, 99 insertions(+)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index f72bd43..183c200 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 4a83a78..fad1f84 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 44f4f23..1918b48 100644
> --- a/src/libinput.c
> +++ b/src/libinput.c
> @@ -1162,6 +1162,24 @@ libinput_device_get_sysname(struct libinput_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)
> {
> return evdev_device_get_output((struct evdev_device *) device);
> diff --git a/src/libinput.h b/src/libinput.h
> index 99a3b2f..e8b87da 100644
> --- a/src/libinput.h
> +++ b/src/libinput.h
> @@ -1257,6 +1257,40 @@ libinput_device_get_sysname(struct libinput_device *device);
> /**
> * @ingroup device
> *
> + * The lifetime of the returned string is tied to the struct
> + * libinput_device.
> + *
> + * @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
> + *
> * A device may be mapped to a single output, or all available outputs. If a
> * device is mapped to a single output only, a relative device may not move
> * beyond the boundaries of this output. An absolute device has its input
> diff --git a/test/misc.c b/test/misc.c
> index bea7e88..e467a5c 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);
> }
>
More information about the wayland-devel
mailing list