summaryrefslogtreecommitdiffstats
path: root/core/modules/alsa
diff options
context:
space:
mode:
authorSimon Rettberg2018-10-02 12:04:33 +0200
committerSimon Rettberg2018-10-02 12:04:33 +0200
commitd83f29e9057315f68aca94c19176118196aef3ee (patch)
treee2cf5ea86a915641c71d55ed9f5e7c0103d63811 /core/modules/alsa
parent[alsa] ash doesn't know < <() (diff)
downloadmltk-d83f29e9057315f68aca94c19176118196aef3ee.tar.gz
mltk-d83f29e9057315f68aca94c19176118196aef3ee.tar.xz
mltk-d83f29e9057315f68aca94c19176118196aef3ee.zip
[alsa] Try to determine which HDMI port to output sound to
Diffstat (limited to 'core/modules/alsa')
-rwxr-xr-xcore/modules/alsa/data/opt/openslx/scripts/alsa-default_card20
1 files changed, 17 insertions, 3 deletions
diff --git a/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card b/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card
index cd0b301d..b4522b7c 100755
--- a/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card
+++ b/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card
@@ -22,14 +22,28 @@ fi
. /opt/openslx/config
-GREPOPT="-v"
+GREPOPT="-v -m 1"
if [ "x$SLX_PREFERRED_SOUND_OUTPUT" = "xHDMI" ]; then
- GREPOPT=
+ # Prefer HDMI, so let's check whether there is actually
+ # something connected via HDMI. This might still be screen
+ # that doesn't support sound output, but it's better than nothing
+ found=false
+ cnt=1
+ for i in /sys/class/drm/card*-HDMI*; do
+ if [ "x$(cat "$i/status")" = "xconnected" ]; then
+ found=true
+ break
+ fi
+ cnt=$(( cnt + 1 ))
+ done
+ if $found; then
+ GREPOPT="-m $cnt"
+ fi
fi
# Try to filter/prefer HDMI cards
tmpf=$( mktemp )
[ -z "$tmpf" ] && tmpf=/tmp/borkenbämpfong
-sort -u "${PROC}" | grep $GREPOPT -i HDMI -m 1 | cut -c1-5 | tr -- '-' ' ' > "$tmpf"
+sort -u "${PROC}" | grep $GREPOPT -i HDMI | tail -n 1 | cut -c1-5 | tr -- '-' ' ' > "$tmpf"
< "$tmpf" read card device _
rm -f -- "$tmpf"