diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2014-06-22 17:29:50 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2014-06-23 18:12:27 +0200 |
commit | 7c347aa3ec1d5540c23c20dcb5edd3c6ccb28c24 (patch) | |
tree | d60adda1f391e4ae112f057853d7f07426ad5f89 /src/mm-port.c | |
parent | 7752c9920d83059836d010a61e44daa4232c4c65 (diff) |
port: store parent sysfs path in each MMPort
Diffstat (limited to 'src/mm-port.c')
-rw-r--r-- | src/mm-port.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/mm-port.c b/src/mm-port.c index 2ebad13c..0ee9a199 100644 --- a/src/mm-port.c +++ b/src/mm-port.c @@ -29,15 +29,17 @@ enum { PROP_SUBSYS, PROP_TYPE, PROP_CONNECTED, + PROP_PARENT_PATH, LAST_PROP }; struct _MMPortPrivate { - char *device; + gchar *device; MMPortSubsys subsys; MMPortType ptype; gboolean connected; + gchar *parent_path; }; /*****************************************************************************/ @@ -94,6 +96,14 @@ mm_port_set_connected (MMPort *self, gboolean connected) } } +const gchar * +mm_port_get_parent_path (MMPort *self) +{ + g_return_val_if_fail (MM_IS_PORT (self), NULL); + + return self->priv->parent_path; +} + /*****************************************************************************/ static void @@ -126,6 +136,10 @@ set_property (GObject *object, case PROP_CONNECTED: self->priv->connected = g_value_get_boolean (value); break; + case PROP_PARENT_PATH: + g_free (self->priv->parent_path); + self->priv->parent_path = g_value_dup_string (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -151,6 +165,9 @@ get_property (GObject *object, guint prop_id, case PROP_CONNECTED: g_value_set_boolean (value, self->priv->connected); break; + case PROP_PARENT_PATH: + g_value_set_string (value, self->priv->parent_path); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -163,6 +180,7 @@ finalize (GObject *object) MMPort *self = MM_PORT (object); g_free (self->priv->device); + g_free (self->priv->parent_path); G_OBJECT_CLASS (mm_port_parent_class)->finalize (object); } @@ -214,4 +232,12 @@ mm_port_class_init (MMPortClass *klass) "Is connected for data and not usable for control", FALSE, G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, PROP_PARENT_PATH, + g_param_spec_string (MM_PORT_PARENT_PATH, + "Parent path", + "sysfs path of the parent device", + NULL, + G_PARAM_READWRITE)); } |