core: monitor sources need to inherit the suspend cause from their sinks

This commit is contained in:
Lennart Poettering 2009-06-06 15:32:45 +02:00
parent 69eab1e057
commit d1646f78af

View file

@ -505,10 +505,13 @@ int pa_sink_suspend(pa_sink *s, pa_bool_t suspend, pa_suspend_cause_t cause) {
pa_assert(PA_SINK_IS_LINKED(s->state)); pa_assert(PA_SINK_IS_LINKED(s->state));
pa_assert(cause != 0); pa_assert(cause != 0);
if (suspend) if (suspend) {
s->suspend_cause |= cause; s->suspend_cause |= cause;
else s->monitor_source->suspend_cause |= cause;
} else {
s->suspend_cause &= ~cause; s->suspend_cause &= ~cause;
s->monitor_source->suspend_cause &= ~cause;
}
if ((pa_sink_get_state(s) == PA_SINK_SUSPENDED) == !!s->suspend_cause) if ((pa_sink_get_state(s) == PA_SINK_SUSPENDED) == !!s->suspend_cause)
return 0; return 0;