diff options
author | Dan Williams <dcbw@redhat.com> | 2010-05-01 22:41:33 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-05-01 22:41:33 -0700 |
commit | 576992966857091c86d58a542dc991d1a44d7769 (patch) | |
tree | 92773b3f7ff2a6bc27aa9ebf55725312a621741a /src/mm-modem-helpers.c | |
parent | de5f1bd4e99549e95b449c3e058a3db4808e31a7 (diff) |
helpers: add generic helper for string -> access technology
Diffstat (limited to 'src/mm-modem-helpers.c')
-rw-r--r-- | src/mm-modem-helpers.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index 36d89314..325d39d9 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -14,6 +14,7 @@ * Copyright (C) 2009 - 2010 Red Hat, Inc. */ +#include <config.h> #include <glib.h> #include <string.h> #include <ctype.h> @@ -770,3 +771,33 @@ mm_gsm_parse_cscs_support_response (const char *reply, return success; } +/*************************************************************************/ + +MMModemGsmAccessTech +mm_gsm_string_to_access_tech (const char *string) +{ + g_return_val_if_fail (string != NULL, MM_MODEM_GSM_ACCESS_TECH_UNKNOWN); + + /* Better technologies are listed first since modems sometimes say + * stuff like "GPRS/EDGE" and that should be handled as EDGE. + */ + if (strcasestr (string, "HSPA")) + return MM_MODEM_GSM_ACCESS_TECH_HSPA; + else if (strcasestr (string, "HSDPA/HSUPA")) + return MM_MODEM_GSM_ACCESS_TECH_HSPA; + else if (strcasestr (string, "HSUPA")) + return MM_MODEM_GSM_ACCESS_TECH_HSUPA; + else if (strcasestr (string, "HSDPA")) + return MM_MODEM_GSM_ACCESS_TECH_HSDPA; + else if (strcasestr (string, "UMTS")) + return MM_MODEM_GSM_ACCESS_TECH_UMTS; + else if (strcasestr (string, "EDGE")) + return MM_MODEM_GSM_ACCESS_TECH_EDGE; + else if (strcasestr (string, "GPRS")) + return MM_MODEM_GSM_ACCESS_TECH_GPRS; + else if (strcasestr (string, "GSM")) + return MM_MODEM_GSM_ACCESS_TECH_GSM; + + return MM_MODEM_GSM_ACCESS_TECH_UNKNOWN; +} + |