diff options
Diffstat (limited to 'init.d.FreeBSD/mixer')
| -rw-r--r-- | init.d.FreeBSD/mixer | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/init.d.FreeBSD/mixer b/init.d.FreeBSD/mixer new file mode 100644 index 00000000..81341e9b --- /dev/null +++ b/init.d.FreeBSD/mixer @@ -0,0 +1,46 @@ +#!/sbin/runscript +# Copyright 2007-2008 Roy Marples <roy@marples.name> +# All rights reserved. Released under the 2-clause BSD license. + +extra_commands="restore" + +depend() +{ +	need localmount  +} + +restore() +{ +	local mixer= retval=0 +	ebegin "Restoring mixer settings" +	eindent +	for mixer in /dev/mixer*; do +		if [ -r "/var/db/${mixer#/dev/}-state" ]; then +			vebegin "${mixer}" +			mixer -f "${mixer}" \ +			$(cat "/var/db/${mixer#/dev/}-state") >/dev/null +			veend $? +			: $((retval += $?)) +		fi +	done +} + +start() +{ +	restore +} + +stop() +{ +	local mixer= retval=0 +	ebegin "Saving mixer settings" +	eindent +	for mixer in /dev/mixer*; do +		vebegin "${mixer}" +		mixer -f "${mixer}" -s >/var/db/"${mixer#/dev/}"-state +		veend $? +		: $((retval += $?)) +	done +	eoutdent +	eend ${retval} +}  | 
