You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.local.d/31-sound

64 lines
2.4 KiB

#!/bin/bash
ENABLED=no
[[ ${ENABLED} == "yes" ]] || exit 0
DEBUGMODE=no
SNDMIX_MASTER_N=Master
SNDMIX_MASTER_VOL=35%
SNDMIX_DEFAULT_VOL=90%
SNDMIX_SWITCH_ON="IEC958 Playback Default,IEC958 Playback Switch"
SNDMIX_SWITCH_OFF="Beep Playback Switch,Mic Playback Switch"
. /usr/lib/ublinux/functions
. /usr/lib/ublinux/default
debug_mode "$0" "$@"
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/hardware; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
# in case of card 0 is HDMI, card 1 is audiocard
if [ "$SNDFINCARD" != "no" ] ;then
if [ -z "$ALSACARD" -o -z "$ALSADEVICE" ] && LC_ALL=C aplay -l | grep -qi "card 0.*HDMI" ;then
ALSACARD=$(aplay -l | grep -v "card 0:" | grep -m1 "card .:.*device " | sed s/"card "// | sed s/":.*"//)
ALSADEVICE=$(LC_ALL=C aplay -l | grep -m1 "card $ALSACARD:.*device " | sed s/".* device "// | sed s/:.*//)
fi
fi
# setting default alsa card if its specified
if [ "$ALSACARD" -a "$ALSADEVICE" ] ;then
echo -e "#you can specify default alsa device, check output of aplay -l\\ndefaults.pcm.card $ALSACARD\\ndefaults.pcm.device $ALSADEVICE" >/etc/skel/.asoundrc
for a in /home/* ;do
if [ ! -f $a/.asoundrc ] ;then
cp /etc/skel/.asoundrc $a
chmod 666 $a/.asoundrc
fi
done
fi
# default settings for mixer
if [ "$SNDMIXSET" != "no" ] ;then
amixer controls | awk -F, '{print $1}' | while read a ;do
SNDNAME=$(LC_ALL=C amixer cget "$a" | grep -m1 name= | awk -F'name='\' '{print $2}' | awk -F\' '{print $1}')
SNDTYPE=$(LC_ALL=C amixer cget "$a" | grep -m1 type= | awk -F'type=' '{print $2}' | awk -F, '{ print $1}')
if [ "$SNDTYPE" = "INTEGER" ] ;then
if echo $SNDNAME | grep -qi "$SNDMIX_MASTER_N" ;then
[ "$DEBUG" = "on" ] && echo setting $SNDNAME to $SNDMIX_MASTER_VOL
amixer cset "$a" "$SNDMIX_MASTER_VOL" >/dev/null 2>&1
else
[ "$DEBUG" = "on" ] && echo setting $SNDNAME to $SNDMIX_DEFAULT_VOL
amixer cset "$a" "$SNDMIX_DEFAULT_VOL" >/dev/null 2>&1
fi
elif [ "$SNDTYPE" = "BOOLEAN" ] ;then
if echo $SNDMIX_SWITCH_ON | grep -q "$SNDNAME" ;then
[ "$DEBUG" = "on" ] && echo setting $SNDNAME to ON
amixer cset "$a" on >/dev/null 2>&1
fi
if echo $SNDMIX_SWITCH_OFF | grep -q "$SNDNAME" ;then
[ "$DEBUG" = "on" ] && echo setting $SNDNAME to OFF
amixer cset "$a" off >/dev/null 2>&1
fi
fi
done
fi