diff options
author | Tanu Kaskinen <tanuk@iki.fi> | 2017-08-30 21:51:15 +0300 |
---|---|---|
committer | Tanu Kaskinen <tanuk@iki.fi> | 2017-09-02 14:14:49 +0300 |
commit | 970b475a255b6d98258e9a2b067de9bdc14e7337 (patch) | |
tree | 6f7f395241bf5537b4e325ce8b93e7beb0a07323 | |
parent | 6921e08f605bbe7c1e2c2fc1afe35c1202239627 (diff) | |
download | pulseaudio-970b475a255b6d98258e9a2b067de9bdc14e7337.tar.gz |
core: ignore devices that are not linked when choosing the default sink or source
Sources should probably be added to pa_core.sources in pa_source_put(),
but currently they're added in pa_source_new(). A lot of stuff can
happen between the pa_source_new() and pa_source_put() calls, and
it has happened that the default source was updated during this time.
Therefore, pa_core_update_default_source() needs to take it into account
that not every source is necessarily linked.
-rw-r--r-- | src/pulsecore/core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c index e01677d5d..454c56685 100644 --- a/src/pulsecore/core.c +++ b/src/pulsecore/core.c @@ -315,6 +315,9 @@ void pa_core_update_default_sink(pa_core *core) { pa_assert(core); PA_IDXSET_FOREACH(sink, core->sinks, idx) { + if (!PA_SINK_IS_LINKED(sink->state)) + continue; + if (!best) { best = sink; continue; @@ -399,6 +402,9 @@ void pa_core_update_default_source(pa_core *core) { pa_assert(core); PA_IDXSET_FOREACH(source, core->sources, idx) { + if (!PA_SOURCE_IS_LINKED(source->state)) + continue; + if (!best) { best = source; continue; |