]> git.pld-linux.org Git - packages/alsa-utils.git/commitdiff
- Added support for forcing non-blocking open(2) of /dev/dsp.
authormkochano <mkochano@pld-linux.org>
Sat, 9 Feb 2002 14:37:16 +0000 (14:37 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    alsasound -> 1.3

alsasound

index e5ee060ae588e5ac759eefdbce6eeb3bde63ccac..aaef45654f6854f61e8b0cd5f930b9e15b32ac4c 100644 (file)
--- a/alsasound
+++ b/alsasound
@@ -43,17 +43,31 @@ driver_start()
   #
   # insert all sound modules
   #
-  if OLDLOGLEV=$(cat /proc/sys/kernel/printk | awk '{print $1}' 2> /dev/null); then
+  if OLDLOGLEV=$(awk '{print $1}' < /proc/sys/kernel/printk 2> /dev/null); then
        /sbin/loglevel 1
   fi
-  cat $MODULES_CONF | grep -v "off" | \
-    grep -E "^alias.+snd-card-[[:digit:]]" | \
-    awk '{print $3}' | \
+  awk '$1 == "alias" && $3 != "off" && ($2 ~ /^snd-card-[0-9]$/ || $2 ~ /^sound-service-[0-9]-[0-9]+$/) {print $2}' < $MODULES_CONF | \
     while read line; do \
-      show "Starting sound driver: $line " ; \
-      /sbin/modprobe $line; \
-      ok; \
+      show "Starting sound driver: $line"
+      busy
+      /sbin/modprobe $line
+      ok
     done
+  #
+  # set (non-)blocking state of pcm devices
+  #
+  for card in /proc/asound/[0-9]; do
+    card=`echo $card | awk '{ sub(/^.*\//, ""); print $0 }'`
+    for dev in /proc/asound/$card/pcmD[0-9]o; do
+      dev=`echo $dev | awk '{ sub(/^.*pcmD/, ""); sub(/o$/, ""); print $0 }'`
+      show "Setting up blocking state for card $card device $dev"
+      busy
+      echo "Playback erase" > /proc/asound/$card/pcmD${dev}o
+      echo "Capture erase" > /proc/asound/$card/pcmD${dev}o
+      awk -v CARD=$card '($1 ~ CARD || $1 ~ /\*/) { $1 = ""; sub(/^ /, ""); print $0}' < /etc/sysconfig/alsa-oss-pcm > /proc/asound/$card/pcmD${dev}o
+      ok
+    done
+  done
   if [ -n "$OLDLOGLEV" ]; then
        /sbin/loglevel "$OLDLOGLEV"
   fi
@@ -72,7 +86,7 @@ detect_stop()
   #
   # remove all sound modules
   #
-  /sbin/lsmod | grep -E "^snd" | while read line; do \
+  /sbin/lsmod | awk '/^snd/ { print $0 }' | while read line; do \
      /sbin/rmmod `echo $line | cut -d ' ' -f 1`; \
   done
 }
@@ -128,6 +142,7 @@ case "$1" in
         # Stop daemons.
        if [ -d /proc/asound ]; then
           show "Shutting down sound driver:"
+         busy
          if [ -f /proc/asound/detect ]; then
            detect_stop
          else
This page took 0.040814 seconds and 4 git commands to generate.