diff options
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r-- | src/mm-port-probe.c | 64 |
1 files changed, 62 insertions, 2 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index e771362d..4ebb8f88 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -23,15 +23,67 @@ G_DEFINE_TYPE (MMPortProbe, mm_port_probe, G_TYPE_OBJECT) struct _MMPortProbePrivate { - gpointer dummy; + /* Port and properties */ + GUdevDevice *port; + gchar *subsys; + gchar *name; + gchar *physdev_path; + gchar *driver; }; +GUdevDevice * +mm_port_probe_get_port (MMPortProbe *self) +{ + g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL); + + return self->priv->port; +} + +const gchar * +mm_port_probe_get_port_name (MMPortProbe *self) +{ + g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL); + + return self->priv->name; +} + +const gchar * +mm_port_probe_get_port_subsys (MMPortProbe *self) +{ + g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL); + + return self->priv->subsys; +} + +const gchar * +mm_port_probe_get_port_physdev (MMPortProbe *self) +{ + g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL); + + return self->priv->physdev_path; +} + +const gchar * +mm_port_probe_get_port_driver (MMPortProbe *self) +{ + g_return_val_if_fail (MM_IS_PORT_PROBE (self), NULL); + + return self->priv->driver; +} + MMPortProbe * -mm_port_probe_new (void) +mm_port_probe_new (GUdevDevice *port, + const gchar *physdev_path, + const gchar *driver) { MMPortProbe *self; self = MM_PORT_PROBE (g_object_new (MM_TYPE_PORT_PROBE, NULL)); + self->priv->port = g_object_ref (port); + self->priv->subsys = g_strdup (g_udev_device_get_subsystem (port)); + self->priv->name = g_strdup (g_udev_device_get_name (port)); + self->priv->physdev_path = g_strdup (physdev_path); + self->priv->driver = g_strdup (driver); return self; } @@ -47,6 +99,14 @@ mm_port_probe_init (MMPortProbe *self) static void finalize (GObject *object) { + MMPortProbe *self = MM_PORT_PROBE (object); + + g_free (self->priv->subsys); + g_free (self->priv->name); + g_free (self->priv->physdev_path); + g_free (self->priv->driver); + g_object_unref (self->priv->port); + G_OBJECT_CLASS (mm_port_probe_parent_class)->finalize (object); } |