core/alsa-utils/alsa

57 lines
1.2 KiB
Plaintext
Raw Normal View History

2010-05-22 06:07:29 +08:00
#!/bin/bash
. /etc/rc.conf
. /etc/conf.d/alsa
. /etc/rc.d/functions
case "$1" in
start)
stat_busy "Restoring ALSA Levels"
/usr/sbin/alsactl $ALSA_ARGS restore
if [ $? -gt 0 ]; then
stat_fail
else
stat_done
add_daemon alsa
fi
POWERSAVE=${POWERSAVE:-0}
if [ -e /sys/module/snd_ac97_codec/parameters/power_save \
-a $POWERSAVE -ne 0 ]; then
echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
[ -c /dev/dsp ] && echo 1 > /dev/dsp
fi
if [ -e /sys/module/snd_hda_intel/parameters/power_save \
-a $POWERSAVE -ne 0 ]; then
echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
[ -c /dev/dsp ] && echo 1 > /dev/dsp
fi
;;
stop)
SAVE_VOLUME=${SAVE_VOLUME:-yes}
if [ "$SAVE_VOLUME" == "yes" ]; then
stat_busy "Saving ALSA Levels"
/usr/sbin/alsactl $ALSA_ARGS store
else
stat_busy "Stopping ALSA"
fi
if [ "$MUTE_VOLUME" == "yes" ]; then
/usr/bin/amixer -q set Master 0 mute
fi
if [ $? -gt 0 ]; then
stat_fail
else
stat_done
rm_daemon alsa
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac