diff options
author | Dan Williams <dcbw@redhat.com> | 2009-08-05 13:03:59 -0400 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2009-08-05 13:03:59 -0400 |
commit | 2d194a5798fb06f41b018c2d8c2216f45bfc41a4 (patch) | |
tree | 42b523b7c667092dd4e02f30443d3d585e45a621 /plugins/mm-modem-huawei.c | |
parent | 356f8f097e5fe012ac762157c903bd9b51fa982d (diff) |
gsm: harmonize band/mode enums
Use the same enum for set/get of band and mode, as for exposing the
device's capabilities.
Diffstat (limited to 'plugins/mm-modem-huawei.c')
-rw-r--r-- | plugins/mm-modem-huawei.c | 115 |
1 files changed, 62 insertions, 53 deletions
diff --git a/plugins/mm-modem-huawei.c b/plugins/mm-modem-huawei.c index 08ba7d84..b5991127 100644 --- a/plugins/mm-modem-huawei.c +++ b/plugins/mm-modem-huawei.c @@ -35,8 +35,8 @@ static gpointer mm_modem_huawei_parent_class = NULL; typedef struct { /* Cached state */ guint signal_quality; - MMModemGsmNetworkMode mode; - MMModemGsmNetworkBand band; + MMModemGsmMode mode; + MMModemGsmBand band; } MMModemHuaweiPrivate; MMModem * @@ -72,21 +72,21 @@ parse_syscfg (MMModemHuawei *self, /* Network mode */ if (*mode_a == 2 && *mode_b == 1) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_2G_PREFERRED; + priv->mode = MM_MODEM_GSM_MODE_2G_PREFERRED; else if (*mode_a == 2 && *mode_b == 2) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_3G_PREFERRED; + priv->mode = MM_MODEM_GSM_MODE_3G_PREFERRED; else if (*mode_a == 13 && *mode_b == 1) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_2G_ONLY; + priv->mode = MM_MODEM_GSM_MODE_2G_ONLY; else if (*mode_a == 14 && *mode_b == 2) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_3G_ONLY; + priv->mode = MM_MODEM_GSM_MODE_3G_ONLY; /* Band */ if (*band == 0x3FFFFFFF) - priv->band = MM_MODEM_GSM_NETWORK_BAND_ANY; + priv->band = MM_MODEM_GSM_BAND_ANY; else if (*band == 0x400380) - priv->band = MM_MODEM_GSM_NETWORK_BAND_DCS; + priv->band = MM_MODEM_GSM_BAND_DCS; else if (*band == 0x200000) - priv->band = MM_MODEM_GSM_NETWORK_BAND_PCS; + priv->band = MM_MODEM_GSM_BAND_PCS; return TRUE; } @@ -132,25 +132,29 @@ set_network_mode_get_done (MMSerialPort *port, char *command; switch (GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mode"))) { - case MM_MODEM_GSM_NETWORK_MODE_GPRS: - case MM_MODEM_GSM_NETWORK_MODE_EDGE: - case MM_MODEM_GSM_NETWORK_MODE_2G_ONLY: + case MM_MODEM_GSM_MODE_ANY: + a = 2; + b = 0; + break; + case MM_MODEM_GSM_MODE_GPRS: + case MM_MODEM_GSM_MODE_EDGE: + case MM_MODEM_GSM_MODE_2G_ONLY: a = 13; b = 1; break; - case MM_MODEM_GSM_NETWORK_MODE_UMTS: - case MM_MODEM_GSM_NETWORK_MODE_HSDPA: - case MM_MODEM_GSM_NETWORK_MODE_HSUPA: - case MM_MODEM_GSM_NETWORK_MODE_HSPA: - case MM_MODEM_GSM_NETWORK_MODE_3G_ONLY: + case MM_MODEM_GSM_MODE_UMTS: + case MM_MODEM_GSM_MODE_HSDPA: + case MM_MODEM_GSM_MODE_HSUPA: + case MM_MODEM_GSM_MODE_HSPA: + case MM_MODEM_GSM_MODE_3G_ONLY: a = 14; b = 2; break; - case MM_MODEM_GSM_NETWORK_MODE_2G_PREFERRED: + case MM_MODEM_GSM_MODE_2G_PREFERRED: a = 2; b = 1; break; - case MM_MODEM_GSM_NETWORK_MODE_3G_PREFERRED: + case MM_MODEM_GSM_MODE_3G_PREFERRED: a = 2; b = 2; break; @@ -167,7 +171,7 @@ set_network_mode_get_done (MMSerialPort *port, static void set_network_mode (MMModemGsmNetwork *modem, - MMModemGsmNetworkMode mode, + MMModemGsmMode mode, MMModemFn callback, gpointer user_data) { @@ -177,19 +181,17 @@ set_network_mode (MMModemGsmNetwork *modem, info = mm_callback_info_new (MM_MODEM (modem), callback, user_data); switch (mode) { - case MM_MODEM_GSM_NETWORK_MODE_ANY: - /* Do nothing */ - break; - case MM_MODEM_GSM_NETWORK_MODE_GPRS: - case MM_MODEM_GSM_NETWORK_MODE_EDGE: - case MM_MODEM_GSM_NETWORK_MODE_UMTS: - case MM_MODEM_GSM_NETWORK_MODE_HSDPA: - case MM_MODEM_GSM_NETWORK_MODE_HSUPA: - case MM_MODEM_GSM_NETWORK_MODE_HSPA: - case MM_MODEM_GSM_NETWORK_MODE_2G_PREFERRED: - case MM_MODEM_GSM_NETWORK_MODE_3G_PREFERRED: - case MM_MODEM_GSM_NETWORK_MODE_2G_ONLY: - case MM_MODEM_GSM_NETWORK_MODE_3G_ONLY: + case MM_MODEM_GSM_MODE_ANY: + case MM_MODEM_GSM_MODE_GPRS: + case MM_MODEM_GSM_MODE_EDGE: + case MM_MODEM_GSM_MODE_UMTS: + case MM_MODEM_GSM_MODE_HSDPA: + case MM_MODEM_GSM_MODE_HSUPA: + case MM_MODEM_GSM_MODE_HSPA: + case MM_MODEM_GSM_MODE_2G_PREFERRED: + case MM_MODEM_GSM_MODE_3G_PREFERRED: + case MM_MODEM_GSM_MODE_2G_ONLY: + case MM_MODEM_GSM_MODE_3G_ONLY: /* Allowed values */ mm_callback_info_set_data (info, "mode", GUINT_TO_POINTER (mode), NULL); primary = mm_generic_gsm_get_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY); @@ -231,7 +233,7 @@ get_network_mode (MMModemGsmNetwork *modem, { MMModemHuaweiPrivate *priv = MM_MODEM_HUAWEI_GET_PRIVATE (modem); - if (priv->mode != MM_MODEM_GSM_NETWORK_MODE_ANY) { + if (priv->mode != MM_MODEM_GSM_MODE_ANY) { /* have cached mode (from an unsolicited message). Use that */ MMCallbackInfo *info; @@ -289,17 +291,24 @@ set_band_get_done (MMSerialPort *port, char *command; switch (GPOINTER_TO_UINT (mm_callback_info_get_data (info, "band"))) { - case MM_MODEM_GSM_NETWORK_BAND_ANY: + case MM_MODEM_GSM_BAND_ANY: band = 0x3FFFFFFF; break; - case MM_MODEM_GSM_NETWORK_BAND_EGSM: - case MM_MODEM_GSM_NETWORK_BAND_DCS: - case MM_MODEM_GSM_NETWORK_BAND_U2100: - band = 0x400380; + case MM_MODEM_GSM_BAND_EGSM: + band = 0x100; break; - case MM_MODEM_GSM_NETWORK_BAND_PCS: + case MM_MODEM_GSM_BAND_DCS: + band = 0x80; + break; + case MM_MODEM_GSM_BAND_U2100: + band = 0x400000; + break; + case MM_MODEM_GSM_BAND_PCS: band = 0x200000; break; + case MM_MODEM_GSM_BAND_G850: + band = 0x80000; + break; default: break; } @@ -313,7 +322,7 @@ set_band_get_done (MMSerialPort *port, static void set_band (MMModemGsmNetwork *modem, - MMModemGsmNetworkBand band, + MMModemGsmBand band, MMModemFn callback, gpointer user_data) { @@ -323,11 +332,11 @@ set_band (MMModemGsmNetwork *modem, info = mm_callback_info_new (MM_MODEM (modem), callback, user_data); switch (band) { - case MM_MODEM_GSM_NETWORK_BAND_ANY: - case MM_MODEM_GSM_NETWORK_BAND_EGSM: - case MM_MODEM_GSM_NETWORK_BAND_DCS: - case MM_MODEM_GSM_NETWORK_BAND_U2100: - case MM_MODEM_GSM_NETWORK_BAND_PCS: + case MM_MODEM_GSM_BAND_ANY: + case MM_MODEM_GSM_BAND_EGSM: + case MM_MODEM_GSM_BAND_DCS: + case MM_MODEM_GSM_BAND_U2100: + case MM_MODEM_GSM_BAND_PCS: mm_callback_info_set_data (info, "band", GUINT_TO_POINTER (band), NULL); primary = mm_generic_gsm_get_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY); g_assert (primary); @@ -369,7 +378,7 @@ get_band (MMModemGsmNetwork *modem, MMModemHuaweiPrivate *priv = MM_MODEM_HUAWEI_GET_PRIVATE (modem); MMSerialPort *primary; - if (priv->band != MM_MODEM_GSM_NETWORK_BAND_ANY) { + if (priv->band != MM_MODEM_GSM_BAND_ANY) { /* have cached mode (from an unsolicited message). Use that */ MMCallbackInfo *info; @@ -458,17 +467,17 @@ handle_mode_change (MMSerialPort *port, g_free (str); if (a == 3 && b == 2) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_GPRS; + priv->mode = MM_MODEM_GSM_MODE_GPRS; else if (a == 3 && b == 3) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_EDGE; + priv->mode = MM_MODEM_GSM_MODE_EDGE; else if (a == 5 && b == 4) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_UMTS; + priv->mode = MM_MODEM_GSM_MODE_UMTS; else if (a == 5 && b == 5) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_HSDPA; + priv->mode = MM_MODEM_GSM_MODE_HSDPA; else if (a == 5 && b == 6) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_HSUPA; + priv->mode = MM_MODEM_GSM_MODE_HSUPA; else if (a == 5 && b == 7) - priv->mode = MM_MODEM_GSM_NETWORK_MODE_HSPA; + priv->mode = MM_MODEM_GSM_MODE_HSPA; else { g_warning ("Couldn't parse mode change value: '%s'", str); return; |