diff options
-rw-r--r-- | plugins/ublox/mm-broadband-modem-ublox.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/ublox/mm-broadband-modem-ublox.c b/plugins/ublox/mm-broadband-modem-ublox.c index 09c9797c..4ccf2d50 100644 --- a/plugins/ublox/mm-broadband-modem-ublox.c +++ b/plugins/ublox/mm-broadband-modem-ublox.c @@ -46,6 +46,38 @@ struct _MMBroadbandModemUbloxPrivate { }; /*****************************************************************************/ +/* Load current modes (Modem interface) */ + +static gboolean +load_current_modes_finish (MMIfaceModem *self, + GAsyncResult *res, + MMModemMode *allowed, + MMModemMode *preferred, + GError **error) +{ + const gchar *response; + + response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error); + if (!response) + return FALSE; + + return mm_ublox_parse_urat_read_response (response, allowed, preferred, error); +} + +static void +load_current_modes (MMIfaceModem *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + mm_base_modem_at_command (MM_BASE_MODEM (self), + "+URAT?", + 3, + FALSE, + callback, + user_data); +} + +/*****************************************************************************/ /* Load supported modes (Modem interface) */ static GArray * @@ -364,6 +396,8 @@ iface_modem_init (MMIfaceModem *iface) iface->create_bearer_finish = modem_create_bearer_finish; iface->load_supported_modes = load_supported_modes; iface->load_supported_modes_finish = load_supported_modes_finish; + iface->load_current_modes = load_current_modes; + iface->load_current_modes_finish = load_current_modes_finish; } static void |