diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-22 18:35:56 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:22 +0100 |
commit | 677e04be95dbbac200a9ab3fab4aea64317547bf (patch) | |
tree | 4c8928d172f918c0f67aefda557636783d5731f7 /src | |
parent | d32b006cce8c62a1f0e2d4cf9fe0121a4a541316 (diff) |
base-modem: new property to keep the Connection object
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-base-modem.c | 22 | ||||
-rw-r--r-- | src/mm-base-modem.h | 1 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index e2be254b..bbd4156c 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -44,12 +44,16 @@ enum { PROP_PLUGIN, PROP_VENDOR_ID, PROP_PRODUCT_ID, + PROP_CONNECTION, PROP_LAST }; static GParamSpec *properties[PROP_LAST]; struct _MMBaseModemPrivate { + /* The connection to the system bus */ + GDBusConnection *connection; + gchar *device; gchar *driver; gchar *plugin; @@ -535,6 +539,11 @@ set_property (GObject *object, case PROP_PRODUCT_ID: self->priv->product_id = g_value_get_uint (value); break; + case PROP_CONNECTION: + if (self->priv->connection) + g_object_unref (self->priv->connection); + self->priv->connection = g_value_dup_object (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -571,6 +580,9 @@ get_property (GObject *object, case PROP_PRODUCT_ID: g_value_set_uint (value, self->priv->product_id); break; + case PROP_CONNECTION: + g_value_set_object (value, self->priv->connection); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -606,6 +618,8 @@ dispose (GObject *object) self->priv->ports = NULL; } + g_clear_object (&self->priv->connection); + G_OBJECT_CLASS (mm_base_modem_parent_class)->dispose (object); } @@ -678,5 +692,13 @@ mm_base_modem_class_init (MMBaseModemClass *klass) 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); g_object_class_install_property (object_class, PROP_PRODUCT_ID, properties[PROP_PRODUCT_ID]); + + properties[PROP_CONNECTION] = + g_param_spec_object (MM_BASE_MODEM_CONNECTION, + "Connection", + "GDBus connection to the system bus.", + G_TYPE_DBUS_CONNECTION, + G_PARAM_READWRITE); + g_object_class_install_property (object_class, PROP_CONNECTION, properties[PROP_CONNECTION]); } diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 26a829a8..563f70c7 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -39,6 +39,7 @@ typedef struct _MMBaseModem MMBaseModem; typedef struct _MMBaseModemClass MMBaseModemClass; typedef struct _MMBaseModemPrivate MMBaseModemPrivate; +#define MM_BASE_MODEM_CONNECTION "base-modem-connection" #define MM_BASE_MODEM_MAX_TIMEOUTS "base-modem-max-timeouts" #define MM_BASE_MODEM_VALID "base-modem-valid" #define MM_BASE_MODEM_DEVICE "base-modem-device" |