diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-12-15 20:23:35 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:34 +0100 |
commit | c133c3284d03afb537c6467fc322d8174eb91fb4 (patch) | |
tree | 80b26a5ea8b39fe143feb3f105f29f83aefe1bf3 | |
parent | 88077cbbe83a8d6beaed92a3277cab3ba0e429d3 (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.c | 16 | ||||
-rw-r--r-- | src/mm-base-modem.h | 1 |
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); |