diff options
Diffstat (limited to 'abs/core/alsa-utils/alsa')
-rwxr-xr-x | abs/core/alsa-utils/alsa | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/abs/core/alsa-utils/alsa b/abs/core/alsa-utils/alsa new file mode 100755 index 0000000..2581a9a --- /dev/null +++ b/abs/core/alsa-utils/alsa @@ -0,0 +1,48 @@ +#!/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 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 + 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 + echo 1 > /dev/dsp + fi + ;; + stop) + stat_busy "Saving ALSA Levels" + /usr/sbin/alsactl store + 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 |