diff options
Diffstat (limited to 'src/manager.c')
-rw-r--r-- | src/manager.c | 19 |
1 files changed, 14 insertions, 5 deletions
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); |