diff options
author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-09-08 18:20:29 -0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-09-08 18:20:29 -0300 |
commit | 957d01bac7a4c448bbe0a15de613af7927d1c7d0 (patch) | |
tree | 4c279a27c3284d9434a08cc5802b97bf846c6479 /audio/manager.c | |
parent | 75b61c0a4f415fdb6518b9cf99f9b5d4b8072c5f (diff) |
Fix a2dp and avrcp drivers to not rely on BDADDR_ANY.
Diffstat (limited to 'audio/manager.c')
-rw-r--r-- | audio/manager.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/audio/manager.c b/audio/manager.c index 3aa1a5dd..deeb375c 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -831,7 +831,21 @@ static int a2dp_server_probe(struct btd_adapter *adapter) if (!adp) return -EINVAL; - return a2dp_init(connection, config); + return a2dp_register(connection, &adp->src, config); +} + +static void a2dp_server_remove(struct btd_adapter *adapter) +{ + struct audio_adapter *adp; + const gchar *path = adapter_get_path(adapter); + + DBG("path %s", path); + + adp = find_adapter(adapters, path); + if (!adp) + return; + + return a2dp_unregister(&adp->src); } static int avrcp_server_probe(struct btd_adapter *adapter) @@ -845,7 +859,21 @@ static int avrcp_server_probe(struct btd_adapter *adapter) if (!adp) return -EINVAL; - return avrcp_init(connection, config); + return avrcp_register(connection, &adp->src, config); +} + +static void avrcp_server_remove(struct btd_adapter *adapter) +{ + struct audio_adapter *adp; + const gchar *path = adapter_get_path(adapter); + + DBG("path %s", path); + + adp = find_adapter(adapters, path); + if (!adp) + return; + + return avrcp_unregister(&adp->src); } static struct btd_device_driver audio_driver = { @@ -872,11 +900,13 @@ static struct btd_adapter_driver gateway_server_driver = { static struct btd_adapter_driver a2dp_server_driver = { .name = "audio-a2dp", .probe = a2dp_server_probe, + .remove = a2dp_server_remove, }; static struct btd_adapter_driver avrcp_server_driver = { .name = "audio-control", .probe = avrcp_server_probe, + .remove = avrcp_server_remove, }; int audio_manager_init(DBusConnection *conn, GKeyFile *conf) |