module-switch-on-port-available: Use input and output names
authorDavid Henningsson <david.henningsson@canonical.com>
Tue, 17 Nov 2015 14:10:34 +0000 (15:10 +0100)
committerTanu Kaskinen <tanuk@iki.fi>
Sun, 22 Nov 2015 02:59:29 +0000 (04:59 +0200)
In case input or output names are filled in, we can use this to
get a better match in the profile_good_for_input/output functions
instead of guessing based on number of sources and channels.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
src/modules/module-switch-on-port-available.c

index eb8f2d7..8de68a3 100644 (file)
@@ -23,6 +23,7 @@
 #endif
 
 #include <pulsecore/core.h>
+#include <pulsecore/core-util.h>
 #include <pulsecore/device-port.h>
 #include <pulsecore/hashmap.h>
 
@@ -34,6 +35,9 @@ static bool profile_good_for_output(pa_card_profile *profile) {
 
     pa_assert(profile);
 
+    if (!pa_safe_streq(profile->card->active_profile->input_name, profile->input_name))
+        return false;
+
     if (profile->card->active_profile->n_sources != profile->n_sources)
         return false;
 
@@ -55,6 +59,9 @@ static bool profile_good_for_output(pa_card_profile *profile) {
 static bool profile_good_for_input(pa_card_profile *profile) {
     pa_assert(profile);
 
+    if (!pa_safe_streq(profile->card->active_profile->output_name, profile->output_name))
+        return false;
+
     if (profile->card->active_profile->n_sinks != profile->n_sinks)
         return false;