From 71409186b97f98561e399776e0f3e7673071e993 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 30 Mar 2021 11:50:31 +0100 Subject: [PATCH] emix - fix dynamic output sink change with monitoring --- src/modules/mixer/lib/backends/pulseaudio/pulse.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse.c b/src/modules/mixer/lib/backends/pulseaudio/pulse.c index 75caff59b..10538dd1a 100644 --- a/src/modules/mixer/lib/backends/pulseaudio/pulse.c +++ b/src/modules/mixer/lib/backends/pulseaudio/pulse.c @@ -262,6 +262,7 @@ _sink_cb(pa_context *c EINA_UNUSED, const pa_sink_info *info, int eol, if (info->state == PA_SINK_RUNNING) _sink_state_running_set(sink, EINA_TRUE); else _sink_state_running_set(sink, EINA_FALSE); ctx->sinks = eina_list_append(ctx->sinks, sink); + if (ctx->cb) ctx->cb((void *)ctx->userdata, EMIX_SINK_ADDED_EVENT, (Emix_Sink *)sink); @@ -578,6 +579,12 @@ _sink_input_changed_cb(pa_context *c EINA_UNUSED, if (ctx->cb) ctx->cb((void *)ctx->userdata, EMIX_SINK_INPUT_CHANGED_EVENT, (Emix_Sink_Input *)input); + + if (input->mon_count > 0) + { + _sink_input_monitor_end(input); + if (input->running) _sink_input_monitor_begin(input); + } } static void