aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/mm-modem-iridium-gsm.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/plugins/mm-modem-iridium-gsm.c b/plugins/mm-modem-iridium-gsm.c
index 9a877d19..0507a3f0 100644
--- a/plugins/mm-modem-iridium-gsm.c
+++ b/plugins/mm-modem-iridium-gsm.c
@@ -27,6 +27,16 @@
#include "mm-modem-iridium-gsm.h"
#include "mm-log.h"
+/* NOTE:
+ * We are simulating here the Iridium modem as if it were a pure GSM device
+ * (even if it of course isn't). This is because the Iridium modems implement
+ * GSM-like AT commands and therefore we can base the Iridium plugin on the
+ * generic GSM implementation. So:
+ * - We report Access Technology as pure GSM.
+ * - We allow only 2G-related allowed modes.
+ *
+ */
+
static void modem_gsm_network_init (MMModemGsmNetwork *gsm_network_class);
G_DEFINE_TYPE_EXTENDED (MMModemIridiumGsm, mm_modem_iridium_gsm, MM_TYPE_GENERIC_GSM, 0,
@@ -108,6 +118,20 @@ get_allowed_mode (MMGenericGsm *gsm,
}
static void
+get_access_technology (MMGenericGsm *gsm,
+ MMModemUIntFn callback,
+ gpointer user_data)
+{
+ MMCallbackInfo *info;
+
+ info = mm_callback_info_uint_new (MM_MODEM (gsm), callback, user_data);
+ mm_callback_info_set_result (info,
+ GUINT_TO_POINTER (MM_MODEM_GSM_ACCESS_TECH_GSM),
+ NULL);
+ mm_callback_info_schedule (info);
+}
+
+static void
get_csqf_done (MMAtSerialPort *port,
GString *response,
GError *error,
@@ -290,6 +314,7 @@ mm_modem_iridium_gsm_class_init (MMModemIridiumGsmClass *klass)
MM_GENERIC_GSM_PROP_SMS_STORAGE_LOCATION_CMD,
MM_GENERIC_GSM_SMS_STORAGE_LOCATION_CMD);
+ gsm_class->get_access_technology = get_access_technology;
gsm_class->set_allowed_mode = set_allowed_mode;
gsm_class->get_allowed_mode = get_allowed_mode;
gsm_class->get_sim_iccid = get_sim_iccid;