aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-15 20:23:35 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:34 +0100
commitc133c3284d03afb537c6467fc322d8174eb91fb4 (patch)
tree80b26a5ea8b39fe143feb3f105f29f83aefe1bf3
parent88077cbbe83a8d6beaed92a3277cab3ba0e429d3 (diff)
base-modem: allow retrieving non-connected data ports
Bearers will ask for data ports that can be used for connections. Right now, only one data port is expected to be handled, but we don't impose any restriction in the API.
-rw-r--r--src/mm-base-modem.c16
-rw-r--r--src/mm-base-modem.h1
2 files changed, 14 insertions, 3 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 6f209bfc..bef3ee36 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -302,9 +302,6 @@ mm_base_modem_grab_port (MMBaseModem *self,
if (!self->priv->data || MM_IS_AT_SERIAL_PORT (self->priv->data)) {
g_clear_object (&self->priv->data);
self->priv->data = g_object_ref (port);
-
- /* TODO: */
- /* check_valid (self); */
}
mm_dbg ("(%s/%s) port grabbed by %s",
@@ -420,6 +417,19 @@ mm_base_modem_get_port_qcdm (MMBaseModem *self)
return self->priv->qcdm;
}
+MMPort *
+mm_base_modem_get_best_data_port (MMBaseModem *self)
+{
+ g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL);
+
+ /* TODO: sometime we'll have a list of available data ports to use instead
+ * of a single one */
+
+ return (mm_port_get_connected (self->priv->data) ?
+ NULL :
+ self->priv->data);
+}
+
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 f37bf6fe..252fe43d 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -107,6 +107,7 @@ gboolean mm_base_modem_owns_port (MMBaseModem *self,
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);
void mm_base_modem_set_valid (MMBaseModem *self,
gboolean valid);