aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-modem.c80
-rw-r--r--src/mm-base-modem.h7
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 */