aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2025-03-15 13:22:42 +0100
committerdec05eba <dec05eba@protonmail.com>2025-03-15 13:22:42 +0100
commit1280a5ed0cca6623a0c9181faa6d9fbe35a6e9f3 (patch)
tree299c67551b86071587084248cd8262ded44621ad
parent190c775a08ca092ac0145ce3483a421bfdc940c6 (diff)
Fix application audio not working correctly after a recent update
-rw-r--r--src/pipewire_audio.c11
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, &registry_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;