From 7b7f5b9dcb0b3cde4adc8e615ee6ee3fb01b9a80 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 10 Jul 2012 07:03:08 +0200 Subject: device: keep sysfs path around for logging --- src/mm-device.c | 19 +++++++++++++++++++ src/mm-device.h | 1 + 2 files changed, 20 insertions(+) (limited to 'src') diff --git a/src/mm-device.c b/src/mm-device.c index dfeaf6d4..dc7bde29 100644 --- a/src/mm-device.c +++ b/src/mm-device.c @@ -41,6 +41,7 @@ static GParamSpec *properties[PROP_LAST]; struct _MMDevicePrivate { /* Parent UDev device */ GUdevDevice *udev_device; + gchar *udev_device_path; /* Best plugin to manage this device */ MMPlugin *plugin; @@ -250,6 +251,12 @@ mm_device_create_modem (MMDevice *self, /*****************************************************************************/ +const gchar * +mm_device_get_path (MMDevice *self) +{ + return self->priv->udev_device_path; +} + GUdevDevice * mm_device_peek_udev_device (MMDevice *self) { @@ -332,6 +339,7 @@ set_property (GObject *object, case PROP_UDEV_DEVICE: /* construct only */ self->priv->udev_device = g_value_dup_object (value); + self->priv->udev_device_path = g_strdup (g_udev_device_get_sysfs_path (self->priv->udev_device)); break; case PROP_PLUGIN: g_clear_object (&(self->priv->plugin)); @@ -384,6 +392,16 @@ dispose (GObject *object) G_OBJECT_CLASS (mm_device_parent_class)->dispose (object); } +static void +finalize (GObject *object) +{ + MMDevice *self = MM_DEVICE (object); + + g_free (self->priv->udev_device_path); + + G_OBJECT_CLASS (mm_device_parent_class)->finalize (object); +} + static void mm_device_class_init (MMDeviceClass *klass) { @@ -394,6 +412,7 @@ mm_device_class_init (MMDeviceClass *klass) /* Virtual methods */ object_class->get_property = get_property; object_class->set_property = set_property; + object_class->finalize = finalize; object_class->dispose = dispose; properties[PROP_UDEV_DEVICE] = diff --git a/src/mm-device.h b/src/mm-device.h index 7eee70e3..c0c24686 100644 --- a/src/mm-device.h +++ b/src/mm-device.h @@ -63,6 +63,7 @@ gboolean mm_device_create_modem (MMDevice *self, GError **error); void mm_device_remove_modem (MMDevice *self); +const gchar *mm_device_get_path (MMDevice *self); GUdevDevice *mm_device_peek_udev_device (MMDevice *self); GUdevDevice *mm_device_get_udev_device (MMDevice *self); void mm_device_set_plugin (MMDevice *self, -- cgit v1.2.3-70-g09d2