summaryrefslogtreecommitdiff
path: root/init.d/mixer.in
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-25 14:06:05 +0000
committerRoy Marples <roy@marples.name>2008-03-25 14:06:05 +0000
commit55eb3794fb4ad563102d5ab30c1d5337a599b2e5 (patch)
tree0d052faeb050c1e18ba56f6f6189bff3ffca28c9 /init.d/mixer.in
parent08aff6ef44ac5dc438d916b53aa61385f6d299f3 (diff)
downloadopenrc-55eb3794fb4ad563102d5ab30c1d5337a599b2e5.tar.gz
openrc-55eb3794fb4ad563102d5ab30c1d5337a599b2e5.tar.bz2
openrc-55eb3794fb4ad563102d5ab30c1d5337a599b2e5.tar.xz
Rework our folder structure so that we don't have OS specific dirs, making it easier to share init and conf files per OS.
Diffstat (limited to 'init.d/mixer.in')
-rw-r--r--init.d/mixer.in47
1 files changed, 47 insertions, 0 deletions
diff --git a/init.d/mixer.in b/init.d/mixer.in
new file mode 100644
index 0000000..f496bd1
--- /dev/null
+++ b/init.d/mixer.in
@@ -0,0 +1,47 @@
+#!@PREFIX@/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
+ keyword nojail noprefix
+}
+
+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}
+}