diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-18 17:17:27 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-18 17:28:15 +0100 |
commit | ffee9141972e11ee4d2eab949685bacf9c398e84 (patch) | |
tree | a9f5eb2e20607214d4d0113d8654e3e6d18ea56a | |
parent | 82d72744a25c6912cb6e6737b40b830f9652d06c (diff) |
anydata: implement modem reset
-rw-r--r-- | plugins/anydata/mm-broadband-modem-anydata.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/anydata/mm-broadband-modem-anydata.c b/plugins/anydata/mm-broadband-modem-anydata.c index 1a95229b..c468137b 100644 --- a/plugins/anydata/mm-broadband-modem-anydata.c +++ b/plugins/anydata/mm-broadband-modem-anydata.c @@ -30,11 +30,14 @@ #include "mm-errors-types.h" #include "mm-base-modem-at.h" #include "mm-broadband-modem-anydata.h" +#include "mm-iface-modem.h" #include "mm-iface-modem-cdma.h" +static void iface_modem_init (MMIfaceModem *iface); static void iface_modem_cdma_init (MMIfaceModemCdma *iface); G_DEFINE_TYPE_EXTENDED (MMBroadbandModemAnydata, mm_broadband_modem_anydata, MM_TYPE_BROADBAND_MODEM, 0, + G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init) G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_CDMA, iface_modem_cdma_init)); /*****************************************************************************/ @@ -252,6 +255,30 @@ get_detailed_registration_state (MMIfaceModemCdma *self, } /*****************************************************************************/ +/* Reset (Modem interface) */ + +static gboolean +reset_finish (MMIfaceModem *self, + GAsyncResult *res, + GError **error) +{ + return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error); +} + +static void +reset (MMIfaceModem *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + mm_base_modem_at_command (MM_BASE_MODEM (self), + "*RESET", + 3, + FALSE, + callback, + user_data); +} + +/*****************************************************************************/ MMBroadbandModemAnydata * mm_broadband_modem_anydata_new (const gchar *device, @@ -275,6 +302,13 @@ mm_broadband_modem_anydata_init (MMBroadbandModemAnydata *self) } static void +iface_modem_init (MMIfaceModem *iface) +{ + iface->reset = reset; + iface->reset_finish = reset_finish; +} + +static void iface_modem_cdma_init (MMIfaceModemCdma *iface) { iface->get_cdma1x_serving_system = NULL; |