From e3b36473ed5400c60f4f08b8cc88bc4e384f3b32 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Tue, 26 Jul 2011 16:38:53 +0100 Subject: research trace for devices in udev --- src/udev-mgr.c | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'src/udev-mgr.c') diff --git a/src/udev-mgr.c b/src/udev-mgr.c index e100f16..4dde1b8 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -20,6 +20,11 @@ with this program. If not, see . #include "udev-mgr.h" #include +#include +#include +#include +#include + static void udevice_mgr_device_list_iterator (gpointer data, gpointer userdata); static void udev_mgr_uevent_cb (GUdevClient *client, @@ -87,8 +92,43 @@ static void udev_mgr_uevent_cb (GUdevClient *client, GUdevDevice *device, gpointer user_data) { - g_debug ("just received a UEVENT with an action : %s", action); g_return_if_fail (UDEV_IS_MGR (user_data)); + + g_debug ("just received a UEVENT with an action : %s", action); + + const gchar* vendor; + const gchar* product; + const gchar* number; + + vendor = g_udev_device_get_property (device, "ID_VENDOR_ID"); + product = g_udev_device_get_property (device, "ID_MODEL_ID"); + number = g_udev_device_get_number (device); + g_debug ("device vendor id %s and product id of %s and number of %s", + g_strdup(vendor), + g_strdup(product), + g_strdup(number)); + + const gchar *const *list; + const gchar *const *iter; + char propstr[500]; + guint32 namelen = 0, i; + + list = g_udev_device_get_property_keys(device); + + for (iter = list; iter && *iter; iter++) { + if (strlen(*iter) > namelen) + namelen = strlen(*iter); + } + namelen++; + + for (iter = list; iter && *iter; iter++) { + strcpy(propstr, *iter); + strcat(propstr, ":"); + for (i = 0; i < namelen - strlen(*iter); i++) + strcat(propstr, " "); + strcat(propstr, g_udev_device_get_property(device, *iter)); + g_debug("%s", propstr); + } } -- cgit v1.2.3