summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-13 18:18:43 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-13 18:18:43 +0100
commit810d0d4ac636daafb8b792ffe23a8bdd8a2046b2 (patch)
treedbc265a1b56e99a38b647fdacdcfbf7e0995e130
parent5248e8b776287610412dc5ba8dc3aaf88e1d818c (diff)
downloadModemManager-810d0d4ac636daafb8b792ffe23a8bdd8a2046b2.tar.gz
base-modem: new method to check if the modem got any AT port
Required for the single-at logic in the plugins.
-rw-r--r--src/mm-base-modem.c17
-rw-r--r--src/mm-base-modem.h3
2 files changed, 19 insertions, 1 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index e60284af2..fdc7b079c 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -506,6 +506,23 @@ mm_base_modem_peek_best_at_port (MMBaseModem *self,
return NULL;
}
+gboolean
+mm_base_modem_has_at_port (MMBaseModem *self)
+{
+ GHashTableIter iter;
+ gpointer value;
+ gpointer key;
+
+ /* We'll iterate the ht of ports, looking for any port which is AT */
+ g_hash_table_iter_init (&iter, self->priv->ports);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ if (MM_IS_AT_SERIAL_PORT (value))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
initialize_ready (MMBaseModem *self,
GAsyncResult *res)
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index 9404a0ece..51af72c5d 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -111,6 +111,8 @@ gboolean mm_base_modem_owns_port (MMBaseModem *self,
const gchar *subsys,
const gchar *name);
+gboolean mm_base_modem_has_at_port (MMBaseModem *self);
+
gboolean mm_base_modem_organize_ports (MMBaseModem *self,
GError **error);
@@ -128,7 +130,6 @@ MMAtSerialPort *mm_base_modem_get_best_at_port (MMBaseModem *self,
GError **error);
MMPort *mm_base_modem_get_best_data_port (MMBaseModem *self);
-
void mm_base_modem_set_valid (MMBaseModem *self,
gboolean valid);
gboolean mm_base_modem_get_valid (MMBaseModem *self);