aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2004-03-15 23:09:17 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2004-03-15 23:09:17 +0000
commit659dc72f992cb05a627ba6473ad73a47f639d72d (patch)
treee5b7ac71d904c25053e2ea39aed6e58c520fa211 /etc
parente5592f4dd9a0f52849cec5388f7ce4530b29a371 (diff)
Notes
Diffstat (limited to 'etc')
-rwxr-xr-xetc/rc.d/Makefile2
-rw-r--r--etc/rc.d/mixer112
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"