summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanu Kaskinen <tanuk@iki.fi>2017-11-28 19:50:02 +0200
committerTanu Kaskinen <tanuk@iki.fi>2017-12-02 16:20:00 +0200
commitd6a0dcc3a2a9e73a7664be9ad62d7fffd1f926de (patch)
tree2362ffc0edb7b5a36250afbb520c9e4816967c0c
parent3d698d17afa9a3b36defeb99def14c25c9031c2f (diff)
downloadpulseaudio-d6a0dcc3a2a9e73a7664be9ad62d7fffd1f926de.tar.gz
device-manager: don't override application routing requests
module-device-manager doesn't change the routing of those streams that have been explicitly routed by the user, which is good. Similarly, it should leave those streams alone whose routing was decided by the application that created the stream. This patch implements that. BugLink: https://github.com/wwmm/pulseeffects/issues/99
-rw-r--r--src/modules/module-device-manager.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c
index 5d04bb667..c2f11d9bb 100644
--- a/src/modules/module-device-manager.c
+++ b/src/modules/module-device-manager.c
@@ -658,7 +658,8 @@ static void route_sink_input(struct userdata *u, pa_sink_input *si) {
pa_assert(u);
pa_assert(u->do_routing);
- if (si->save_sink)
+ /* Don't override user or application routing requests. */
+ if (si->save_sink || si->sink_requested_by_application)
return;
/* Skip this if it is already in the process of being moved anyway */
@@ -729,7 +730,8 @@ static void route_source_output(struct userdata *u, pa_source_output *so) {
pa_assert(u);
pa_assert(u->do_routing);
- if (so->save_source)
+ /* Don't override user or application routing requests. */
+ if (so->save_source || so->source_requested_by_application)
return;
if (so->direct_on_input)