[pulseaudio-discuss] [RFC PATCH 4/4] switch-on-connect: Do not ignore HDMI sinks

João Paulo Rechi Vita jprvita at gmail.com
Wed Aug 8 05:00:52 UTC 2018


HDMI ports are normally present on cards connected to an internal bus,
and module-switch-on-connect should switch to them when a HDMI monitor
is plugged.

This is specially relevant on setups where the HDMI port of a machine is
connected to a different audio card then the analog outputs, which is
the case for machines with AMD graphics cards.
---
 src/modules/module-switch-on-connect.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/modules/module-switch-on-connect.c b/src/modules/module-switch-on-connect.c
index ebdd6aad0..9077eaec4 100644
--- a/src/modules/module-switch-on-connect.c
+++ b/src/modules/module-switch-on-connect.c
@@ -70,11 +70,14 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void*
 
     pa_log_debug("Trying to switch to new sink %s", sink->name);
 
-    /* Don't switch to any internal devices */
-    s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS);
-    if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) {
-        pa_log_debug("Refusing to switch to sink on %s bus", s);
-        return PA_HOOK_OK;
+    /* Don't switch to any internal devices except HDMI */
+    s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_STRING);
+    if (s && !pa_startswith(s, "hdmi")) {
+        s = pa_proplist_gets(sink->proplist, PA_PROP_DEVICE_BUS);
+        if (pa_safe_streq(s, "pci") || pa_safe_streq(s, "isa")) {
+            pa_log_debug("Refusing to switch to sink on %s bus", s);
+            return PA_HOOK_OK;
+        }
     }
 
     /* Ignore virtual sinks if not configured otherwise on the command line */
-- 
2.18.0



More information about the pulseaudio-discuss mailing list