aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2009-12-21 11:37:36 -0800
committerDan Williams <dcbw@redhat.com>2009-12-21 11:37:36 -0800
commit710986bd4b630095eff7b53bc5d46d0bed94495e (patch)
tree5f878a6fa8a4340b6b0e9440a628f6aade87c725
parent71cbcb834c77025d82d91dadcb2c19bd58dd7b85 (diff)
core: add Enabled property to org.freedesktop.ModemManager.Modem interface
-rw-r--r--introspection/mm-modem.xml6
-rw-r--r--src/mm-modem-base.c8
-rw-r--r--src/mm-modem.c8
-rw-r--r--src/mm-modem.h2
4 files changed, 24 insertions, 0 deletions
diff --git a/introspection/mm-modem.xml b/introspection/mm-modem.xml
index 802c46b2..88e28f10 100644
--- a/introspection/mm-modem.xml
+++ b/introspection/mm-modem.xml
@@ -88,6 +88,12 @@
</tp:docstring>
</property>
+ <property name="Enabled" type="b" access="read">
+ <tp:docstring>
+ TRUE if the modem is enabled (ie, powered and usable), FALSE if it is disabled.
+ </tp:docstring>
+ </property>
+
<property name="IpMethod" type="u" access="read" tp:type="MM_MODEM_IP_METHOD">
<tp:docstring>
The IP configuration method.
diff --git a/src/mm-modem-base.c b/src/mm-modem-base.c
index d50d7517..90ab4b8b 100644
--- a/src/mm-modem-base.c
+++ b/src/mm-modem-base.c
@@ -210,6 +210,7 @@ set_property (GObject *object, guint prop_id,
break;
case MM_MODEM_PROP_VALID:
case MM_MODEM_PROP_TYPE:
+ case MM_MODEM_PROP_ENABLED:
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -248,6 +249,9 @@ get_property (GObject *object, guint prop_id,
case MM_MODEM_PROP_VALID:
g_value_set_boolean (value, priv->valid);
break;
+ case MM_MODEM_PROP_ENABLED:
+ g_value_set_boolean (value, priv->state >= MM_MODEM_STATE_ENABLED);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -311,5 +315,9 @@ mm_modem_base_class_init (MMModemBaseClass *klass)
g_object_class_override_property (object_class,
MM_MODEM_PROP_VALID,
MM_MODEM_VALID);
+
+ g_object_class_override_property (object_class,
+ MM_MODEM_PROP_ENABLED,
+ MM_MODEM_ENABLED);
}
diff --git a/src/mm-modem.c b/src/mm-modem.c
index af67864d..5f0f5fac 100644
--- a/src/mm-modem.c
+++ b/src/mm-modem.c
@@ -651,6 +651,14 @@ mm_modem_init (gpointer g_iface)
MM_MODEM_STATE_UNKNOWN,
G_PARAM_READWRITE));
+ g_object_interface_install_property
+ (g_iface,
+ g_param_spec_boolean (MM_MODEM_ENABLED,
+ "Enabled",
+ "Modem is enabled",
+ FALSE,
+ G_PARAM_READABLE));
+
/* Signals */
g_signal_new ("state-changed",
iface_type,
diff --git a/src/mm-modem.h b/src/mm-modem.h
index 1a379411..3102cea0 100644
--- a/src/mm-modem.h
+++ b/src/mm-modem.h
@@ -52,6 +52,7 @@ typedef enum {
#define MM_MODEM_DRIVER "driver"
#define MM_MODEM_TYPE "type"
#define MM_MODEM_IP_METHOD "ip-method"
+#define MM_MODEM_ENABLED "enabled"
#define MM_MODEM_VALID "valid" /* not exported */
#define MM_MODEM_PLUGIN "plugin" /* not exported */
#define MM_MODEM_STATE "state" /* not exported */
@@ -75,6 +76,7 @@ typedef enum {
MM_MODEM_PROP_VALID, /* Not exported */
MM_MODEM_PROP_PLUGIN, /* Not exported */
MM_MODEM_PROP_STATE, /* Not exported */
+ MM_MODEM_PROP_ENABLED
} MMModemProp;
typedef struct _MMModem MMModem;