Async 1.5.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Async::AudioDevice Class Referenceabstract

Base class for handling audio devices. More...

#include <AsyncAudioDevice.h>

Inheritance diagram for Async::AudioDevice:

Public Types

enum  Mode { MODE_NONE , MODE_RD , MODE_WR , MODE_RDWR }
 The different modes to open a device in. More...
 

Public Member Functions

virtual int readBlocksize (void)=0
 Find out what the read (recording) blocksize is set to.
 
virtual int writeBlocksize (void)=0
 Find out what the write (playback) blocksize is set to.
 
virtual bool isFullDuplexCapable (void)=0
 Check if the audio device has full duplex capability.
 
bool open (Mode mode)
 Open the audio device.
 
void close (void)
 Close the audio device.
 
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.
 
virtual void flushSamples (void)=0
 
virtual int samplesToWrite (void) const =0
 Find out how many samples there are in the output buffer.
 
int sampleRate (void) const
 Return the sample rate.
 
const std::string & devName (void) const
 Return the device name.
 

Static Public Member Functions

static AudioDeviceregisterAudioIO (const std::string &dev_designator, AudioIO *audio_io)
 Register an AudioIO object with the given device name.
 
static void unregisterAudioIO (AudioIO *audio_io)
 Unregister a previously registered AudioIO object.
 
static void setSampleRate (int rate)
 Set the sample rate used when doing future opens.
 
static void setBlocksize (int size)
 Set the blocksize used when opening audio devices.
 
static void setBlockCount (int count)
 Set the buffer count used when opening audio devices.
 
static void setChannels (int channels)
 Set the number of channels used when doing future opens.
 

Protected Member Functions

 AudioDevice (const std::string &dev_name)
 Constuctor.
 
virtual ~AudioDevice (void)
 Destructor.
 
virtual bool openDevice (Mode mode)=0
 Open the audio device.
 
virtual void closeDevice (void)=0
 Close the audio device.
 
void putBlocks (int16_t *buf, int frame_cnt)
 
int getBlocks (int16_t *buf, int block_cnt)
 

Protected Attributes

std::string dev_name
 

Static Protected Attributes

static int sample_rate
 
static int block_size_hint
 
static int block_count_hint
 
static int channels
 

Detailed Description

Base class for handling audio devices.

Author
Tobias Blomberg / SM0SVX
Date
2004-03-20

This class implements a base class for supporting different audio devices. This class is not intended to be used by the end user of the Async library. It is used by the Async::AudioIO class, which is the Async API frontend for using audio in an application.

Definition at line 122 of file AsyncAudioDevice.h.

Member Enumeration Documentation

◆ Mode

The different modes to open a device in.

Enumerator
MODE_NONE 

No mode. The same as close.

MODE_RD 

Read.

MODE_WR 

Write.

MODE_RDWR 

Both read and write.

Definition at line 128 of file AsyncAudioDevice.h.

Constructor & Destructor Documentation

◆ AudioDevice()

Async::AudioDevice::AudioDevice ( const std::string &  dev_name)
explicitprotected

Constuctor.

Parameters
dev_nameThe name of the device to associate this object with

◆ ~AudioDevice()

virtual Async::AudioDevice::~AudioDevice ( void  )
protectedvirtual

Destructor.

Member Function Documentation

◆ audioToWriteAvailable()

virtual void Async::AudioDevice::audioToWriteAvailable ( void  )
pure virtual

Tell the audio device handler that there are audio to be written in the buffer.

◆ close()

void Async::AudioDevice::close ( void  )

Close the audio device.

◆ closeDevice()

virtual void Async::AudioDevice::closeDevice ( void  )
protectedpure virtual

Close the audio device.

◆ devName()

const std::string & Async::AudioDevice::devName ( void  ) const
inline

Return the device name.

Returns
Returns the device name

Definition at line 289 of file AsyncAudioDevice.h.

References dev_name.

◆ flushSamples()

virtual void Async::AudioDevice::flushSamples ( void  )
pure virtual

◆ getBlocks()

int Async::AudioDevice::getBlocks ( int16_t *  buf,
int  block_cnt 
)
protected

◆ isFullDuplexCapable()

virtual bool Async::AudioDevice::isFullDuplexCapable ( void  )
pure virtual

Check if the audio device has full duplex capability.

Returns
Returns true if the device has full duplex capability or else false

◆ mode()

Mode Async::AudioDevice::mode ( void  ) const
inline

Get the current operating mode of this audio device.

Returns
Returns the current mode (See AudioIO::Mode)

Definition at line 254 of file AsyncAudioDevice.h.

◆ open()

bool Async::AudioDevice::open ( Mode  mode)

Open the audio device.

Parameters
modeThe mode to open the audio device in (See AudioIO::Mode)
Returns
Returns true on success or else false

◆ openDevice()

virtual bool Async::AudioDevice::openDevice ( Mode  mode)
protectedpure virtual

Open the audio device.

Parameters
modeThe mode to open the audio device in (See AudioIO::Mode)
Returns
Returns true on success or else false

◆ putBlocks()

void Async::AudioDevice::putBlocks ( int16_t *  buf,
int  frame_cnt 
)
protected

◆ readBlocksize()

virtual int Async::AudioDevice::readBlocksize ( void  )
pure virtual

Find out what the read (recording) blocksize is set to.

Returns
Returns the currently set blocksize in samples per channel

◆ registerAudioIO()

static AudioDevice * Async::AudioDevice::registerAudioIO ( const std::string &  dev_designator,
AudioIO audio_io 
)
static

Register an AudioIO object with the given device name.

Parameters
dev_designatorThe name of the audio device
audio_ioA previously created AudioIO object
Returns
Returns an AudioDevice object associated with the given device

This function is used to register an AudioIO object with the given audio device. If an AudioDevice object already exist for the given device, it is returned. If there is no AudioDevice object for the given device, a new one is created.

◆ sampleRate()

int Async::AudioDevice::sampleRate ( void  ) const
inline

Return the sample rate.

Returns
Returns the sample rate

Definition at line 283 of file AsyncAudioDevice.h.

References sample_rate.

◆ samplesToWrite()

virtual int Async::AudioDevice::samplesToWrite ( void  ) const
pure virtual

Find out how many samples there are in the output buffer.

Returns
Returns the number of samples in the output buffer on success or -1 on failure.

This function can be used to find out how many samples there are in the output buffer at the moment. This can for example be used to find out how long it will take before the output buffer has been flushed.

◆ setBlockCount()

static void Async::AudioDevice::setBlockCount ( int  count)
inlinestatic

Set the buffer count used when opening audio devices.

Parameters
countThe buffer count to use
Returns
Returns the buffer count actually set

Use this function to set the buffer count used when opening audio devices. The buffer count is the maximum number of blocks the driver will buffer when reading and writing audio to/from the sound card. Lower numbers give less delay but could cause choppy audio if the computer is too slow. This is a global setting so all sound cards will be affected. Already opened sound cards will not be affected.

Definition at line 211 of file AsyncAudioDevice.h.

References block_count_hint.

◆ setBlocksize()

static void Async::AudioDevice::setBlocksize ( int  size)
inlinestatic

Set the blocksize used when opening audio devices.

Parameters
sizeThe blocksize, in samples per channel, to use
Returns
Returns the blocksize actually set

Use this function to set the block size used when opening audio devices. The block size is the size of the blocks used when reading and writing audio to/from the sound card. Smaller blocks give less delay but could cause choppy audio if the computer is too slow. The blocksize is set as samples per channel. For example, a blocksize of 256 samples at 8kHz sample rate will give a delay of 256/8000 = 32ms. This is a global setting so all sound cards will be affected. Already opened sound cards will not be affected.

Definition at line 181 of file AsyncAudioDevice.h.

References block_size_hint.

◆ setChannels()

static void Async::AudioDevice::setChannels ( int  channels)
inlinestatic

Set the number of channels used when doing future opens.

Parameters
channelsThe number of channels to use

Use this function to set the number of channels used when opening audio devices. This is a global setting so all sound cards will be affected. Already opened sound cards will not be affected.

Definition at line 225 of file AsyncAudioDevice.h.

References channels.

◆ setSampleRate()

static void Async::AudioDevice::setSampleRate ( int  rate)
inlinestatic

Set the sample rate used when doing future opens.

Parameters
rateThe sampling rate to use

Use this function to set the sample rate used when opening audio devices. This is a global setting so all sound cards will be affected. Already opened sound cards will not be affected.

Definition at line 165 of file AsyncAudioDevice.h.

References sample_rate.

◆ unregisterAudioIO()

static void Async::AudioDevice::unregisterAudioIO ( AudioIO audio_io)
static

Unregister a previously registered AudioIO object.

Parameters
audio_ioA previously registered AudioIO object

◆ writeBlocksize()

virtual int Async::AudioDevice::writeBlocksize ( void  )
pure virtual

Find out what the write (playback) blocksize is set to.

Returns
Returns the currently set blocksize in samples per channel

Member Data Documentation

◆ block_count_hint

int Async::AudioDevice::block_count_hint
staticprotected

Definition at line 295 of file AsyncAudioDevice.h.

Referenced by setBlockCount().

◆ block_size_hint

int Async::AudioDevice::block_size_hint
staticprotected

Definition at line 294 of file AsyncAudioDevice.h.

Referenced by setBlocksize().

◆ channels

int Async::AudioDevice::channels
staticprotected

Definition at line 296 of file AsyncAudioDevice.h.

Referenced by setChannels().

◆ dev_name

std::string Async::AudioDevice::dev_name
protected

Definition at line 298 of file AsyncAudioDevice.h.

Referenced by devName().

◆ sample_rate

int Async::AudioDevice::sample_rate
staticprotected

Definition at line 293 of file AsyncAudioDevice.h.

Referenced by sampleRate(), and setSampleRate().


The documentation for this class was generated from the following file: