On 2019/6/30 下午6:47, Georg Chini wrote:
On 17.01.19 07:53, Hui Wang wrote:
When the user moves a stream to the current default sink, the
preferred_sink 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 sink.
Signed-off-by: Hui Wang <hui.wang@xxxxxxxxxxxxx>
---
src/modules/module-stream-restore.c | 19 ++++++++++++++-----
src/pulsecore/sink-input.c | 6 +++++-
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/modules/module-stream-restore.c
b/src/modules/module-stream-restore.c
index 366f1a5a8..142d1e3b4 100644
--- a/src/modules/module-stream-restore.c
+++ b/src/modules/module-stream-restore.c
@@ -1311,13 +1311,22 @@ 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 (sink_input->preferred_sink != NULL) {
+ if (sink_input->preferred_sink != NULL || !created_new_entry) {
pa_xfree(entry->device);
- entry->device = pa_xstrdup(sink_input->preferred_sink);
- entry->device_valid = true;
+ if (sink_input->preferred_sink != NULL) {
+ entry->device = pa_xstrdup(sink_input->preferred_sink);
+ entry->device_valid = true;
+ } else {
+ entry->device = NULL;
+ entry->device_valid = false;
+ }
- device_updated = !created_new_entry &&
(!old->device_valid || !pa_streq(entry->device, old->device));
- if (sink_input->sink->card) {
+ device_updated = !created_new_entry &&
!pa_safe_streq(entry->device, old->device);
+ if (entry->device_valid == false) {
+ pa_xfree(entry->card);
+ entry->card = NULL;
+ entry->card_valid = false;
+ } else {
pa_xfree(entry->card);
entry->card =
pa_xstrdup(sink_input->sink->card->name);
entry->card_valid = true;
You still need to check sink_input->sink->card. The virtual sinks
don't have a card,
so it may well be that the device is valid but there is no card.
Ok, will add it.
Thanks.
_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss