diff options
-rw-r--r-- | src/pulsecore/core.h | 8 | ||||
-rw-r--r-- | src/pulsecore/sink-input.c | 5 | ||||
-rw-r--r-- | src/pulsecore/sink.c | 5 | ||||
-rw-r--r-- | src/pulsecore/source-output.c | 5 | ||||
-rw-r--r-- | src/pulsecore/source.c | 5 |
5 files changed, 22 insertions, 6 deletions
diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h index c8d75800..b841c20e 100644 --- a/src/pulsecore/core.h +++ b/src/pulsecore/core.h @@ -47,22 +47,26 @@ typedef enum pa_core_hook { PA_CORE_HOOK_SINK_UNLINK, PA_CORE_HOOK_SINK_UNLINK_POST, PA_CORE_HOOK_SINK_STATE_CHANGED, + PA_CORE_HOOK_SINK_DESCRIPTION_CHANGED, PA_CORE_HOOK_SOURCE_NEW_POST, PA_CORE_HOOK_SOURCE_UNLINK, PA_CORE_HOOK_SOURCE_UNLINK_POST, PA_CORE_HOOK_SOURCE_STATE_CHANGED, + PA_CORE_HOOK_SOURCE_DESCRIPTION_CHANGED, PA_CORE_HOOK_SINK_INPUT_NEW, PA_CORE_HOOK_SINK_INPUT_PUT, PA_CORE_HOOK_SINK_INPUT_UNLINK, PA_CORE_HOOK_SINK_INPUT_UNLINK_POST, PA_CORE_HOOK_SINK_INPUT_MOVE, PA_CORE_HOOK_SINK_INPUT_MOVE_POST, + PA_CORE_HOOK_SINK_INPUT_NAME_CHANGED, PA_CORE_HOOK_SOURCE_OUTPUT_NEW, PA_CORE_HOOK_SOURCE_OUTPUT_PUT, PA_CORE_HOOK_SOURCE_OUTPUT_UNLINK, PA_CORE_HOOK_SOURCE_OUTPUT_UNLINK_POST, PA_CORE_HOOK_SOURCE_OUTPUT_MOVE, PA_CORE_HOOK_SOURCE_OUTPUT_MOVE_POST, + PA_CORE_HOOK_SOURCE_OUTPUT_NAME_CHANGED, PA_CORE_HOOK_MAX } pa_core_hook_t; @@ -90,7 +94,7 @@ struct pa_core { pa_sample_spec default_sample_spec; unsigned default_n_fragments, default_fragment_size_msec; - + pa_time_event *module_auto_unload_event; pa_defer_event *module_defer_unload_event; @@ -110,7 +114,7 @@ struct pa_core { int disallow_module_loading, running_as_daemon; pa_resample_method_t resample_method; int is_system_instance; - int high_priority; + int high_priority; /* hooks */ pa_hook hooks[PA_CORE_HOOK_MAX]; diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 4a9ba6af..632cf024 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -683,7 +683,10 @@ void pa_sink_input_set_name(pa_sink_input *i, const char *name) { pa_xfree(i->name); i->name = pa_xstrdup(name); - pa_subscription_post(i->sink->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE, i->index); + if (PA_SINK_INPUT_LINKED(i->state)) { + pa_hook_fire(&i->sink->core->hooks[PA_CORE_HOOK_SINK_INPUT_NAME_CHANGED], i); + pa_subscription_post(i->sink->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE, i->index); + } } pa_resample_method_t pa_sink_input_get_resample_method(pa_sink_input *i) { diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 733a9d9e..46f890de 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -764,7 +764,10 @@ void pa_sink_set_description(pa_sink *s, const char *description) { pa_xfree(n); } - pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + if (PA_SINK_LINKED(s->state)) { + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SINK|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SINK_DESCRIPTION_CHANGED], s); + } } unsigned pa_sink_linked_by(pa_sink *s) { diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 1991613e..f83ca3b6 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -356,7 +356,10 @@ void pa_source_output_set_name(pa_source_output *o, const char *name) { pa_xfree(o->name); o->name = pa_xstrdup(name); - pa_subscription_post(o->source->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE, o->index); + if (PA_SOURCE_OUTPUT_LINKED(o->state)) { + pa_hook_fire(&o->source->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_NAME_CHANGED], o); + pa_subscription_post(o->source->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE, o->index); + } } pa_resample_method_t pa_source_output_get_resample_method(pa_source_output *o) { diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 20088c74..2106edc3 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -418,7 +418,10 @@ void pa_source_set_description(pa_source *s, const char *description) { pa_xfree(s->description); s->description = pa_xstrdup(description); - pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + if (PA_SOURCE_LINKED(s->state)) { + pa_hook_fire(&s->core->hooks[PA_CORE_HOOK_SOURCE_DESCRIPTION_CHANGED], s); + pa_subscription_post(s->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, s->index); + } } void pa_source_set_asyncmsgq(pa_source *s, pa_asyncmsgq *q) { |