# HG changeset patch # User Claus Gittinger # Date 976058241 -3600 # Node ID 1c9375cf97fc206cb8c973badad9ef5dbdec439b # Parent 60a44b4aa7439d2391406f60e777a10d9527b252 *** empty log message *** diff -r 60a44b4aa743 -r 1c9375cf97fc 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!