From 9379d4015c48ed15a9f5bde8dac085dbca08bea3 Mon Sep 17 00:00:00 2001 From: Kim Therkelsen Date: Fri, 15 Oct 2010 09:25:12 +0200 Subject: [PATCH] core: Added new hooks: PA_CORE_HOOK_SOURCE_PORT_CHANGED and PA_CORE_HOOK_SINK_PORT_CHANGED This allows modules to know when certain ports are changed. This will allow e.g. a filter module (or LADSAP) to only load when a certain port is used on the device (e.g. to only filter headphones and not normal speakers). (Comment from Colin Guthrie: This may also have use in UCM) --- src/pulsecore/core.h | 2 ++ src/pulsecore/sink.c | 2 ++ src/pulsecore/source.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h index a1215bb5..daa89c1c 100644 --- a/src/pulsecore/core.h +++ b/src/pulsecore/core.h @@ -74,6 +74,7 @@ typedef enum pa_core_hook { PA_CORE_HOOK_SINK_UNLINK_POST, PA_CORE_HOOK_SINK_STATE_CHANGED, PA_CORE_HOOK_SINK_PROPLIST_CHANGED, + PA_CORE_HOOK_SINK_PORT_CHANGED, PA_CORE_HOOK_SOURCE_NEW, PA_CORE_HOOK_SOURCE_FIXATE, PA_CORE_HOOK_SOURCE_PUT, @@ -81,6 +82,7 @@ typedef enum pa_core_hook { PA_CORE_HOOK_SOURCE_UNLINK_POST, PA_CORE_HOOK_SOURCE_STATE_CHANGED, PA_CORE_HOOK_SOURCE_PROPLIST_CHANGED, + PA_CORE_HOOK_SOURCE_PORT_CHANGED, PA_CORE_HOOK_SINK_INPUT_NEW, PA_CORE_HOOK_SINK_INPUT_FIXATE, PA_CORE_HOOK_SINK_INPUT_PUT, diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 0de544c9..773123d8 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -2700,6 +2700,8 @@ int pa_sink_set_port(pa_sink *s, const char *name, pa_bool_t save) { s->active_port = port; s->save_port = save; + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_PORT_CHANGED], s); + return 0; } diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 24d0ff6b..a5536629 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -1571,5 +1571,7 @@ int pa_source_set_port(pa_source *s, const char *name, pa_bool_t save) { s->active_port = port; s->save_port = save; + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_PORT_CHANGED], s); + return 0; } -- 2.11.4.GIT