From 1280a5ed0cca6623a0c9181faa6d9fbe35a6e9f3 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 15 Mar 2025 13:22:42 +0100 Subject: Fix application audio not working correctly after a recent update --- src/pipewire_audio.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/pipewire_audio.c') diff --git a/src/pipewire_audio.c b/src/pipewire_audio.c index b289106..5b920b4 100644 --- a/src/pipewire_audio.c +++ b/src/pipewire_audio.c @@ -365,6 +365,8 @@ static bool gsr_pipewire_audio_listen_on_metadata(gsr_pipewire_audio *self, uint pw_proxy_add_object_listener(self->metadata_proxy, &self->metadata_listener, &metadata_events, self); pw_proxy_add_listener(self->metadata_proxy, &self->metadata_proxy_listener, &metadata_proxy_events, self); + + self->server_version_sync = pw_core_sync(self->core, PW_ID_CORE, self->server_version_sync); return true; } @@ -562,12 +564,12 @@ bool gsr_pipewire_audio_init(gsr_pipewire_audio *self) { // TODO: Error check pw_core_add_listener(self->core, &self->core_listener, &core_events, self); - self->server_version_sync = pw_core_sync(self->core, PW_ID_CORE, 0); - pw_thread_loop_wait(self->thread_loop); - self->registry = pw_core_get_registry(self->core, PW_VERSION_REGISTRY, 0); pw_registry_add_listener(self->registry, &self->registry_listener, ®istry_events, self); + self->server_version_sync = pw_core_sync(self->core, PW_ID_CORE, self->server_version_sync); + pw_thread_loop_wait(self->thread_loop); + pw_thread_loop_unlock(self->thread_loop); return true; } @@ -595,6 +597,9 @@ void gsr_pipewire_audio_deinit(gsr_pipewire_audio *self) { self->metadata_proxy = NULL; } + spa_hook_remove(&self->registry_listener); + spa_hook_remove(&self->core_listener); + if(self->core) { pw_core_disconnect(self->core); self->core = NULL; -- cgit v1.2.3-70-g09d2