diff options
author | Simon Rettberg | 2018-09-28 12:07:11 +0200 |
---|---|---|
committer | Simon Rettberg | 2018-09-28 12:07:11 +0200 |
commit | 27ba1cffa11bb0704b4e6587b11f741a4b2dc7b7 (patch) | |
tree | 645693fd00f6b3fd2a0171d06f87a73ad3c83b67 /core/modules/alsa | |
parent | [alsa] Source config file (diff) | |
download | mltk-27ba1cffa11bb0704b4e6587b11f741a4b2dc7b7.tar.gz mltk-27ba1cffa11bb0704b4e6587b11f741a4b2dc7b7.tar.xz mltk-27ba1cffa11bb0704b4e6587b11f741a4b2dc7b7.zip |
[alsa] Detect usable device index for card, don't just assume 0 exists
This still doesn't try to be smart and detect which device of a card to
use, but at least we prevent using nonexistent index 0 with HDMI for
example.
Diffstat (limited to 'core/modules/alsa')
-rwxr-xr-x | core/modules/alsa/data/opt/openslx/scripts/alsa-default_card | 27 |
1 files changed, 15 insertions, 12 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 0bc7d7dd..3d6141aa 100755 --- a/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card +++ b/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card @@ -1,6 +1,6 @@ #!/bin/ash -PROC="/proc/asound/cards" +PROC="/proc/asound/pcm" if [ ! -r "$PROC" ]; then echo "'${PROC}' not found or not readable." @@ -26,22 +26,25 @@ GREPOPT="-v" if [ "x$SLX_PREFERRED_SOUND_OUTPUT" = "xHDMI" ]; then GREPOPT= fi -# Try to filter HDMI cards first -CARD=$(grep $GREPOPT -i 'HDMI' "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1) -# If empty, try again with all -[ -z "${CARD}" ] && CARD=$(cat "${PROC}" | grep -E -o '^[[:space:]]*[0-9]+[[:space:]]+' | head -n 1) +# Try to filter/prefer HDMI cards +< <( sort -u "${PROC}" | grep $GREPOPT -i HDMI -m 1 | cut -c1-5 | tr -- '-' ' ' ) read card device _ -if [ -z "${CARD}" ]; then - echo "No sound card found." - exit 1 +# If empty, do nothing so defaults get used +if [ -z "${card}" ]; then + echo "No suitable sound card found, defaults apply." + exit 0 fi +# Remove leading zero if any (both values are two digit) +card=${card#0} +device=${device#0} + cat > "${FILE}" <<HEREDOC -defaults.pcm.!card $CARD -defaults.ctl.!card $CARD +defaults.pcm.!card $card +defaults.ctl.!card $card -defaults.pcm.!device 0 -defaults.ctl.!device 0 +defaults.pcm.!device $device +defaults.ctl.!device $device HEREDOC |