aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-31 17:04:16 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:43 +0100
commit94846a2f51bf3ca40ec945de690e74dbb5f0ce97 (patch)
tree6b7a3eb58872f0e1767ba3e53ed9b123108913ce /src/mm-base-modem.c
parentedc117406888f489d4ebd29b6d08ea67d60bb99c (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/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c26
1 files changed, 26 insertions, 0 deletions
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,