aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-icera-utils.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-01-01 12:23:14 -0600
committerDan Williams <dcbw@redhat.com>2011-01-01 12:23:14 -0600
commit9d777763a28dad942d56127a5431b6f61cd4955d (patch)
tree47ee6d4957e5ac5b238ddf72d6ba3e1563c0af0f /plugins/mm-icera-utils.c
parentf84958933bb333394ff159778507cb53fb7f8c43 (diff)
icera: consolidate Icera check code into utility lib
Diffstat (limited to 'plugins/mm-icera-utils.c')
-rw-r--r--plugins/mm-icera-utils.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/plugins/mm-icera-utils.c b/plugins/mm-icera-utils.c
index a3fa3172..4130f736 100644
--- a/plugins/mm-icera-utils.c
+++ b/plugins/mm-icera-utils.c
@@ -263,3 +263,36 @@ mm_icera_utils_get_access_technology (MMGenericGsm *modem,
mm_at_serial_port_queue_command (port, "%NWSTATE=1", 3, get_nwstate_done, info);
}
+static void
+icera_check_done (MMAtSerialPort *port,
+ GString *response,
+ GError *error,
+ gpointer user_data)
+{
+ MMCallbackInfo *info = user_data;
+
+ info->error = mm_modem_check_removed (info->modem, error);
+ if (!info->error)
+ mm_callback_info_set_result (info, GUINT_TO_POINTER (TRUE), NULL);
+ mm_callback_info_schedule (info);
+}
+
+void
+mm_icera_utils_is_icera (MMGenericGsm *modem,
+ MMModemUIntFn callback,
+ gpointer user_data)
+{
+ MMAtSerialPort *port;
+ MMCallbackInfo *info;
+
+ info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
+
+ port = mm_generic_gsm_get_best_at_port (modem, &info->error);
+ if (!port) {
+ mm_callback_info_schedule (info);
+ return;
+ }
+
+ mm_at_serial_port_queue_command (port, "%IPSYS?", 5, icera_check_done, info);
+}
+