diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-12-31 17:04:16 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:43 +0100 |
commit | 94846a2f51bf3ca40ec945de690e74dbb5f0ce97 (patch) | |
tree | 6b7a3eb58872f0e1767ba3e53ed9b123108913ce /src | |
parent | edc117406888f489d4ebd29b6d08ea67d60bb99c (diff) |
base-modem: make public the method to get best AT port
Sometimes, we want to check whether a given port is available to send commands,
and fallback to some other method if so (e.g. using a QCDM port).
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-base-modem-at.c | 32 | ||||
-rw-r--r-- | src/mm-base-modem.c | 26 | ||||
-rw-r--r-- | src/mm-base-modem.h | 2 |
3 files changed, 31 insertions, 29 deletions
diff --git a/src/mm-base-modem-at.c b/src/mm-base-modem-at.c index c2a5cd20..a7b94ef2 100644 --- a/src/mm-base-modem-at.c +++ b/src/mm-base-modem-at.c @@ -21,32 +21,6 @@ #include "mm-base-modem-at.h" #include "mm-errors-types.h" -static MMAtSerialPort * -base_modem_at_get_best_port (MMBaseModem *self, - GError **error) -{ - MMAtSerialPort *port; - - /* Decide which port to use */ - port = mm_base_modem_get_port_primary (self); - g_assert (port); - if (mm_port_get_connected (MM_PORT (port))) { - /* If primary port is connected, check if we can get the secondary - * port */ - port = mm_base_modem_get_port_secondary (self); - if (!port) { - /* If we don't have a secondary port, we need to halt the AT - * operation */ - g_set_error (error, - MM_CORE_ERROR, - MM_CORE_ERROR_CONNECTED, - "No AT port available to run command"); - } - } - - return port; -} - static gboolean abort_async_if_port_unusable (MMBaseModem *self, MMAtSerialPort *port, @@ -298,7 +272,7 @@ mm_base_modem_at_sequence (MMBaseModem *self, GError *error = NULL; /* No port given, so we'll try to guess which is best */ - port = base_modem_at_get_best_port (self, &error); + port = mm_base_modem_get_best_at_port (self, &error); if (!port) { g_assert (error != NULL); g_simple_async_report_take_gerror_in_idle (G_OBJECT (self), @@ -504,7 +478,7 @@ mm_base_modem_at_command (MMBaseModem *self, GError *error = NULL; /* No port given, so we'll try to guess which is best */ - port = base_modem_at_get_best_port (self, &error); + port = mm_base_modem_get_best_at_port (self, &error); if (!port) { g_assert (error != NULL); g_simple_async_report_take_gerror_in_idle (G_OBJECT (self), @@ -553,7 +527,7 @@ mm_base_modem_at_command_ignore_reply (MMBaseModem *self, MMAtSerialPort *port; /* No port given, so we'll try to guess which is best */ - port = base_modem_at_get_best_port (self, NULL); + port = mm_base_modem_get_best_at_port (self, NULL); if (!port) /* No valid port, and we ignore replies, so just exit. */ return; diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index a048e78a..4f5d4912 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -435,6 +435,32 @@ mm_base_modem_get_best_data_port (MMBaseModem *self) self->priv->data); } +MMAtSerialPort * +mm_base_modem_get_best_at_port (MMBaseModem *self, + GError **error) +{ + MMAtSerialPort *port; + + /* Decide which port to use */ + port = mm_base_modem_get_port_primary (self); + g_assert (port); + if (mm_port_get_connected (MM_PORT (port))) { + /* If primary port is connected, check if we can get the secondary + * port */ + port = mm_base_modem_get_port_secondary (self); + if (!port) { + /* If we don't have a secondary port, we need to halt the AT + * operation */ + g_set_error (error, + MM_CORE_ERROR, + MM_CORE_ERROR_CONNECTED, + "No port available to run command"); + } + } + + return port; +} + gboolean mm_base_modem_auth_request (MMBaseModem *self, const gchar *authorization, diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 252fe43d..ef83d715 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -108,6 +108,8 @@ MMAtSerialPort *mm_base_modem_get_port_primary (MMBaseModem *self); MMAtSerialPort *mm_base_modem_get_port_secondary (MMBaseModem *self); MMQcdmSerialPort *mm_base_modem_get_port_qcdm (MMBaseModem *self); MMPort *mm_base_modem_get_best_data_port (MMBaseModem *self); +MMAtSerialPort *mm_base_modem_get_best_at_port (MMBaseModem *self, + GError **error); void mm_base_modem_set_valid (MMBaseModem *self, gboolean valid); |