From 8f93aef1221eb1b2dfc81c5dbacede8a07b86118 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Fri, 3 Sep 2021 18:17:58 +0200 Subject: [PATCH] device: Export kernel device from FpDevice This is inelegant, but allows API consumers to match the FpDevice with an OS device. --- libfprint/fp-device.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/libfprint/fp-device.c b/libfprint/fp-device.c index 4d19bf0..35e2f2b 100644 --- a/libfprint/fp-device.c +++ b/libfprint/fp-device.c @@ -245,6 +245,7 @@ fp_device_get_property (GObject *object, { FpDevice *self = FP_DEVICE (object); FpDevicePrivate *priv = fp_device_get_instance_private (self); + FpDeviceClass *cls = FP_DEVICE_GET_CLASS (self); switch (prop_id) { @@ -284,6 +285,24 @@ fp_device_get_property (GObject *object, g_value_set_boolean (value, priv->is_removed); break; + case PROP_FPI_USB_DEVICE: + g_value_set_object (value, priv->usb_device); + break; + + case PROP_FPI_UDEV_DATA_SPIDEV: + if (cls->type == FP_DEVICE_TYPE_UDEV) + g_value_set_string (value, g_strdup (priv->udev_data.spidev_path)); + else + g_value_set_string (value, NULL); + break; + + case PROP_FPI_UDEV_DATA_HIDRAW: + if (cls->type == FP_DEVICE_TYPE_UDEV) + g_value_set_string (value, g_strdup (priv->udev_data.hidraw_path)); + else + g_value_set_string (value, NULL); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } @@ -530,7 +549,7 @@ fp_device_class_init (FpDeviceClass *klass) "USB Device", "Private: The USB device for the device", G_USB_TYPE_DEVICE, - G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); /** * FpDevice::fpi-udev-data-spidev: (skip) * @@ -543,7 +562,7 @@ fp_device_class_init (FpDeviceClass *klass) "Udev data: spidev path", "Private: The path to /dev/spidevN.M", NULL, - G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); /** * FpDevice::fpi-udev-data-hidraw: (skip) * @@ -556,7 +575,7 @@ fp_device_class_init (FpDeviceClass *klass) "Udev data: hidraw path", "Private: The path to /dev/hidrawN", NULL, - G_PARAM_STATIC_STRINGS | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY); + G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); /** * FpDevice::fpi-driver-data: (skip)