diff options
-rw-r--r-- | src/mm-base-modem.c | 80 | ||||
-rw-r--r-- | src/mm-base-modem.h | 7 |
2 files changed, 87 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index fbbd1aae..976e5f6e 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -38,12 +38,19 @@ enum { PROP_0, PROP_VALID, PROP_MAX_TIMEOUTS, + PROP_DEVICE, + PROP_DRIVER, + PROP_PLUGIN, PROP_LAST }; static GParamSpec *properties[PROP_LAST]; struct _MMBaseModemPrivate { + gchar *device; + gchar *driver; + gchar *plugin; + gboolean valid; guint max_timeouts; @@ -417,6 +424,30 @@ mm_base_modem_auth_finish (MMBaseModem *self, return TRUE; } +const gchar * +mm_base_modem_get_device (MMBaseModem *self) +{ + g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); + + return self->priv->device; +} + +const gchar * +mm_base_modem_get_driver (MMBaseModem *self) +{ + g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); + + return self->priv->driver; +} + +const gchar * +mm_base_modem_get_plugin (MMBaseModem *self) +{ + g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); + + return self->priv->plugin; +} + /*****************************************************************************/ static void @@ -450,6 +481,18 @@ set_property (GObject *object, case PROP_MAX_TIMEOUTS: self->priv->max_timeouts = g_value_get_uint (value); break; + case PROP_DEVICE: + g_free (self->priv->device); + self->priv->device = g_value_dup_string (value); + break; + case PROP_DRIVER: + g_free (self->priv->driver); + self->priv->driver = g_value_dup_string (value); + break; + case PROP_PLUGIN: + g_free (self->priv->plugin); + self->priv->plugin = g_value_dup_string (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -471,6 +514,15 @@ get_property (GObject *object, case PROP_MAX_TIMEOUTS: g_value_set_uint (value, self->priv->max_timeouts); break; + case PROP_DEVICE: + g_value_set_string (value, self->priv->device); + break; + case PROP_DRIVER: + g_value_set_string (value, self->priv->driver); + break; + case PROP_PLUGIN: + g_value_set_string (value, self->priv->plugin); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -484,6 +536,10 @@ finalize (GObject *object) mm_auth_provider_cancel_for_owner (self->priv->authp, object); + g_free (self->priv->device); + g_free (self->priv->driver); + g_free (self->priv->plugin); + G_OBJECT_CLASS (mm_base_modem_parent_class)->finalize (object); } @@ -534,5 +590,29 @@ mm_base_modem_class_init (MMBaseModemClass *klass) FALSE, G_PARAM_READWRITE); g_object_class_install_property (object_class, PROP_VALID, properties[PROP_VALID]); + + properties[PROP_DEVICE] = + g_param_spec_string (MM_BASE_MODEM_DEVICE, + "Device", + "Master modem parent device of all the modem's ports", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (object_class, PROP_DEVICE, properties[PROP_DEVICE]); + + properties[PROP_DRIVER] = + g_param_spec_string (MM_BASE_MODEM_DRIVER, + "Driver", + "Kernel driver", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (object_class, PROP_DRIVER, properties[PROP_DRIVER]); + + properties[PROP_PLUGIN] = + g_param_spec_string (MM_BASE_MODEM_PLUGIN, + "Plugin", + "Name of the plugin managing this modem", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY); + g_object_class_install_property (object_class, PROP_PLUGIN, properties[PROP_PLUGIN]); } diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 18352968..54528394 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -40,6 +40,9 @@ typedef struct _MMBaseModemPrivate MMBaseModemPrivate; #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" +#define MM_BASE_MODEM_DRIVER "base-modem-driver" +#define MM_BASE_MODEM_PLUGIN "base-modem-plugin" struct _MMBaseModem { MmGdbusObjectSkeleton parent; @@ -82,5 +85,9 @@ gboolean mm_base_modem_auth_finish (MMBaseModem *self, MMAuthRequest *req, GError **error); +const gchar *mm_base_modem_get_device (MMBaseModem *self); +const gchar *mm_base_modem_get_driver (MMBaseModem *self); +const gchar *mm_base_modem_get_plugin (MMBaseModem *self); + #endif /* MM_BASE_MODEM_H */ |