From 973a92b49d3397405aa1fb3efed7a05377a5a24e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 27 May 2019 15:58:50 +0200 Subject: [PATCH] device: add free signal --- src/pipewire/device.c | 1 + src/pipewire/device.h | 2 ++ src/pipewire/private.h | 1 + 3 files changed, 4 insertions(+) diff --git a/src/pipewire/device.c b/src/pipewire/device.c index a0f6d2f37..6c9960c98 100644 --- a/src/pipewire/device.c +++ b/src/pipewire/device.c @@ -115,6 +115,7 @@ void pw_device_destroy(struct pw_device *device) spa_hook_remove(&device->global_listener); pw_global_destroy(device->global); } + pw_device_emit_free(device); free((char *)device->info.name); pw_properties_free(device->properties); diff --git a/src/pipewire/device.h b/src/pipewire/device.h index b2a3384e3..fe95a5e37 100644 --- a/src/pipewire/device.h +++ b/src/pipewire/device.h @@ -56,6 +56,8 @@ struct pw_device_events { /** the device is destroyed */ void (*destroy) (void *data); + /** the device is freed */ + void (*free) (void *data); /** the device info changed */ void (*info_changed) (void *data, const struct pw_device_info *info); diff --git a/src/pipewire/private.h b/src/pipewire/private.h index 2a4fb4586..9f2857f2f 100644 --- a/src/pipewire/private.h +++ b/src/pipewire/private.h @@ -294,6 +294,7 @@ static inline void free_allocation(struct allocation *alloc) #define pw_device_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_device_events, m, v, ##__VA_ARGS__) #define pw_device_emit_destroy(m) pw_device_emit(m, destroy, 0) +#define pw_device_emit_free(m) pw_device_emit(m, free, 0) #define pw_device_emit_info_changed(n,i) pw_device_emit(n, info_changed, 0, i) struct pw_device {