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.
64 lines
2.4 KiB
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
|