diff options
Diffstat (limited to 'abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free')
| -rwxr-xr-x | abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free | 73 | 
1 files changed, 73 insertions, 0 deletions
diff --git a/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free b/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free new file mode 100755 index 0000000..48b65e0 --- /dev/null +++ b/abs/mv-core/oss-sound/oss-linux-free/rc.oss-linux-free @@ -0,0 +1,73 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +terminateapps() { +    # Thanks to the Gentoo ebuild/start script for the following +    # http://bugs.gentoo.org/show_bug.cgi?id=184123 +    # http://bugs.gentoo.org/attachment.cgi?id=153689 +    devs=`perl -e '{while (<>) {m/^(\S*)/; print "/dev/$1\n"}}' \ +		< /proc/opensound/devfiles` +    fuser -k ${devs}  >/dev/null 2>/dev/null +} + +case "$1" in +  start) +    stat_busy "Starting OSS/Open source driver" +    # start +    /usr/sbin/soundon +    if [ $? -gt 0 ]; then +      stat_fail +    else +      grep '^softoss' /proc/modules >/dev/null 2>/dev/null +      if [ $? -eq 0 ]; then +        stat_busy "Replacing old \"softoss\" module with \"vmix\"" +        rmmod softoss +        modprobe vmix +        sed -i 's/^softoss.*$/vmix/' /usr/lib/oss/etc/installed_drivers +      fi +      add_daemon oss-linux-free +      stat_done +    fi +    ;; +  stop) +    stat_busy "Saving OSS mixer" +    /usr/sbin/savemixer +    if [ $? -gt 0 ]; then +      stat_fail +    else +      stat_done +    fi +    grep '^"cuckoo"' /proc/modules >/dev/null 2>/dev/null +    if [ $? -eq 0 ]; then +      stat_busy "Removing \"cuckoo\" module" +      rmmod cuckoo +    fi +    stat_busy "Killing processes using OSS" +    terminateapps +    stat_done +    # It doesn't matter if it didnt kill anything! +    stat_busy "Stopping OSS/Open source driver" +    /usr/sbin/soundoff +    if [ $? -gt 0 ]; then +      stat_fail +    else +      rm_daemon oss-linux-free +      stat_done +    fi +    ;; +  restart) +    $0 stop +    sleep 1 +    $0 start +    ;; +  terminateapps) +    stat_busy "Killing processes using OSS" +    terminateapps +    stat_done +    # It doesn't matter if it didnt kill anything! +  ;; +  *) +    echo "usage: $0 {start|stop|restart|terminateapps}" +esac  | 
