From c133c3284d03afb537c6467fc322d8174eb91fb4 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 15 Dec 2011 20:23:35 +0100 Subject: [PATCH] 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. --- src/mm-base-modem.c | 16 +++++++++++++--- 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);