blob: 1e7b57fa3be113c5e2bfebcab670883b2c4b9bda (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/bin/bash
. /etc/rc.conf
. /etc/conf.d/alsa
. /etc/rc.d/functions
case "$1" in
start)
stat_busy "Restoring ALSA Levels"
if [[ ! -e /var/lib/alsa/asound.state ]]; then
/usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; }
fi
if /usr/sbin/alsactl $ALSA_ARGS restore; then
stat_done
add_daemon alsa
else
stat_fail
exit 1
fi
POWERSAVE=${POWERSAVE:-0}
if [[ -e /sys/module/snd_ac97_codec/parameters/power_save ]] \
&& (( $POWERSAVE )); 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 ]] \
&& (( $POWERSAVE )); 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 || { stat_fail; exit 1; }
else
stat_busy "Stopping ALSA"
fi
if [ "$MUTE_VOLUME" == "yes" ]; then
/usr/bin/amixer -q set Master 0 mute || { stat_fail; exit 1; }
fi
stat_done
rm_daemon alsa
;;
restart)
$0 stop
sleep 1
$0 start
;;
force-restart)
stat_busy "Trying to TERM or KILL processes that are blocking ALSA..."
FILES="$(ls -1 /dev/snd/* | grep -vi control)"
fuser -k -SIGTERM $FILES
fuser -k $FILES
stat_done
$0 restart
;;
*)
echo "usage: $0 {start|stop|restart|force-restart}"
esac
|