core: Suspend monitor when a sink enters passthrough mode

In most cases it is expected that clients cannot consume compressed
data from monitor sources, so we suspend the monitor source when the
sink goes into passthrough mode.

Eventually, when the extended API includes client notifications for
changed formats, we should emit a notification on the monitor so that
clients can decide what they want to do when this happens (disconnect or
consume the data anyway).
This commit is contained in:
Arun Raghavan 2011-03-03 19:02:45 +05:30
parent 4c9d53f3f5
commit f94bcae6bd
3 changed files with 18 additions and 1 deletions

View file

@ -514,7 +514,7 @@ int pa_source_suspend(pa_source *s, pa_bool_t suspend, pa_suspend_cause_t cause)
pa_assert(PA_SOURCE_IS_LINKED(s->state));
pa_assert(cause != 0);
if (s->monitor_of)
if (s->monitor_of && cause != PA_SUSPEND_PASSTHROUGH)
return -PA_ERR_NOTSUPPORTED;
if (suspend)