aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-03-08 17:27:56 -0800
committerDan Williams <dcbw@redhat.com>2010-03-08 17:27:56 -0800
commitc5a897d0ae1e4609cc2f9d3e127c1e50be9a84c1 (patch)
tree8e5c60a1d5dc22cb9d73b3031855621fd6e5b61d
parentaeac17a81edfb3304de405127bb06d100c8a5522 (diff)
api+gsm: clean up AllowedMode values
Instead of trying to stuff everything into the mode bitfield it turns out it's just easier, clearer, and simpler to use different values for each of the following: 1) the device's supported access technologies and allowed modes 2) the device's current access technology 3) the device's allowed mode preference Since none of the AccessTechnology or AllowedMode stuff has hit a release yet, let's make sure we're doing it the right way early on.
-rw-r--r--introspection/mm-modem-gsm-network.xml16
-rw-r--r--introspection/mm-modem-gsm.xml29
-rw-r--r--plugins/mm-modem-huawei-gsm.c58
-rw-r--r--plugins/mm-modem-mbm.c39
-rw-r--r--plugins/mm-modem-option.c22
-rw-r--r--src/mm-generic-gsm.c42
-rw-r--r--src/mm-generic-gsm.h4
-rw-r--r--src/mm-modem-gsm-network.c46
-rw-r--r--src/mm-modem-gsm-network.h17
-rw-r--r--src/mm-modem-gsm.h10
10 files changed, 153 insertions, 130 deletions
diff --git a/introspection/mm-modem-gsm-network.xml b/introspection/mm-modem-gsm-network.xml
index 82eb177d..12fca5d9 100644
--- a/introspection/mm-modem-gsm-network.xml
+++ b/introspection/mm-modem-gsm-network.xml
@@ -128,26 +128,24 @@
<method name="SetAllowedMode">
<tp:docstring>
- Set the allowed access technologies to use when connecting to a mobile
- network.
+ Set the access technologies a device is allowed to use when connecting
+ to a mobile network.
</tp:docstring>
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<annotation name="org.freedesktop.DBus.GLib.CSymbol" value="impl_gsm_modem_set_allowed_mode"/>
- <arg name="mode" type="u" direction="in" tp:type="MM_MODEM_GSM_MODE">
+ <arg name="mode" type="u" direction="in" tp:type="MM_MODEM_GSM_ALLOWED_MODE">
<tp:docstring>
- The allowed access technologies. Only one mode flag may be specified,
- and it may not be UNKNOWN. The device may not support all modes; see
+ The allowed mode. The device may not support all modes; see
the org.freedesktop.ModemManager.Gsm.Card.SupportedModes property for
allowed modes for each device. All devices support the "ANY" flag.
</tp:docstring>
</arg>
</method>
- <property name="AllowedMode" type="u" access="read" tp:type="MM_MODEM_GSM_MODE">
+ <property name="AllowedMode" type="u" access="read" tp:type="MM_MODEM_GSM_ALLOWED_MODE">
<tp:docstring>
- The allowed access technologies (eg 2G/3G preference or a specific access
- technology) to use when connecting to a mobile network. (Note for plugin
- writers: this value may be ANY)
+ The allowed access technologies (eg 2G/3G preference) the device is allowed
+ to use when connecting to a mobile network.
</tp:docstring>
</property>
diff --git a/introspection/mm-modem-gsm.xml b/introspection/mm-modem-gsm.xml
index f5def8ac..15e378a6 100644
--- a/introspection/mm-modem-gsm.xml
+++ b/introspection/mm-modem-gsm.xml
@@ -5,8 +5,8 @@
<tp:flags name="MM_MODEM_GSM_MODE" value-prefix="MM_MODEM_GSM_MODE" type="u">
<tp:docstring>
A bitfield describing the specifc access modes and technologies
- supported by a device, the device's current access mode preference, and
- the access technology in-use when connected to a mobile network.
+ supported by a device and the access technology in-use when connected to
+ a mobile network.
</tp:docstring>
<tp:flag suffix="UNKNOWN" value="0x0">
<tp:docstring>Unknown or invalid mode.</tp:docstring>
@@ -98,5 +98,30 @@
<tp:docstring>WCDMA 3GPP UMTS 1700 MHz (Class IX)</tp:docstring>
</tp:flag>
</tp:flags>
+
+ <tp:enum name="MM_MODEM_GSM_ALLOWED_MODE" type="u">
+ <tp:docstring>
+ Describes the device's current access mode preference; ie the specific
+ technology preferences the device is allowed to use when connecting to
+ a mobile network.
+ </tp:docstring>
+ <tp:enumvalue suffix="ANY" value="0">
+ <tp:docstring>Any mode can be used</tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="2G_PREFERRED" value="1">
+ <tp:docstring>Prefer 2G (GPRS or EDGE)</tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="3G_PREFERRED" value="2">
+ <tp:docstring>Prefer 3G (UMTS or HSxPA)</tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="2G_ONLY" value="3">
+ <tp:docstring>Use only 2G (GPRS or EDGE)</tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="3G_ONLY" value="4">
+ <tp:docstring>Use only 3G (UMTS or HSxPA)</tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
</interface>
</node>
+
diff --git a/plugins/mm-modem-huawei-gsm.c b/plugins/mm-modem-huawei-gsm.c
index 4594872b..12c4d894 100644
--- a/plugins/mm-modem-huawei-gsm.c
+++ b/plugins/mm-modem-huawei-gsm.c
@@ -68,24 +68,24 @@ parse_syscfg (MMModemHuaweiGsm *self,
guint32 *band,
int *unknown1,
int *unknown2,
- MMModemGsmMode *out_mode)
+ MMModemGsmAllowedMode *out_mode)
{
if (reply == NULL || strncmp (reply, "^SYSCFG:", 8))
return FALSE;
if (sscanf (reply + 8, "%d,%d,%x,%d,%d", mode_a, mode_b, band, unknown1, unknown2)) {
MMModemHuaweiGsmPrivate *priv = MM_MODEM_HUAWEI_GSM_GET_PRIVATE (self);
- MMModemGsmMode new_mode = MM_MODEM_GSM_MODE_ANY;
+ MMModemGsmAllowedMode new_mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
/* Network mode */
if (*mode_a == 2 && *mode_b == 1)
- new_mode = MM_MODEM_GSM_MODE_2G_PREFERRED;
+ new_mode = MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED;
else if (*mode_a == 2 && *mode_b == 2)
- new_mode = MM_MODEM_GSM_MODE_3G_PREFERRED;
+ new_mode = MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED;
else if (*mode_a == 13 && *mode_b == 1)
- new_mode = MM_MODEM_GSM_MODE_2G_ONLY;
+ new_mode = MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY;
else if (*mode_a == 14 && *mode_b == 2)
- new_mode = MM_MODEM_GSM_MODE_3G_ONLY;
+ new_mode = MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY;
if (out_mode)
*out_mode = new_mode;
@@ -134,26 +134,28 @@ set_allowed_mode_get_done (MMSerialPort *port,
guint32 band;
if (parse_syscfg (MM_MODEM_HUAWEI_GSM (info->modem), response->str, &a, &b, &band, &u1, &u2, NULL)) {
+ MMModemGsmAllowedMode mode;
char *command;
- switch (GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mode"))) {
- case MM_MODEM_GSM_MODE_ANY:
+ mode = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mode"));
+ switch (mode) {
+ case MM_MODEM_GSM_ALLOWED_MODE_ANY:
a = 2;
b = 0;
break;
- case MM_MODEM_GSM_MODE_2G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY:
a = 13;
b = 1;
break;
- case MM_MODEM_GSM_MODE_3G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY:
a = 14;
b = 2;
break;
- case MM_MODEM_GSM_MODE_2G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED:
a = 2;
b = 1;
break;
- case MM_MODEM_GSM_MODE_3G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED:
a = 2;
b = 2;
break;
@@ -170,7 +172,7 @@ set_allowed_mode_get_done (MMSerialPort *port,
static void
set_allowed_mode (MMGenericGsm *gsm,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data)
{
@@ -179,28 +181,14 @@ set_allowed_mode (MMGenericGsm *gsm,
info = mm_callback_info_new (MM_MODEM (gsm), callback, user_data);
- switch (mode) {
- case MM_MODEM_GSM_MODE_ANY:
- 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 (gsm), MM_PORT_TYPE_PRIMARY);
- g_assert (primary);
-
- /* Get current configuration first so we don't change band and other
- * stuff when updating the mode.
- */
- mm_serial_port_queue_command (primary, "AT^SYSCFG?", 3, set_allowed_mode_get_done, info);
- return;
- default:
- info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "Unsupported allowed mode.");
- break;
- }
+ mm_callback_info_set_data (info, "mode", GUINT_TO_POINTER (mode), NULL);
+ primary = mm_generic_gsm_get_port (MM_GENERIC_GSM (gsm), MM_PORT_TYPE_PRIMARY);
+ g_assert (primary);
- mm_callback_info_schedule (info);
+ /* Get current configuration first so we don't change band and other
+ * stuff when updating the mode.
+ */
+ mm_serial_port_queue_command (primary, "AT^SYSCFG?", 3, set_allowed_mode_get_done, info);
}
static void
@@ -213,7 +201,7 @@ get_allowed_mode_done (MMSerialPort *port,
MMModemHuaweiGsm *self = MM_MODEM_HUAWEI_GSM (info->modem);
int mode_a, mode_b, u1, u2;
guint32 band;
- MMModemGsmMode mode = MM_MODEM_GSM_MODE_ANY;
+ MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
if (error)
info->error = g_error_copy (error);
diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c
index 72bd48a7..ccf20d85 100644
--- a/plugins/mm-modem-mbm.c
+++ b/plugins/mm-modem-mbm.c
@@ -165,16 +165,16 @@ do_register (MMModemGsmNetwork *modem,
}
static int
-mbm_parse_network_mode (MMModemGsmMode network_mode)
+mbm_parse_allowed_mode (MMModemGsmAllowedMode network_mode)
{
switch (network_mode) {
- case MM_MODEM_GSM_MODE_ANY:
- case MM_MODEM_GSM_MODE_3G_PREFERRED:
- case MM_MODEM_GSM_MODE_2G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_ANY:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED:
return MBM_NETWORK_MODE_ANY;
- case MM_MODEM_GSM_MODE_2G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY:
return MBM_NETWORK_MODE_2G;
- case MM_MODEM_GSM_MODE_3G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY:
return MBM_NETWORK_MODE_3G;
default:
return MBM_NETWORK_MODE_ANY;
@@ -197,7 +197,7 @@ mbm_set_allowed_mode_done (MMSerialPort *port,
static void
set_allowed_mode (MMGenericGsm *gsm,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data)
{
@@ -209,7 +209,7 @@ set_allowed_mode (MMGenericGsm *gsm,
primary = mm_generic_gsm_get_port (gsm, MM_PORT_TYPE_PRIMARY);
g_assert (primary);
- command = g_strdup_printf ("+CFUN=%d", mbm_parse_network_mode (mode));
+ command = g_strdup_printf ("+CFUN=%d", mbm_parse_allowed_mode (mode));
mm_serial_port_queue_command (primary, command, 3, mbm_set_allowed_mode_done, info);
g_free (command);
}
@@ -278,14 +278,14 @@ get_allowed_mode_done (MMSerialPort *port,
if (error)
info->error = g_error_copy (error);
else if (!g_str_has_prefix (response->str, "CFUN: ")) {
- MMModemGsmMode mode = MM_MODEM_GSM_MODE_ANY;
+ MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
int a;
a = atoi (response->str + 6);
if (a == MBM_NETWORK_MODE_2G)
- mode = MM_MODEM_GSM_MODE_2G_ONLY;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY;
else if (a == MBM_NETWORK_MODE_3G)
- mode = MM_MODEM_GSM_MODE_3G_ONLY;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY;
mm_callback_info_set_result (info, GUINT_TO_POINTER (mode), NULL);
parsed = TRUE;
@@ -331,7 +331,22 @@ simple_connect (MMModemSimple *simple,
priv->password = mbm_simple_get_string_property (properties, "password", &info->error);
network_mode = mbm_simple_get_uint_property (properties, "network_mode", &info->error);
- priv->network_mode = mbm_parse_network_mode (network_mode);
+ switch (network_mode) {
+ case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_ANY:
+ case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_3G_PREFERRED:
+ case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_2G_PREFERRED:
+ priv->network_mode = MBM_NETWORK_MODE_ANY;
+ break;
+ case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_2G_ONLY:
+ priv->network_mode = MBM_NETWORK_MODE_2G;
+ break;
+ case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_3G_ONLY:
+ priv->network_mode = MBM_NETWORK_MODE_3G;
+ break;
+ default:
+ priv->network_mode = MBM_NETWORK_MODE_ANY;
+ break;
+ }
parent_iface = g_type_interface_peek_parent (MM_MODEM_SIMPLE_GET_INTERFACE (simple));
parent_iface->connect (MM_MODEM_SIMPLE (simple), properties, callback, info);
diff --git a/plugins/mm-modem-option.c b/plugins/mm-modem-option.c
index ddd947da..a7faf4d3 100644
--- a/plugins/mm-modem-option.c
+++ b/plugins/mm-modem-option.c
@@ -101,20 +101,20 @@ get_allowed_mode_done (MMSerialPort *port,
int a, b;
if (sscanf (response->str + 8, "%d,%d", &a, &b)) {
- MMModemGsmMode mode = MM_MODEM_GSM_MODE_ANY;
+ MMModemGsmAllowedMode mode = MM_MODEM_GSM_ALLOWED_MODE_ANY;
switch (a) {
case 0:
- mode = MM_MODEM_GSM_MODE_2G_ONLY;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY;
break;
case 1:
- mode = MM_MODEM_GSM_MODE_3G_ONLY;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY;
break;
case 2:
- mode = MM_MODEM_GSM_MODE_2G_PREFERRED;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED;
break;
case 3:
- mode = MM_MODEM_GSM_MODE_3G_PREFERRED;
+ mode = MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED;
break;
default:
break;
@@ -162,7 +162,7 @@ set_allowed_mode_done (MMSerialPort *port,
static void
set_allowed_mode (MMGenericGsm *gsm,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data)
{
@@ -174,19 +174,19 @@ set_allowed_mode (MMGenericGsm *gsm,
info = mm_callback_info_new (MM_MODEM (gsm), callback, user_data);
switch (mode) {
- case MM_MODEM_GSM_MODE_2G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY:
i = 0;
break;
- case MM_MODEM_GSM_MODE_3G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY:
i = 1;
break;
- case MM_MODEM_GSM_MODE_2G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED:
i = 2;
break;
- case MM_MODEM_GSM_MODE_3G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED:
i = 3;
break;
- case MM_MODEM_GSM_MODE_ANY:
+ case MM_MODEM_GSM_ALLOWED_MODE_ANY:
default:
i = 5;
break;
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index 917a7621..4b1b65bf 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -56,7 +56,7 @@ typedef struct {
guint32 pin_check_tries;
guint pin_check_timeout;
- guint32 allowed_mode;
+ MMModemGsmAllowedMode allowed_mode;
char *oper_code;
char *oper_name;
@@ -646,13 +646,13 @@ creg2_done (MMSerialPort *port,
static void
get_allowed_mode_done (MMModem *modem,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
GError *error,
gpointer user_data)
{
if (modem) {
mm_generic_gsm_update_allowed_mode (MM_GENERIC_GSM (modem),
- error ? MM_MODEM_GSM_MODE_UNKNOWN : mode);
+ error ? MM_MODEM_GSM_ALLOWED_MODE_ANY : mode);
}
}
@@ -2269,7 +2269,7 @@ mm_generic_gsm_update_access_technology (MMGenericGsm *modem,
void
mm_generic_gsm_update_allowed_mode (MMGenericGsm *self,
- MMModemGsmMode mode)
+ MMModemGsmAllowedMode mode)
{
MMGenericGsmPrivate *priv;
@@ -2291,7 +2291,7 @@ set_allowed_mode_done (MMModem *modem, GError *error, gpointer user_data)
info->error = mm_modem_check_removed (info->modem, error);
if (!info->error) {
- MMModemGsmMode mode = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mode"));
+ MMModemGsmAllowedMode mode = GPOINTER_TO_UINT (mm_callback_info_get_data (info, "mode"));
mm_generic_gsm_update_allowed_mode (MM_GENERIC_GSM (info->modem), mode);
}
@@ -2301,7 +2301,7 @@ set_allowed_mode_done (MMModem *modem, GError *error, gpointer user_data)
static void
set_allowed_mode (MMModemGsmNetwork *net,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data)
{
@@ -2310,17 +2310,27 @@ set_allowed_mode (MMModemGsmNetwork *net,
info = mm_callback_info_new (MM_MODEM (self), callback, user_data);
- if (mode == MM_MODEM_GSM_MODE_UNKNOWN) {
+ switch (mode) {
+ case MM_MODEM_GSM_ALLOWED_MODE_ANY:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED:
+ case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY:
+ case MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY:
+ if (!MM_GENERIC_GSM_GET_CLASS (self)->set_allowed_mode) {
+ info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_OPERATION_NOT_SUPPORTED,
+ "Operation not supported");
+ } else {
+ mm_callback_info_set_data (info, "mode", GUINT_TO_POINTER (mode), NULL);
+ MM_GENERIC_GSM_GET_CLASS (self)->set_allowed_mode (self, mode, set_allowed_mode_done, info);
+ }
+ break;
+ default:
info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_GENERAL, "Invalid mode.");
- mm_callback_info_schedule (info);
- } else if (!MM_GENERIC_GSM_GET_CLASS (self)->set_allowed_mode) {
- info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_OPERATION_NOT_SUPPORTED,
- "Operation not supported");
- mm_callback_info_schedule (info);
- } else {
- mm_callback_info_set_data (info, "mode", GUINT_TO_POINTER (mode), NULL);
- MM_GENERIC_GSM_GET_CLASS (self)->set_allowed_mode (self, mode, set_allowed_mode_done, info);
+ break;
}
+
+ if (info->error)
+ mm_callback_info_schedule (info);
}
/*****************************************************************************/
@@ -2631,7 +2641,7 @@ simple_get_status (MMModemSimple *simple,
if (priv->access_tech > -1) {
/* Deprecated key */
- old_mode = mm_modem_gsm_network_new_mode_to_old (priv->access_tech);
+ old_mode = mm_modem_gsm_network_act_to_old_mode (priv->access_tech);
g_hash_table_insert (properties, "network_mode", simple_uint_value (old_mode));
/* New key */
diff --git a/src/mm-generic-gsm.h b/src/mm-generic-gsm.h
index 9b4c4848..6fa86a59 100644
--- a/src/mm-generic-gsm.h
+++ b/src/mm-generic-gsm.h
@@ -81,7 +81,7 @@ typedef struct {
/* Called by the generic class to set the allowed operating mode of the device */
void (*set_allowed_mode) (MMGenericGsm *self,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data);
@@ -124,7 +124,7 @@ void mm_generic_gsm_set_reg_status (MMGenericGsm *modem,
* allowed to choose from when connecting.
*/
void mm_generic_gsm_update_allowed_mode (MMGenericGsm *modem,
- MMModemGsmMode mode);
+ MMModemGsmAllowedMode mode);
/* Called to asynchronously update the current access technology of the device;
* this is NOT the 2G/3G mode preference, but the current radio access
diff --git a/src/mm-modem-gsm-network.c b/src/mm-modem-gsm-network.c
index aae55574..72571c22 100644
--- a/src/mm-modem-gsm-network.c
+++ b/src/mm-modem-gsm-network.c
@@ -44,7 +44,7 @@ static void impl_gsm_modem_get_band (MMModemGsmNetwork *modem,
DBusGMethodInvocation *context);
static void impl_gsm_modem_set_allowed_mode (MMModemGsmNetwork *modem,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
DBusGMethodInvocation *context);
static void impl_gsm_modem_set_network_mode (MMModemGsmNetwork *modem,
@@ -73,41 +73,27 @@ static guint signals[LAST_SIGNAL] = { 0 };
/*****************************************************************************/
-MMModemGsmMode
-mm_modem_gsm_network_old_mode_to_new (MMModemDeprecatedMode old_mode)
+MMModemGsmAllowedMode
+mm_modem_gsm_network_old_mode_to_allowed (MMModemDeprecatedMode old_mode)
{
/* Translate deprecated mode into new mode */
switch (old_mode) {
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_GPRS:
- return MM_MODEM_GSM_MODE_GPRS;
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_EDGE:
- return MM_MODEM_GSM_MODE_EDGE;
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_UMTS:
- return MM_MODEM_GSM_MODE_UMTS;
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_HSDPA:
- return MM_MODEM_GSM_MODE_HSDPA;
case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_2G_PREFERRED:
- return MM_MODEM_GSM_MODE_2G_PREFERRED;
+ return MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED;
case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_3G_PREFERRED:
- return MM_MODEM_GSM_MODE_3G_PREFERRED;
+ return MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED;
case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_2G_ONLY:
- return MM_MODEM_GSM_MODE_2G_ONLY;
+ return MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY;
case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_3G_ONLY:
- return MM_MODEM_GSM_MODE_3G_ONLY;
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_HSUPA:
- return MM_MODEM_GSM_MODE_HSUPA;
- case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_HSPA:
- return MM_MODEM_GSM_MODE_HSDPA | MM_MODEM_GSM_MODE_HSUPA;
+ return MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY;
case MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_ANY:
default:
- break;
+ return MM_MODEM_GSM_ALLOWED_MODE_ANY;
}
-
- return MM_MODEM_GSM_MODE_ANY;
}
MMModemDeprecatedMode
-mm_modem_gsm_network_new_mode_to_old (MMModemGsmMode new_mode)
+mm_modem_gsm_network_act_to_old_mode (MMModemGsmMode new_mode)
{
/* Translate new mode into old deprecated mode */
if (new_mode & MM_MODEM_GSM_MODE_GPRS)
@@ -372,7 +358,7 @@ mm_modem_gsm_network_get_band (MMModemGsmNetwork *self,
void
mm_modem_gsm_network_set_allowed_mode (MMModemGsmNetwork *self,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data)
{
@@ -550,14 +536,14 @@ impl_gsm_modem_set_network_mode (MMModemGsmNetwork *modem,
}
mm_modem_gsm_network_set_allowed_mode (modem,
- mm_modem_gsm_network_old_mode_to_new (old_mode),
+ mm_modem_gsm_network_old_mode_to_allowed (old_mode),
async_call_done,
context);
}
static void
impl_gsm_modem_set_allowed_mode (MMModemGsmNetwork *modem,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
DBusGMethodInvocation *context)
{
if (!check_for_single_value (mode)) {
@@ -581,9 +567,9 @@ impl_gsm_modem_get_network_mode (MMModemGsmNetwork *modem,
/* DEPRECATED; it's now a property so it's quite easy to handle */
g_object_get (G_OBJECT (modem),
- MM_MODEM_GSM_NETWORK_ALLOWED_MODE, &mode,
+ MM_MODEM_GSM_NETWORK_ACCESS_TECHNOLOGY, &mode,
NULL);
- dbus_g_method_return (context, mm_modem_gsm_network_new_mode_to_old (mode));
+ dbus_g_method_return (context, mm_modem_gsm_network_act_to_old_mode (mode));
}
static void
@@ -610,8 +596,8 @@ mm_modem_gsm_network_init (gpointer g_iface)
g_param_spec_uint (MM_MODEM_GSM_NETWORK_ALLOWED_MODE,
"Allowed Mode",
"Allowed network access mode",
- MM_MODEM_GSM_MODE_UNKNOWN,
- G_MAXUINT32,
+ MM_MODEM_GSM_ALLOWED_MODE_ANY,
+ MM_MODEM_GSM_ALLOWED_MODE_LAST,
MM_MODEM_GSM_MODE_UNKNOWN,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
diff --git a/src/mm-modem-gsm-network.h b/src/mm-modem-gsm-network.h
index bfd754ed..757d098b 100644
--- a/src/mm-modem-gsm-network.h
+++ b/src/mm-modem-gsm-network.h
@@ -93,7 +93,7 @@ struct _MMModemGsmNetwork {
gpointer user_data);
void (*set_allowed_mode) (MMModemGsmNetwork *self,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data);
@@ -140,15 +140,6 @@ void mm_modem_gsm_network_get_band (MMModemGsmNetwork *self,
MMModemUIntFn callback,
gpointer user_data);
-void mm_modem_gsm_network_set_mode (MMModemGsmNetwork *self,
- MMModemGsmMode mode,
- MMModemFn callback,
- gpointer user_data);
-
-void mm_modem_gsm_network_get_mode (MMModemGsmNetwork *self,
- MMModemUIntFn callback,
- gpointer user_data);
-
void mm_modem_gsm_network_get_registration_info (MMModemGsmNetwork *self,
MMModemGsmNetworkRegInfoFn callback,
gpointer user_data);
@@ -159,7 +150,7 @@ void mm_modem_gsm_network_signal_quality (MMModemGsmNetwork *self,
guint32 quality);
void mm_modem_gsm_network_set_allowed_mode (MMModemGsmNetwork *self,
- MMModemGsmMode mode,
+ MMModemGsmAllowedMode mode,
MMModemFn callback,
gpointer user_data);
@@ -169,8 +160,8 @@ void mm_modem_gsm_network_registration_info (MMModemGsmNetwork *self,
const char *oper_name);
/* Private */
-MMModemDeprecatedMode mm_modem_gsm_network_new_mode_to_old (MMModemGsmMode new_mode);
+MMModemDeprecatedMode mm_modem_gsm_network_act_to_old_mode (MMModemGsmMode new_mode);
-MMModemGsmMode mm_modem_gsm_network_old_mode_to_new (MMModemDeprecatedMode old_mode);
+MMModemGsmAllowedMode mm_modem_gsm_network_old_mode_to_allowed (MMModemDeprecatedMode old_mode);
#endif /* MM_MODEM_GSM_NETWORK_H */
diff --git a/src/mm-modem-gsm.h b/src/mm-modem-gsm.h
index e64f6804..d10982b7 100644
--- a/src/mm-modem-gsm.h
+++ b/src/mm-modem-gsm.h
@@ -35,6 +35,16 @@ typedef enum {
} MMModemGsmMode;
typedef enum {
+ MM_MODEM_GSM_ALLOWED_MODE_ANY = 0,
+ MM_MODEM_GSM_ALLOWED_MODE_2G_PREFERRED = 1,
+ MM_MODEM_GSM_ALLOWED_MODE_3G_PREFERRED = 2,
+ MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY = 3,
+ MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY = 4,
+
+ MM_MODEM_GSM_ALLOWED_MODE_LAST = MM_MODEM_GSM_ALLOWED_MODE_3G_ONLY
+} MMModemGsmAllowedMode;
+
+typedef enum {
MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_ANY = 0,
MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_GPRS,
MM_MODEM_GSM_NETWORK_DEPRECATED_MODE_EDGE,