module-switch-on-connect: Don't switch unlinked sink input and source outputs
authorDavid Henningsson <david.henningsson@canonical.com>
Wed, 31 Aug 2011 12:37:05 +0000 (14:37 +0200)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Wed, 31 Aug 2011 13:19:44 +0000 (18:49 +0530)
Unlinked streams can not be moved, so don't try.

BugLink: http://bugs.launchpad.net/bugs/837386
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
src/modules/module-switch-on-connect.c

index 86eadd7..efe1270 100644 (file)
@@ -87,7 +87,7 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void*
     }
 
     PA_IDXSET_FOREACH(i, def->inputs, idx) {
-        if (i->save_sink)
+        if (i->save_sink || !PA_SINK_INPUT_IS_LINKED(i->state))
             continue;
 
         if (pa_sink_input_move_to(i, sink, FALSE) < 0)
@@ -140,7 +140,7 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source,
     }
 
     PA_IDXSET_FOREACH(o, def->outputs, idx) {
-        if (o->save_source)
+        if (o->save_source || !PA_SOURCE_OUTPUT_IS_LINKED(o->state))
             continue;
 
         if (pa_source_output_move_to(o, source, FALSE) < 0)