diff options
Diffstat (limited to 'abs/core/alsa-utils/alsa')
-rwxr-xr-x | abs/core/alsa-utils/alsa | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/abs/core/alsa-utils/alsa b/abs/core/alsa-utils/alsa index 2581a9a..e1d6f28 100755 --- a/abs/core/alsa-utils/alsa +++ b/abs/core/alsa-utils/alsa @@ -7,7 +7,7 @@ case "$1" in start) stat_busy "Restoring ALSA Levels" - /usr/sbin/alsactl restore + /usr/sbin/alsactl $ALSA_ARGS restore if [ $? -gt 0 ]; then stat_fail else @@ -17,20 +17,28 @@ case "$1" in 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 + -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 + -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 + 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 @@ -44,5 +52,5 @@ case "$1" in $0 start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "usage: $0 {start|stop|restart}" esac |