summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanu Kaskinen <tanuk@iki.fi>2017-11-28 19:43:04 +0200
committerTanu Kaskinen <tanuk@iki.fi>2017-11-28 19:58:49 +0200
commit81c4a67c3433aa6075f40f79ebb76b7a03273eb6 (patch)
tree1259a00812db6cce5c7c0c707ebf683717109ca8
parent961ce65e919ff8f7112b3c5bd2042c286fbf4864 (diff)
device-manager: don't override application routing requestsdevice-manager-fix
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 8fd808f1..46fa2470 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 */
@@ -731,7 +732,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)