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 | |
parent | de5f1bd4e99549e95b449c3e058a3db4808e31a7 (diff) |
helpers: add generic helper for string -> access technology
-rw-r--r-- | src/mm-modem-helpers.c | 31 | ||||
-rw-r--r-- | src/mm-modem-helpers.h | 3 |
2 files changed, 34 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; +} + diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h index d747a68a..63eecfbb 100644 --- a/src/mm-modem-helpers.h +++ b/src/mm-modem-helpers.h @@ -18,6 +18,7 @@ #define MM_MODEM_HELPERS_H #include "mm-modem-cdma.h" +#include "mm-modem-gsm.h" #include "mm-charsets.h" #define MM_SCAN_TAG_STATUS "status" @@ -55,5 +56,7 @@ gboolean mm_cdma_parse_speri_response (const char *reply, gboolean mm_gsm_parse_cscs_support_response (const char *reply, MMModemCharset *out_charsets); +MMModemGsmAccessTech mm_gsm_string_to_access_tech (const char *string); + #endif /* MM_MODEM_HELPERS_H */ |