aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-19 08:13:20 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-06 20:07:25 +0200
commitb4f20bfaca787e9c91417ae9ea578876858aa5d8 (patch)
tree08a59f640e1a96bfdeff704599283a8681e24f91
parent7163f4fe5fa2927e702a5d034e1852a03e5f4bf1 (diff)
icera: implement 3GPP unsolicited messages enabling/disabling
-rw-r--r--plugins/icera/mm-iface-icera.c52
-rw-r--r--plugins/icera/mm-iface-icera.h17
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 */