aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-21 19:57:57 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:36 +0100
commit9a80f5816568b52ee8e159e4b5775a02b3d095cf (patch)
treef752576162db1ca09fb79607041ba9b552fa9183
parent7ea8bf59fb1ed202320aa525c83d56e290d494fe (diff)
broadband-modem: implement the Simple interface
-rw-r--r--src/mm-broadband-modem.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index d82294d2..7785f8f9 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -28,6 +28,7 @@
#include "mm-broadband-modem.h"
#include "mm-iface-modem.h"
#include "mm-iface-modem-3gpp.h"
+#include "mm-iface-modem-simple.h"
#include "mm-bearer-3gpp.h"
#include "mm-bearer-list.h"
#include "mm-sim.h"
@@ -42,15 +43,18 @@
static void iface_modem_init (MMIfaceModem *iface);
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
+static void iface_modem_simple_init (MMIfaceModemSimple *iface);
G_DEFINE_TYPE_EXTENDED (MMBroadbandModem, mm_broadband_modem, MM_TYPE_BASE_MODEM, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init)
- G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init));
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_SIMPLE, iface_modem_simple_init));
enum {
PROP_0,
PROP_MODEM_DBUS_SKELETON,
PROP_MODEM_3GPP_DBUS_SKELETON,
+ PROP_MODEM_SIMPLE_DBUS_SKELETON,
PROP_MODEM_SIM,
PROP_MODEM_BEARER_LIST,
PROP_MODEM_STATE,
@@ -62,6 +66,7 @@ enum {
struct _MMBroadbandModemPrivate {
GObject *modem_dbus_skeleton;
GObject *modem_3gpp_dbus_skeleton;
+ GObject *modem_simple_dbus_skeleton;
MMSim *modem_sim;
MMBearerList *modem_bearer_list;
MMModemState modem_state;
@@ -2411,6 +2416,7 @@ initialize_step (InitializeContext *ctx)
ctx->step++;
case INITIALIZE_STEP_IFACE_SIMPLE:
+ mm_iface_modem_simple_initialize (MM_IFACE_MODEM_SIMPLE (ctx->self));
/* Fall down to next step */
ctx->step++;
@@ -2478,6 +2484,9 @@ set_property (GObject *object,
case PROP_MODEM_3GPP_DBUS_SKELETON:
self->priv->modem_3gpp_dbus_skeleton = g_value_dup_object (value);
break;
+ case PROP_MODEM_SIMPLE_DBUS_SKELETON:
+ self->priv->modem_simple_dbus_skeleton = g_value_dup_object (value);
+ break;
case PROP_MODEM_SIM:
self->priv->modem_sim = g_value_dup_object (value);
break;
@@ -2514,6 +2523,9 @@ get_property (GObject *object,
case PROP_MODEM_3GPP_DBUS_SKELETON:
g_value_set_object (value, self->priv->modem_3gpp_dbus_skeleton);
break;
+ case PROP_MODEM_SIMPLE_DBUS_SKELETON:
+ g_value_set_object (value, self->priv->modem_simple_dbus_skeleton);
+ break;
case PROP_MODEM_SIM:
g_value_set_object (value, self->priv->modem_sim);
break;
@@ -2578,6 +2590,11 @@ dispose (GObject *object)
g_clear_object (&self->priv->modem_3gpp_dbus_skeleton);
}
+ if (self->priv->modem_simple_dbus_skeleton) {
+ mm_iface_modem_simple_shutdown (MM_IFACE_MODEM_SIMPLE (object));
+ g_clear_object (&self->priv->modem_simple_dbus_skeleton);
+ }
+
if (self->priv->modem_sim)
g_clear_object (&self->priv->modem_sim);
@@ -2653,6 +2670,11 @@ iface_modem_3gpp_init (MMIfaceModem3gpp *iface)
}
static void
+iface_modem_simple_init (MMIfaceModemSimple *iface)
+{
+}
+
+static void
mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -2682,6 +2704,10 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass)
MM_IFACE_MODEM_3GPP_DBUS_SKELETON);
g_object_class_override_property (object_class,
+ PROP_MODEM_SIMPLE_DBUS_SKELETON,
+ MM_IFACE_MODEM_SIMPLE_DBUS_SKELETON);
+
+ g_object_class_override_property (object_class,
PROP_MODEM_SIM,
MM_IFACE_MODEM_SIM);