core: move sink-inputs conditionally when update default_sink

When the default sink changes, the streams from the old default sink
should be moved to the new default sink, unless the preferred_sink
string is set to the old default sink and the active port of the old
default sink is not unavailable

Signed-off-by: Hui Wang <hui.wang@canonical.com>
This commit is contained in:
Hui Wang 2019-01-16 10:35:45 +08:00
parent bc0e728320
commit 40d92e9b1a
4 changed files with 48 additions and 25 deletions

View file

@ -558,6 +558,12 @@ int64_t pa_sink_get_latency_within_thread(pa_sink *s, bool allow_negative);
* s->reference_volume and fires change notifications. */
void pa_sink_set_reference_volume_direct(pa_sink *s, const pa_cvolume *volume);
/* When the default_sink is changed or the active_port of a sink is changed to
* PA_AVAILABLE_NO, this function is called to move the streams of the old
* default_sink or the sink with active_port equals PA_AVAILABLE_NO to the
* current default_sink conditionally*/
void pa_sink_move_streams_to_default_sink(pa_core *core, pa_sink *old_sink);
/* Verify that we called in IO context (aka 'thread context), or that
* the sink is not yet set up, i.e. the thread not set up yet. See
* pa_assert_io_context() in thread-mq.h for more information. */