28 #ifndef ASYNC_AUDIO_DEVICE_INCLUDED 29 #define ASYNC_AUDIO_DEVICE_INCLUDED 38 #include <sigc++/sigc++.h> 323 void putBlocks(int16_t *buf,
int frame_cnt);
324 int getBlocks(int16_t *buf,
int block_cnt);
328 static const int DEFAULT_SAMPLE_RATE = INTERNAL_SAMPLE_RATE;
329 static const int DEFAULT_CHANNELS = 2;
330 static const int DEFAULT_BLOCK_COUNT_HINT = 4;
331 static const int DEFAULT_BLOCK_SIZE_HINT = 256;
333 static std::map<std::string, AudioDevice*> devices;
337 std::list<AudioIO*> aios;
int getBlocks(int16_t *buf, int block_cnt)
virtual bool openDevice(Mode mode)=0
Open the audio device.
A class for handling audio input/output to an audio device.
virtual int samplesToWrite(void) const =0
Find out how many samples there are in the output buffer.
virtual void closeDevice(void)=0
Close the audio device.
virtual int readBlocksize(void)=0
Find out what the read (recording) blocksize is set to.
virtual void flushSamples(void)=0
virtual int writeBlocksize(void)=0
Find out what the write (playback) blocksize is set to.
static void setChannels(int channels)
Set the number of channels used when doing future opens.
No mode. The same as close.
Base class for handling audio devices.
virtual ~AudioDevice(void)
Destructor.
static AudioDevice * registerAudioIO(const std::string &dev_designator, AudioIO *audio_io)
Register an AudioIO object with the given device name.
Mode mode(void) const
Get the current operating mode of this audio device.
virtual void audioToWriteAvailable(void)=0
Tell the audio device handler that there are audio to be written in the buffer.
Namespace for the asynchronous programming classes.
void putBlocks(int16_t *buf, int frame_cnt)
bool open(Mode mode)
Open the audio device.
AudioDevice(const std::string &dev_name)
Constuctor.
int sampleRate(void) const
Return the sample rate.
static void setBlockCount(int count)
Set the buffer count used when opening audio devices.
static int block_count_hint
static void setSampleRate(int rate)
Set the sample rate used when doing future opens.
static void unregisterAudioIO(AudioIO *audio_io)
Unregister a previously registered AudioIO object.
static int block_size_hint
virtual bool isFullDuplexCapable(void)=0
Check if the audio device has full duplex capability.
void close(void)
Close the audio device.
static void setBlocksize(int size)
Set the blocksize used when opening audio devices.
const std::string & devName(void) const
Return the device name.
Mode
The different modes to open a device in.