aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-iface-modem.c')
-rw-r--r--src/mm-iface-modem.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index 4ac905b4..6a69fc30 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -245,6 +245,43 @@ handle_list_bearers (MmGdbusModem *skeleton,
/*****************************************************************************/
+void
+mm_iface_modem_update_access_tech (MMIfaceModem *self,
+ MMModemAccessTechnology new_access_tech,
+ guint32 mask)
+{
+ MmGdbusModem *skeleton = NULL;
+ MMModemAccessTechnology access_tech;
+ gchar *old_access_tech_string;
+ gchar *new_access_tech_string;
+ const gchar *dbus_path;
+
+ g_object_get (self,
+ MM_IFACE_MODEM_DBUS_SKELETON, &skeleton,
+ NULL);
+
+ access_tech = mm_gdbus_modem_get_access_technologies (skeleton);
+ old_access_tech_string = mm_common_get_access_technologies_string (access_tech);
+
+ /* Clear the flags to be set */
+ access_tech &= ~mask;
+ /* And set our new flags */
+ access_tech |= new_access_tech;
+ mm_gdbus_modem_set_access_technologies (skeleton, access_tech);
+
+ /* Log */
+ new_access_tech_string = mm_common_get_access_technologies_string (access_tech);
+ dbus_path = g_dbus_object_get_object_path (G_DBUS_OBJECT (self));
+ mm_info ("Modem %s: access technology changed (%s -> %s)",
+ dbus_path,
+ old_access_tech_string,
+ new_access_tech_string);
+ g_free (old_access_tech_string);
+ g_free (new_access_tech_string);
+}
+
+/*****************************************************************************/
+
static void
bearer_list_count_connected (MMBearer *bearer,
guint *count)