aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-base.c')
-rw-r--r--src/mm-modem-base.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/mm-modem-base.c b/src/mm-modem-base.c
index 875ea6c4..ba4339b9 100644
--- a/src/mm-modem-base.c
+++ b/src/mm-modem-base.c
@@ -42,6 +42,7 @@ typedef struct {
char *driver;
char *plugin;
char *device;
+ char *equipment_identity;
char *unlock_required;
guint32 unlock_retries;
guint32 ip_method;
@@ -193,6 +194,47 @@ mm_modem_base_get_valid (MMModemBase *self)
}
const char *
+mm_modem_base_get_equipment_identity (MMModemBase *self)
+{
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (MM_IS_MODEM_BASE (self), NULL);
+
+ return MM_MODEM_BASE_GET_PRIVATE (self)->equipment_identity;
+}
+
+void
+mm_modem_base_set_equipment_identity (MMModemBase *self, const char *equipment_identity)
+{
+ MMModemBasePrivate *priv;
+ const char *dbus_path;
+
+ g_return_if_fail (self != NULL);
+ g_return_if_fail (MM_IS_MODEM_BASE (self));
+
+ priv = MM_MODEM_BASE_GET_PRIVATE (self);
+
+ /* Only do something if the value changes */
+ if ( (priv->equipment_identity == equipment_identity)
+ || ( priv->equipment_identity
+ && equipment_identity
+ && !strcmp (priv->equipment_identity, equipment_identity)))
+ return;
+
+ g_free (priv->equipment_identity);
+ priv->equipment_identity = g_strdup (equipment_identity);
+
+ dbus_path = (const char *) g_object_get_data (G_OBJECT (self), DBUS_PATH_TAG);
+ if (dbus_path) {
+ if (priv->equipment_identity)
+ g_message ("Modem %s: EquipmentIdentity set (%s)", dbus_path, priv->equipment_identity);
+ else
+ g_message ("Modem %s: EquipmentIdentity not set", dbus_path);
+ }
+
+ g_object_notify (G_OBJECT (self), MM_MODEM_EQUIPMENT_IDENTITY);
+}
+
+const char *
mm_modem_base_get_unlock_required (MMModemBase *self)
{
g_return_val_if_fail (self != NULL, NULL);
@@ -524,6 +566,9 @@ mm_modem_base_init (MMModemBase *self)
MM_MODEM_ENABLED,
MM_MODEM_DBUS_INTERFACE);
mm_properties_changed_signal_register_property (G_OBJECT (self),
+ MM_MODEM_EQUIPMENT_IDENTITY,
+ MM_MODEM_DBUS_INTERFACE);
+ mm_properties_changed_signal_register_property (G_OBJECT (self),
MM_MODEM_UNLOCK_REQUIRED,
MM_MODEM_DBUS_INTERFACE);
mm_properties_changed_signal_register_property (G_OBJECT (self),
@@ -577,6 +622,7 @@ set_property (GObject *object, guint prop_id,
case MM_MODEM_PROP_VALID:
case MM_MODEM_PROP_TYPE:
case MM_MODEM_PROP_ENABLED:
+ case MM_MODEM_PROP_EQUIPMENT_IDENTITY:
case MM_MODEM_PROP_UNLOCK_REQUIRED:
case MM_MODEM_PROP_UNLOCK_RETRIES:
break;
@@ -620,6 +666,9 @@ get_property (GObject *object, guint prop_id,
case MM_MODEM_PROP_ENABLED:
g_value_set_boolean (value, is_enabled (priv->state));
break;
+ case MM_MODEM_PROP_EQUIPMENT_IDENTITY:
+ g_value_set_string (value, priv->equipment_identity);
+ break;
case MM_MODEM_PROP_UNLOCK_REQUIRED:
g_value_set_string (value, priv->unlock_required);
break;
@@ -644,6 +693,7 @@ finalize (GObject *object)
g_free (priv->driver);
g_free (priv->plugin);
g_free (priv->device);
+ g_free (priv->equipment_identity);
g_free (priv->unlock_required);
G_OBJECT_CLASS (mm_modem_base_parent_class)->finalize (object);
@@ -698,6 +748,10 @@ mm_modem_base_class_init (MMModemBaseClass *klass)
MM_MODEM_ENABLED);
g_object_class_override_property (object_class,
+ MM_MODEM_PROP_EQUIPMENT_IDENTITY,
+ MM_MODEM_EQUIPMENT_IDENTITY);
+
+ g_object_class_override_property (object_class,
MM_MODEM_PROP_UNLOCK_REQUIRED,
MM_MODEM_UNLOCK_REQUIRED);