diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-19 08:13:20 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-06 20:07:25 +0200 |
commit | b4f20bfaca787e9c91417ae9ea578876858aa5d8 (patch) | |
tree | 08a59f640e1a96bfdeff704599283a8681e24f91 | |
parent | 7163f4fe5fa2927e702a5d034e1852a03e5f4bf1 (diff) |
icera: implement 3GPP unsolicited messages enabling/disabling
-rw-r--r-- | plugins/icera/mm-iface-icera.c | 52 | ||||
-rw-r--r-- | plugins/icera/mm-iface-icera.h | 17 |
2 files changed, 68 insertions, 1 deletions
diff --git a/plugins/icera/mm-iface-icera.c b/plugins/icera/mm-iface-icera.c index fcd2c268..9466bf24 100644 --- a/plugins/icera/mm-iface-icera.c +++ b/plugins/icera/mm-iface-icera.c @@ -427,6 +427,56 @@ mm_iface_icera_modem_load_access_technologies (MMIfaceModem *self, } /*****************************************************************************/ +/* Disable unsolicited events (3GPP interface) */ + +gboolean +mm_iface_icera_modem_3gpp_disable_unsolicited_events_finish (MMIfaceModem3gpp *self, + GAsyncResult *res, + GError **error) +{ + return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error); +} + +void +mm_iface_icera_modem_3gpp_disable_unsolicited_events (MMIfaceModem3gpp *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + mm_base_modem_at_command ( + MM_BASE_MODEM (self), + "%NWSTATE=0", + 3, + FALSE, + callback, + user_data); +} + +/*****************************************************************************/ +/* Enable unsolicited events (3GPP interface) */ + +gboolean +mm_iface_icera_modem_3gpp_enable_unsolicited_events_finish (MMIfaceModem3gpp *self, + GAsyncResult *res, + GError **error) +{ + return !!mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error); +} + +void +mm_iface_icera_modem_3gpp_enable_unsolicited_events (MMIfaceModem3gpp *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + mm_base_modem_at_command ( + MM_BASE_MODEM (self), + "%NWSTATE=1", + 3, + FALSE, + callback, + user_data); +} + +/*****************************************************************************/ static void iface_icera_init (gpointer g_iface) @@ -450,7 +500,7 @@ mm_iface_icera_get_type (void) &info, 0); - g_type_interface_add_prerequisite (iface_icera_type, MM_TYPE_IFACE_MODEM); + g_type_interface_add_prerequisite (iface_icera_type, MM_TYPE_BROADBAND_MODEM); } return iface_icera_type; diff --git a/plugins/icera/mm-iface-icera.h b/plugins/icera/mm-iface-icera.h index 7ab90051..ba3337ed 100644 --- a/plugins/icera/mm-iface-icera.h +++ b/plugins/icera/mm-iface-icera.h @@ -18,6 +18,7 @@ #define MM_IFACE_ICERA_H #include "mm-iface-modem.h" +#include "mm-iface-modem-3gpp.h" #include "mm-broadband-modem.h" #define MM_TYPE_IFACE_ICERA (mm_iface_icera_get_type ()) @@ -66,4 +67,20 @@ gboolean mm_iface_icera_modem_load_access_technologies_finish (MMIfaceModem *sel guint *mask, GError **error); +/*****************************************************************************/ +/* Modem 3GPP interface specific implementations */ + +void mm_iface_icera_modem_3gpp_enable_unsolicited_events (MMIfaceModem3gpp *self, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean mm_iface_icera_modem_3gpp_enable_unsolicited_events_finish (MMIfaceModem3gpp *self, + GAsyncResult *res, + GError **error); +void mm_iface_icera_modem_3gpp_disable_unsolicited_events (MMIfaceModem3gpp *self, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean mm_iface_icera_modem_3gpp_disable_unsolicited_events_finish (MMIfaceModem3gpp *self, + GAsyncResult *res, + GError **error); + #endif /* MM_IFACE_ICERA_H */ |