Because ports with disabled jack detection are set to availability
unknown by default, available ports should be preferred over ports
with unknown availability.
---
src/pulsecore/core.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/pulsecore/core.c b/src/pulsecore/core.c
index acd47cbb..8c074afe 100644
--- a/src/pulsecore/core.c
+++ b/src/pulsecore/core.c
@@ -325,7 +325,15 @@ static int compare_sinks(pa_sink *a, pa_sink *b) {
core = a->core;
- /* Available sinks always beat unavailable sinks. */
+ /* Available sinks always beat sinks with unknown availability. */
+ if ((!a->active_port || a->active_port->available <= PA_AVAILABLE_UNKNOWN)
+ && b->active_port && b->active_port->available == PA_AVAILABLE_YES)
+ return -1;
+ if ((!b->active_port || b->active_port->available <= PA_AVAILABLE_UNKNOWN)
+ && a->active_port && a->active_port->available == PA_AVAILABLE_YES)
+ return 1;
+
+ /* Possibly available sinks always beat unavailable sinks. */
if (a->active_port && a->active_port->available == PA_AVAILABLE_NO
&& (!b->active_port || b->active_port->available !=
PA_AVAILABLE_NO))
return -1;
@@ -402,7 +410,15 @@ static int compare_sources(pa_source *a, pa_source *b) {
core = a->core;
- /* Available sources always beat unavailable sources. */
+ /* Available sources always beat sources with unknown availability. */
+ if ((!a->active_port || a->active_port->available <= PA_AVAILABLE_UNKNOWN)
+ && b->active_port && b->active_port->available == PA_AVAILABLE_YES)
+ return -1;
+ if ((!b->active_port || b->active_port->available <= PA_AVAILABLE_UNKNOWN)
+ && a->active_port && a->active_port->available == PA_AVAILABLE_YES)
+ return 1;
+
+ /* Possibly available sources always beat unavailable sources. */
if (a->active_port && a->active_port->available == PA_AVAILABLE_NO
&& (!b->active_port || b->active_port->available !=
PA_AVAILABLE_NO))
return -1;
--
2.14.1
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss