*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 06 Dec 2000 00:17:21 +0100
changeset 932 1c9375cf97fc
parent 931 60a44b4aa743
child 933 8e83f928d049
*** empty log message ***
SoundStream.st
--- a/SoundStream.st	Fri Dec 01 18:15:49 2000 +0100
+++ b/SoundStream.st	Wed Dec 06 00:17:21 2000 +0100
@@ -266,6 +266,19 @@
 
 !SoundStream class methodsFor:'instance creation'!
 
+readWrite
+    "create and return a new soundStream for readWrite (i.e. filtering)"
+
+    |newStream|
+    newStream := (self basicNew) initialize.
+    newStream openForReadWrite isNil ifTrue:[^nil].
+    newStream buffered:false.
+    newStream binary.
+    ^ newStream
+
+    "SoundStream readWrite"
+!
+
 reading
     "create and return a new soundStream for reading (i.e. recording)"
 
@@ -2067,6 +2080,17 @@
     ^ super nextPutBytes:count from:anObject startingAt:start
 !
 
+openForReadWrite
+    |rslt|
+
+    mode := #readWrite.
+    didWrite := false.
+    (rslt :=  self openWithMode:ReadWriteMode) notNil ifTrue:[
+        Lobby register:self
+    ].
+    ^ rslt
+!
+
 openForReading
     |rslt|
 
@@ -2382,6 +2406,15 @@
                 __INST(buffered) = false;
                 __INST(filePointer) = __MKOBJ(f);
                 __STORESELF(filePointer);
+
+                if (__mode == O_RDWR) {
+                    int enable_bits = ~(PCM_ENABLE_OUTPUT|PCM_ENABLE_INPUT);
+
+                    if (ioctl(__fd, SNDCTL_DSP_SETTRIGGER, &enable_bits) == -1)
+                    {
+                        fprintf(stderr, "can't request synchronous start of fullduplex operation");
+                    }
+                }
                 RETURN (self);
             }
         }
@@ -2665,6 +2698,6 @@
 !SoundStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic2/SoundStream.st,v 1.56 2000-11-24 23:41:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic2/SoundStream.st,v 1.57 2000-12-05 23:17:21 cg Exp $'
 ! !
 SoundStream initialize!