mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
source-output: clear the preferred_source if it is default_source
When the user moves a stream to the current default source, the preferred_source should be set to NULL and module-stream-restore should clear the routing for that stream in the stream database. From that point on the stream will be always routed to the default source. Signed-off-by: Hui Wang <hui.wang@canonical.com>
This commit is contained in:
parent
e529db75ec
commit
70bbbcdc84
2 changed files with 15 additions and 7 deletions
|
|
@ -1369,17 +1369,21 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
|
|||
mute_updated = !created_new_entry && (!old->muted_valid || entry->muted != old->muted);
|
||||
}
|
||||
|
||||
if (source_output->preferred_source != NULL) {
|
||||
pa_source *s;
|
||||
if (source_output->preferred_source != NULL || !created_new_entry) {
|
||||
pa_source *s = NULL;
|
||||
|
||||
pa_xfree(entry->device);
|
||||
entry->device = pa_xstrdup(source_output->preferred_source);
|
||||
entry->device_valid = true;
|
||||
|
||||
device_updated = !created_new_entry && (!old->device_valid || !pa_streq(entry->device, old->device));
|
||||
if (!entry->device)
|
||||
entry->device_valid = false;
|
||||
|
||||
s = pa_namereg_get(c, entry->device, PA_NAMEREG_SOURCE);
|
||||
if (s && s->card) {
|
||||
pa_xfree(entry->card);
|
||||
device_updated = !created_new_entry && !pa_safe_streq(entry->device, old->device);
|
||||
pa_xfree(entry->card);
|
||||
entry->card = NULL;
|
||||
entry->card_valid = false;
|
||||
if (entry->device_valid && (s = pa_namereg_get(c, entry->device, PA_NAMEREG_SOURCE)) && s->card) {
|
||||
entry->card = pa_xstrdup(s->card->name);
|
||||
entry->card_valid = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue