From 00acfa685e3e73c619146b7ca39068eb304f1ce8 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 5 Aug 2008 17:22:52 -0300 Subject: Add initial implementation of adapter driver. --- src/manager.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/manager.c') diff --git a/src/manager.c b/src/manager.c index cda45f4c..fc0c8738 100644 --- a/src/manager.c +++ b/src/manager.c @@ -59,7 +59,7 @@ #include "oui.h" #include "agent.h" #include "device.h" -#include "glib-helper.h" +#include "driver.h" #include "manager.h" @@ -443,14 +443,17 @@ static void manager_remove_adapter(struct adapter *adapter) int manager_register_adapter(int id) { struct adapter *adapter = adapter_create(connection, id); - const gchar *path; + GSList *l = btd_get_adapter_drivers(); if (!adapter) return -1; - path = adapter_get_path(adapter); + for (; l; l = l->next) { + struct btd_adapter_driver *driver = l->data; - __probe_servers(path); + if (driver->probe) + driver->probe(driver, (struct btd_adapter *) adapter); + } manager_add_adapter(adapter); @@ -461,6 +464,7 @@ int manager_unregister_adapter(int id) { struct adapter *adapter; const gchar *path; + GSList *l = btd_get_adapter_drivers(); adapter = manager_find_adapter_by_id(id); if (!adapter) @@ -470,7 +474,12 @@ int manager_unregister_adapter(int id) info("Unregister path: %s", path); - __remove_servers(path); + for (; l; l = l->next) { + struct btd_adapter_driver *driver = l->data; + + if (driver->remove) + driver->remove(driver, (struct btd_adapter *) adapter); + } adapter_stop(adapter); -- cgit