summaryrefslogtreecommitdiffstats
path: root/core/modules/alsa/data
diff options
context:
space:
mode:
authorSebastian2016-04-25 12:01:08 +0200
committerSebastian2016-04-25 12:01:08 +0200
commit5acda3eaeabae9045609539303a8c12c4ce401f1 (patch)
tree7e71975f8570b05aafe2ea6ec0e242a8912387bb /core/modules/alsa/data
parentinitial commit (diff)
downloadmltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.gz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.tar.xz
mltk-5acda3eaeabae9045609539303a8c12c4ce401f1.zip
merge with latest dev version
Diffstat (limited to 'core/modules/alsa/data')
-rw-r--r--core/modules/alsa/data/etc/systemd/system/alsa-default-card.service11
l---------core/modules/alsa/data/etc/systemd/system/multi-user.target.wants/alsa-default-card.service1
-rwxr-xr-xcore/modules/alsa/data/opt/openslx/scripts/alsa-default_card42
3 files changed, 54 insertions, 0 deletions
diff --git a/core/modules/alsa/data/etc/systemd/system/alsa-default-card.service b/core/modules/alsa/data/etc/systemd/system/alsa-default-card.service
new file mode 100644
index 00000000..db35eeb7
--- /dev/null
+++ b/core/modules/alsa/data/etc/systemd/system/alsa-default-card.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Set default card ALSA will use
+DefaultDependencies=no
+After=tmp.target
+Wants=tmp.target
+
+[Service]
+Type=oneshot
+ExecStart=/opt/openslx/scripts/alsa-default_card
+RemainAfterExit=yes
+
diff --git a/core/modules/alsa/data/etc/systemd/system/multi-user.target.wants/alsa-default-card.service b/core/modules/alsa/data/etc/systemd/system/multi-user.target.wants/alsa-default-card.service
new file mode 120000
index 00000000..55e393fd
--- /dev/null
+++ b/core/modules/alsa/data/etc/systemd/system/multi-user.target.wants/alsa-default-card.service
@@ -0,0 +1 @@
+../alsa-default-card.service \ No newline at end of file
diff --git a/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card b/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card
new file mode 100755
index 00000000..214a4d73
--- /dev/null
+++ b/core/modules/alsa/data/opt/openslx/scripts/alsa-default_card
@@ -0,0 +1,42 @@
+#!/bin/ash
+PATH=$PATH:/opt/openslx/sbin:/opt/openslx/bin
+
+PROC="/proc/asound/cards"
+
+if [ ! -r "$PROC" ]; then
+ echo "'${PROC}' not found or not readable."
+ exit 1
+fi
+
+if [ -w "/etc" ]; then
+ FILE="/etc/asound.conf"
+elif [ -n "$HOME" ]; then
+ FILE="${HOME}/.asoundrc"
+else
+ FILE="$(getent passwd root | awk -F ':' '{print $6}')/.asoundrc"
+fi
+
+if [ -e "${FILE}" -a "x$1" != "x--force" ]; then
+ echo "'${FILE}' already exists, use --force to overwrite."
+ exit 1
+fi
+
+# Try to filter HDMI cards first
+CARD=$(grep -v -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)
+
+if [ -z "${CARD}" ]; then
+ echo "No sound card found."
+ exit 1
+fi
+
+cat > "${FILE}" <<HEREDOC
+defaults.pcm.!card $CARD
+defaults.ctl.!card $CARD
+
+defaults.pcm.!device 0
+defaults.ctl.!device 0
+
+HEREDOC
+