eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'SoundStream::PortAudio':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: PortAudio (private in SoundStream

This class is only visible from within SoundStream.

Inheritance:

   Object
   |
   +--Stream
      |
      +--PeekableStream
         |
         +--PositionableStream
            |
            +--WriteStream
               |
               +--ReadWriteStream
                  |
                  +--ExternalStream
                     |
                     +--FileStream
                        |
                        +--SoundStream
                           |
                           +--SoundStream::PortAudio

Package:
stx:libbasic2
Category:
Streams-External
Owner:
SoundStream

Description:


interface to the portaudio library


Class protocol:

class initialization
o  primitiveInitializeDevice

default values
o  defaultSampleRate
minimum, supported by all audio systems

queries
o  defaultAudioFormat

o  isSupported
SoundStream::PortAudio isSupported
SoundStream::CoreAudio isSupported
SoundStream::JackAudio isSupported


Instance protocol:

misc
o  flush
wait until all sound has been played

o  hasOutputPending

o  isLocked

o  outputBuffersPending

o  outputBytesPending

open & close
o  closeFile
a stream has been collected - close the file

o  openWithMode: aMode attributes: attributeSpec
normally not reached

o  reopenStream

private
o  initialize
initialize for least common mode

o  setAudioFormat: aSymbol
(comment from inherited method)
set the format of the audio data as specified by aSymbol.
Returns true if sucessful - may fail with some formats on many sound devices.

o  setChannels: numChannels
(comment from inherited method)
set the number of channels (1 -> mono; 2 -> stereo).
Returns true if sucessful - may fail with many sound devices.

o  setFragmentSize: blockSize
(comment from inherited method)
set the soundDriver's fragmentSize

o  setSampleRate: hz
(comment from inherited method)
set the sample rate

o  setSampleRate: hz channels: numChannels
(comment from inherited method)
set the sample rate and number of channels

queries
o  supportedAudioFormats
return a collection of supported audio formats.
possibly returned symbols are:
U8 unsigned 8bit samples
S8 signed 8bit samples
U16 unsigned 16bit samples in native format
U16_LE unsigned 16bit big endian samples
U16_BE unsigned 16bit big endian samples
S16 signed 16bit little endian samples in native format
S16_LE signed 16bit little endian samples
S16_BE signed 16bit big endian samples
S24 signed 24bit little endian samples in native format
S24_LE signed 24bit little endian samples
S24_BE signed 24bit big endian samples
S32 signed 32bit little endian samples in native format
S32_LE signed 32bit little endian samples
S32_BE signed 32bit big endian samples
F16 float samples
F32 float samples
MPEG audio mpeg encoded
MU_LAW u-law encoded 8bit samples
A_LAW a-law encoded 8bit samples
IMA_ADPCM adpcm encoded
the set of returned symbols depends on the underlying sound hardware.

Usage example(s):

     |s formats|

     s := SoundStream writing.
     formats := s supportedAudioFormats.
     s close.
     formats

reading
o  nextBytes: count into: anObject startingAt: start
read the next count bytes into an object and return the number of
bytes read or nil on error.
Use with ByteArrays only.

writing
o  nextPutBytes: count from: anObject startingAt: start
write count bytes from an object starting at index start.
return the number of bytes written or nil on error.
Redefined, since IRIS audio library cannot be used with stdio.
(at least I don't know). Use with ByteArrays only.



ST/X 7.7.0.0; WebServer 1.702 at 20f6060372b9.unknown:8081; Fri, 18 Oct 2024 13:23:59 GMT