diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-03-15 13:22:42 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-03-15 13:22:42 +0100 |
commit | 1280a5ed0cca6623a0c9181faa6d9fbe35a6e9f3 (patch) | |
tree | 299c67551b86071587084248cd8262ded44621ad | |
parent | 190c775a08ca092ac0145ce3483a421bfdc940c6 (diff) |
Fix application audio not working correctly after a recent update
-rw-r--r-- | src/pipewire_audio.c | 11 |
1 files changed, 8 insertions, 3 deletions
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; |