From fd2a6409244254452bec619100d73bc6c8d04ec5 Mon Sep 17 00:00:00 2001 From: Claudio Takahasi Date: Wed, 15 Oct 2008 18:51:04 -0300 Subject: Allow dynamic adapter driver registration --- src/adapter.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/adapter.c') diff --git a/src/adapter.c b/src/adapter.c index c2304e99..39d5f9c1 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -3246,10 +3246,29 @@ gboolean adapter_has_discov_sessions(struct btd_adapter *adapter) return TRUE; } +static void probe_driver(gpointer data, gpointer user_data) +{ + struct btd_adapter *adapter = data; + struct btd_adapter_driver *driver = user_data; + + if (!adapter->up) + return; + + driver->probe(adapter); +} + int btd_register_adapter_driver(struct btd_adapter_driver *driver) { + GSList *adapters; + adapter_drivers = g_slist_append(adapter_drivers, driver); + if (driver->probe == NULL) + return 0; + + adapters = manager_get_adapters(); + g_slist_foreach(adapters, probe_driver, driver); + return 0; } -- cgit