From a3b8b6a07ebf5caa5e8d0b79cf12e790dcd49581 Mon Sep 17 00:00:00 2001 From: Jyri Sarha Date: Fri, 27 Nov 2009 10:33:46 +0200 Subject: [PATCH] combine: Stop rate adjustments if sink is supended --- src/modules/module-combine-sink.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/module-combine-sink.c b/src/modules/module-combine-sink.c index 488f69f..dd38009 100644 --- a/src/modules/module-combine-sink.c +++ b/src/modules/module-combine-sink.c @@ -252,7 +252,11 @@ static void time_callback(pa_mainloop_api *a, pa_time_event *e, const struct tim adjust_rates(u); - pa_core_rttime_restart(u->core, e, pa_rtclock_now() + u->adjust_time); + if (pa_sink_get_state(u->sink) == PA_SINK_SUSPENDED) { + u->core->mainloop->time_free(e); + u->time_event = NULL; + } else + pa_core_rttime_restart(u->core, e, pa_rtclock_now() + u->adjust_time); } static void process_render_null(struct userdata *u, pa_usec_t now) { @@ -603,6 +607,9 @@ static void unsuspend(struct userdata *u) { PA_IDXSET_FOREACH(o, u->outputs, idx) output_enable(o); + if (!u->time_event) + u->time_event = pa_core_rttime_new(u->core, pa_rtclock_now() + u->adjust_time, time_callback, u); + pa_log_info("Resumed successfully..."); } -- 2.7.4