[pulseaudio-discuss] [PATCH v1 5/8] bluetooth: Add hook to tell transport was removed

Mikel Astiz mikel.astiz.oss at gmail.com
Thu Oct 18 01:27:19 PDT 2012


From: Mikel Astiz <mikel.astiz at bmw-carit.de>

Add a hook to report that the transport was removed from D-Bus, and thus
references to it should be released.
---
 src/modules/bluetooth/bluetooth-util.c | 5 ++++-
 src/modules/bluetooth/bluetooth-util.h | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c
index 343db54..8a41e13 100644
--- a/src/modules/bluetooth/bluetooth-util.c
+++ b/src/modules/bluetooth/bluetooth-util.c
@@ -170,8 +170,10 @@ static void device_free(pa_bluetooth_device *d) {
 
     pa_assert(d);
 
-    while ((t = pa_hashmap_steal_first(d->transports)))
+    while ((t = pa_hashmap_steal_first(d->transports))) {
+        pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
         pa_bluetooth_transport_unref(t);
+    }
 
     pa_hashmap_free(d->transports, NULL, NULL);
 
@@ -1202,6 +1204,7 @@ static DBusMessage *endpoint_clear_configuration(DBusConnection *c, DBusMessage
         if ((t = pa_hashmap_get(d->transports, path))) {
             pa_log_debug("Clearing transport %s profile %d", t->path, t->profile);
             pa_hashmap_remove(d->transports, t->path);
+            pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
             pa_bluetooth_transport_unref(t);
             break;
         }
diff --git a/src/modules/bluetooth/bluetooth-util.h b/src/modules/bluetooth/bluetooth-util.h
index e102521..35fb41b 100644
--- a/src/modules/bluetooth/bluetooth-util.h
+++ b/src/modules/bluetooth/bluetooth-util.h
@@ -66,6 +66,7 @@ enum profile {
 /* Hook data: pa_bluetooth_transport pointer. */
 typedef enum pa_bluetooth_transport_hook {
     PA_BLUETOOTH_TRANSPORT_HOOK_NREC_CHANGED, /* Call data: NULL. */
+    PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED, /* Call data: NULL. */
     PA_BLUETOOTH_TRANSPORT_HOOK_MAX
 } pa_bluetooth_transport_hook_t;
 
-- 
1.7.11.7



More information about the pulseaudio-discuss mailing list