diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-29 14:19:35 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:29 +0100 |
commit | 5805a931e65759b86338b8fa315a3d10f8b732d4 (patch) | |
tree | 1983302b4fa6aa46c484b0b8f8b6a467e8c47e55 /src/mm-modem-helpers.c | |
parent | 9c60fe6e16255539ac0406a61272cc3fb4b91ea4 (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.c | 31 |
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; } |