diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-28 13:23:47 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:28 +0100 |
commit | 27c973b6b47e5080863acf7e0bdbf15f9f70ec2e (patch) | |
tree | b4d7a2eeaa4bd649565a32b6fb56da1e0fe65c9a | |
parent | c6b69f9a594c016b1cff36364d401d7932e5d658 (diff) |
broadband-modem: implement the Modem 3GPP interface
It will only be initialized and exported in DBus if the modem has 3GPP
capabilities.
-rw-r--r-- | src/mm-broadband-modem.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 5a11678d..c0484964 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -28,6 +28,7 @@ #include "mm-at.h" #include "mm-broadband-modem.h" #include "mm-iface-modem.h" +#include "mm-iface-modem-3gpp.h" #include "mm-sim.h" #include "mm-log.h" #include "mm-modem-helpers.h" @@ -38,13 +39,16 @@ MM_MODEM_CAPABILITY_LTE_ADVANCED) static void iface_modem_init (MMIfaceModem *iface); +static void iface_modem_3gpp_init (MMIfaceModem3gpp *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, iface_modem_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init)); enum { PROP_0, PROP_MODEM_DBUS_SKELETON, + PROP_MODEM_3GPP_DBUS_SKELETON, PROP_MODEM_SIM, PROP_MODEM_STATE, PROP_MODEM_CURRENT_CAPABILITIES, @@ -53,6 +57,7 @@ enum { struct _MMBroadbandModemPrivate { GObject *modem_dbus_skeleton; + GObject *modem_3gpp_dbus_skeleton; MMSim *modem_sim; MMModemState modem_state; MMModemCapability modem_current_capabilities; @@ -1260,6 +1265,7 @@ initialize_finish (MMBaseModem *self, } INTERFACE_INIT_READY_FN (iface_modem, MM_IFACE_MODEM) +INTERFACE_INIT_READY_FN (iface_modem_3gpp, MM_IFACE_MODEM_3GPP) static void initialize_step (InitializeContext *ctx) @@ -1293,7 +1299,12 @@ initialize_step (InitializeContext *ctx) case INITIALIZE_STEP_IFACE_3GPP: if (ctx->self->priv->modem_current_capabilities & MM_MODEM_CAPABILITY_3GPP) { - /* TODO: expose the 3GPP interfaces */ + /* Initialize the Modem interface */ + mm_iface_modem_3gpp_initialize (MM_IFACE_MODEM_3GPP (ctx->self), + ctx->port, + (GAsyncReadyCallback)iface_modem_3gpp_initialize_ready, + ctx); + return; } /* Fall down to next step */ @@ -1391,6 +1402,9 @@ set_property (GObject *object, case PROP_MODEM_DBUS_SKELETON: self->priv->modem_dbus_skeleton = g_value_dup_object (value); break; + case PROP_MODEM_3GPP_DBUS_SKELETON: + self->priv->modem_3gpp_dbus_skeleton = g_value_dup_object (value); + break; case PROP_MODEM_SIM: self->priv->modem_sim = g_value_dup_object (value); break; @@ -1418,6 +1432,9 @@ get_property (GObject *object, case PROP_MODEM_DBUS_SKELETON: g_value_set_object (value, self->priv->modem_dbus_skeleton); break; + case PROP_MODEM_3GPP_DBUS_SKELETON: + g_value_set_object (value, self->priv->modem_3gpp_dbus_skeleton); + break; case PROP_MODEM_SIM: g_value_set_object (value, self->priv->modem_sim); break; @@ -1492,6 +1509,11 @@ iface_modem_init (MMIfaceModem *iface) } static void +iface_modem_3gpp_init (MMIfaceModem3gpp *iface) +{ +} + +static void mm_broadband_modem_class_init (MMBroadbandModemClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); @@ -1516,6 +1538,10 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass) MM_IFACE_MODEM_DBUS_SKELETON); g_object_class_override_property (object_class, + PROP_MODEM_3GPP_DBUS_SKELETON, + MM_IFACE_MODEM_3GPP_DBUS_SKELETON); + + g_object_class_override_property (object_class, PROP_MODEM_SIM, MM_IFACE_MODEM_SIM); |