aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-11-29 14:19:35 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:29 +0100
commit5805a931e65759b86338b8fa315a3d10f8b732d4 (patch)
tree1983302b4fa6aa46c484b0b8f8b6a467e8c47e55 /src/mm-modem-helpers.c
parent9c60fe6e16255539ac0406a61272cc3fb4b91ea4 (diff)
modem-helpers: use MMModemAccessTech when parsing C(G)REG responses
Diffstat (limited to 'src/mm-modem-helpers.c')
-rw-r--r--src/mm-modem-helpers.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index 3ec701e3..f2383ef8 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -51,6 +51,32 @@ save_scan_value (GHashTable *hash, const char *key, GMatchInfo *info, guint32 nu
char *quoted;
size_t len;
+static MMModemAccessTech
+get_mm_access_tech_from_etsi_access_tech (guint act)
+{
+ /* See ETSI TS 27.007 */
+ switch (act) {
+ case 0:
+ return MM_MODEM_ACCESS_TECH_GSM;
+ case 1:
+ return MM_MODEM_ACCESS_TECH_GSM_COMPACT;
+ case 2:
+ return MM_MODEM_ACCESS_TECH_UMTS;
+ case 3:
+ return MM_MODEM_ACCESS_TECH_EDGE;
+ case 4:
+ return MM_MODEM_ACCESS_TECH_HSDPA;
+ case 5:
+ return MM_MODEM_ACCESS_TECH_HSUPA;
+ case 6:
+ return MM_MODEM_ACCESS_TECH_HSPA;
+ case 7:
+ return MM_MODEM_ACCESS_TECH_LTE;
+ default:
+ return MM_MODEM_ACCESS_TECH_UNKNOWN;
+ }
+}
+
g_return_if_fail (info != NULL);
quoted = g_match_info_fetch (info, num);
@@ -376,7 +402,7 @@ mm_gsm_parse_creg_response (GMatchInfo *info,
MMModem3gppRegistrationState *out_reg_state,
gulong *out_lac,
gulong *out_ci,
- gint *out_act,
+ MMModemAccessTech *out_act,
gboolean *out_cgreg,
GError **error)
{
@@ -496,7 +522,8 @@ mm_gsm_parse_creg_response (GMatchInfo *info,
/* Don't fill in lac/ci/act if the device's state is unknown */
*out_lac = lac;
*out_ci = ci;
- *out_act = act;
+
+ *out_act = get_mm_access_tech_from_etsi_access_tech (act);
}
return TRUE;
}