#!/bin/sh

set -e

PATH=/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin

if [ "$(id -u)" != "0" -a "$1" != "--help" -a "$1" != "help" -a ! -z "$1" ]; then
    log_failure_msg "$0: To $1 ALSA, you must be root."
    exit 1
fi

# Default settings
alsactl_store_on_shutdown="autosave always"
runlevels_save='[2-5]'

[ -e /etc/default/alsa ] && . /etc/default/alsa
test -f /lib/lsb/init-functions || exit 1
. /lib/lsb/init-functions

case "$1" in
    start)
        # unmute
	for control in "PCM" "Synth" "Master" "CD" "Headphone"; do
		amixer -q set "$control" "70%" unmute 2>/dev/null || true
	done

	log_begin_msg "Restoring ALSA mixer settings..."
	if alsactl restore > /dev/null 2>&1; then
	    log_end_msg 0
	else
	    alsactl restore
	    log_end_msg 1
	    exit 1
	fi
	;;
    stop)
	if [ "$alsactl_store_on_shutdown" != "never autosave" ]; then
	    if runlevel | grep -E "^$runlevels_save " > /dev/null 2>&1 \
	    || runlevel | grep -E " $runlevels_save\$" > /dev/null 2>&1; then
		log_begin_msg "Storing ALSA mixer settings..."
		alsactl store > /dev/null 2>&1
	        log_end_msg $?
	    fi
	fi
	;;
    restart|reload)
	$0 stop && $0 start
	;;
    *)
	log_success_msg "Usage: /etc/init.d/alsa {start|stop|restart|reload}"
	exit 1
	;;
esac
