From 3de129f3ac8dd6cf51178b266837db4d5e4a1215 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Mon, 4 Oct 2010 11:48:43 +0100 Subject: introspect: Include whether a stream is corked in the info callback. --- src/pulsecore/protocol-native.c | 5 ++++- src/pulsecore/sink-input.c | 3 +++ src/pulsecore/source-output.c | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/pulsecore') diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index adb995f0..85245a93 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -3079,6 +3079,8 @@ static void sink_input_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_tagstruct_put_boolean(t, pa_sink_input_get_mute(s)); if (c->version >= 13) pa_tagstruct_put_proplist(t, s->proplist); + if (c->version >= 19) + pa_tagstruct_put_boolean(t, (pa_sink_input_get_state(s) == PA_SINK_INPUT_CORKED)); } static void source_output_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_source_output *s) { @@ -3101,9 +3103,10 @@ static void source_output_fill_tagstruct(pa_native_connection *c, pa_tagstruct * pa_tagstruct_put_usec(t, source_latency); pa_tagstruct_puts(t, pa_resample_method_to_string(pa_source_output_get_resample_method(s))); pa_tagstruct_puts(t, s->driver); - if (c->version >= 13) pa_tagstruct_put_proplist(t, s->proplist); + if (c->version >= 19) + pa_tagstruct_put_boolean(t, (pa_source_output_get_state(s) == PA_SOURCE_OUTPUT_CORKED)); } static void scache_fill_tagstruct(pa_native_connection *c, pa_tagstruct *t, pa_scache_entry *e) { diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 190e2d01..fe840b88 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -470,6 +470,9 @@ static void sink_input_set_state(pa_sink_input *i, pa_sink_input_state_t state) for (ssync = i->sync_next; ssync; ssync = ssync->sync_next) pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_STATE_CHANGED], ssync); + + if (PA_SINK_INPUT_IS_LINKED(state)) + pa_subscription_post(i->core, PA_SUBSCRIPTION_EVENT_SINK_INPUT|PA_SUBSCRIPTION_EVENT_CHANGE, i->index); } pa_sink_update_status(i->sink); diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 57ccc067..88731e76 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -291,9 +291,13 @@ static void source_output_set_state(pa_source_output *o, pa_source_output_state_ update_n_corked(o, state); o->state = state; - if (state != PA_SOURCE_OUTPUT_UNLINKED) + if (state != PA_SOURCE_OUTPUT_UNLINKED) { pa_hook_fire(&o->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_STATE_CHANGED], o); + if (PA_SOURCE_OUTPUT_IS_LINKED(state)) + pa_subscription_post(o->core, PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT|PA_SUBSCRIPTION_EVENT_CHANGE, o->index); + } + pa_source_update_status(o->source); } -- cgit