diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2004-03-15 23:09:17 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2004-03-15 23:09:17 +0000 |
| commit | 659dc72f992cb05a627ba6473ad73a47f639d72d (patch) | |
| tree | e5b7ac71d904c25053e2ea39aed6e58c520fa211 /etc | |
| parent | e5592f4dd9a0f52849cec5388f7ce4530b29a371 (diff) | |
Notes
Diffstat (limited to 'etc')
| -rwxr-xr-x | etc/rc.d/Makefile | 2 | ||||
| -rw-r--r-- | etc/rc.d/mixer | 112 |
2 files changed, 113 insertions, 1 deletions
diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile index 3a7898ec111c..2f44a1311cb4 100755 --- a/etc/rc.d/Makefile +++ b/etc/rc.d/Makefile @@ -19,7 +19,7 @@ FILES= DAEMON LOGIN NETWORKING SERVERS \ jail \ kadmind kerberos keyserv kldxref kpasswdd \ ldconfig local localpkg lomac lpd \ - motd mountcritlocal mountcritremote \ + mixer motd mountcritlocal mountcritremote \ mountd moused mroute6d mrouted msgs \ named netif netoptions \ network_ipv6 nfsclient nfsd \ diff --git a/etc/rc.d/mixer b/etc/rc.d/mixer new file mode 100644 index 000000000000..47655ad7b3f4 --- /dev/null +++ b/etc/rc.d/mixer @@ -0,0 +1,112 @@ +#!/bin/sh - +# +# Copyright (c) 2004 The FreeBSD Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# PROVIDE: mixer +# REQUIRE: LOGIN usbd +# KEYWORD: FreeBSD + +. /etc/rc.subr + +name="mixer" +stop_cmd="mixer_stop" +start_cmd="mixer_start" +reload_cmd="mixer_start" +extra_commands="reload" + +# +# List current mixer devices to stdout. +# +list_mixers() +{ + + ( cd /dev ; ls mixer* 2>/dev/null ) +} + +# +# Echo state file name for an individual mixer ($1) to stdout +# +mixer_statefile() +{ + echo "/var/db/${1}-state" +} + +# +# Save state of an individual mixer specified as $1 +# +mixer_save() +{ + local file dev + + dev="/dev/${1}" + file=`mixer_statefile $1` + if [ -r ${dev} ]; then + /usr/sbin/mixer -f ${dev} -s > ${file} 2>/dev/null + fi +} + +# +# Restore the state of an individual mixer specified as $1 +# +mixer_restore() +{ + local file dev + + dev="/dev/${1}" + file=`mixer_statefile $1` + if [ -r ${dev} -a -r ${file} ]; then + /usr/sbin/mixer -f ${dev} `cat ${file}` > /dev/null + fi +} + +# +# Restore state of all mixers +# +mixer_start() +{ + local mixer + + for mixer in `list_mixers`; do + mixer_restore ${mixer} + done +} + +# +# Save the state of all mixers +# +mixer_stop() +{ + local mixer + + for mixer in `list_mixers`; do + mixer_save ${mixer} + done +} + +load_rc_config $name +run_rc_command "$1" |
