JUCE  v5.1.1-3-g1a0b28c73
JUCE API
AudioIODevice Class Referenceabstract

Base class for an audio device with synchronised input and output channels. More...

#include <juce_AudioIODevice.h>

Inheritance diagram for AudioIODevice:
Collaboration diagram for AudioIODevice:

Public Member Functions

virtual ~AudioIODevice ()
 Destructor. More...
 
virtual void close ()=0
 Closes and releases the device if it's open. More...
 
virtual BigInteger getActiveInputChannels () const =0
 Returns a mask showing which of the available input channels are currently enabled. More...
 
virtual BigInteger getActiveOutputChannels () const =0
 Returns a mask showing which of the available output channels are currently enabled. More...
 
virtual Array< intgetAvailableBufferSizes ()=0
 Returns the set of buffer sizes that are available. More...
 
virtual Array< double > getAvailableSampleRates ()=0
 Returns the set of sample-rates this device supports. More...
 
virtual int getCurrentBitDepth ()=0
 Returns the device's current physical bit-depth. More...
 
virtual int getCurrentBufferSizeSamples ()=0
 Returns the buffer size that the device is currently using. More...
 
virtual double getCurrentSampleRate ()=0
 Returns the sample rate that the device is currently using. More...
 
virtual int getDefaultBufferSize ()=0
 Returns the default buffer-size to use. More...
 
virtual StringArray getInputChannelNames ()=0
 Returns the names of all the available input channels on this device. More...
 
virtual int getInputLatencyInSamples ()=0
 Returns the device's input latency. More...
 
virtual String getLastError ()=0
 Returns the last error that happened if anything went wrong. More...
 
const StringgetName () const noexcept
 Returns the device's name, (as set in the constructor). More...
 
virtual StringArray getOutputChannelNames ()=0
 Returns the names of all the available output channels on this device. More...
 
virtual int getOutputLatencyInSamples ()=0
 Returns the device's output latency. More...
 
const StringgetTypeName () const noexcept
 Returns the type of the device. More...
 
virtual bool hasControlPanel () const
 True if this device can show a pop-up control panel for editing its settings. More...
 
virtual bool isOpen ()=0
 Returns true if the device is still open. More...
 
virtual bool isPlaying ()=0
 Returns true if the device is still calling back. More...
 
virtual String open (const BigInteger &inputChannels, const BigInteger &outputChannels, double sampleRate, int bufferSizeSamples)=0
 Tries to open the device ready to play. More...
 
virtual bool setAudioPreprocessingEnabled (bool shouldBeEnabled)
 On devices which support it, this allows automatic gain control or other mic processing to be disabled. More...
 
virtual bool showControlPanel ()
 Shows a device-specific control panel if there is one. More...
 
virtual void start (AudioIODeviceCallback *callback)=0
 Starts the device actually playing. More...
 
virtual void stop ()=0
 Stops the device playing. More...
 

Protected Member Functions

 AudioIODevice (const String &deviceName, const String &typeName)
 Creates a device, setting its name and type member variables. More...
 

Protected Attributes

String name
 
String typeName
 

Detailed Description

Base class for an audio device with synchronised input and output channels.

Subclasses of this are used to implement different protocols such as DirectSound, ASIO, CoreAudio, etc.

To create one of these, you'll need to use the AudioIODeviceType class - see the documentation for that class for more info.

For an easier way of managing audio devices and their settings, have a look at the AudioDeviceManager class.

See also
AudioIODeviceType, AudioDeviceManager

Constructor & Destructor Documentation

◆ ~AudioIODevice()

virtual AudioIODevice::~AudioIODevice ( )
virtual

Destructor.

◆ AudioIODevice()

AudioIODevice::AudioIODevice ( const String deviceName,
const String typeName 
)
protected

Creates a device, setting its name and type member variables.

Member Function Documentation

◆ close()

virtual void AudioIODevice::close ( )
pure virtual

Closes and releases the device if it's open.

Implemented in iOSAudioIODevice.

◆ getActiveInputChannels()

virtual BigInteger AudioIODevice::getActiveInputChannels ( ) const
pure virtual

Returns a mask showing which of the available input channels are currently enabled.

See also
getInputChannelNames

Implemented in iOSAudioIODevice.

Referenced by StandalonePluginHolder::audioDeviceAboutToStart().

◆ getActiveOutputChannels()

virtual BigInteger AudioIODevice::getActiveOutputChannels ( ) const
pure virtual

Returns a mask showing which of the available output channels are currently enabled.

See also
getOutputChannelNames

Implemented in iOSAudioIODevice.

◆ getAvailableBufferSizes()

virtual Array<int> AudioIODevice::getAvailableBufferSizes ( )
pure virtual

Returns the set of buffer sizes that are available.

See also
getCurrentBufferSizeSamples, getDefaultBufferSize

Implemented in iOSAudioIODevice.

◆ getAvailableSampleRates()

virtual Array<double> AudioIODevice::getAvailableSampleRates ( )
pure virtual

Returns the set of sample-rates this device supports.

See also
getCurrentSampleRate

Implemented in iOSAudioIODevice.

◆ getCurrentBitDepth()

virtual int AudioIODevice::getCurrentBitDepth ( )
pure virtual

Returns the device's current physical bit-depth.

If the device isn't actually open, this value doesn't really mean much.

Implemented in iOSAudioIODevice.

◆ getCurrentBufferSizeSamples()

virtual int AudioIODevice::getCurrentBufferSizeSamples ( )
pure virtual

Returns the buffer size that the device is currently using.

If the device isn't actually open, this value doesn't really mean much.

Implemented in iOSAudioIODevice.

Referenced by StandalonePluginHolder::audioDeviceAboutToStart().

◆ getCurrentSampleRate()

virtual double AudioIODevice::getCurrentSampleRate ( )
pure virtual

Returns the sample rate that the device is currently using.

If the device isn't actually open, this value doesn't really mean much.

Implemented in iOSAudioIODevice.

◆ getDefaultBufferSize()

virtual int AudioIODevice::getDefaultBufferSize ( )
pure virtual

Returns the default buffer-size to use.

Returns
a number of samples
See also
getAvailableBufferSizes

Implemented in iOSAudioIODevice.

◆ getInputChannelNames()

virtual StringArray AudioIODevice::getInputChannelNames ( )
pure virtual

Returns the names of all the available input channels on this device.

To find out which of these are currently in use, call getActiveInputChannels().

Implemented in iOSAudioIODevice.

◆ getInputLatencyInSamples()

virtual int AudioIODevice::getInputLatencyInSamples ( )
pure virtual

Returns the device's input latency.

This is the delay in samples between some audio actually arriving at the soundcard, and the callback getting passed this block of data.

Implemented in iOSAudioIODevice.

◆ getLastError()

virtual String AudioIODevice::getLastError ( )
pure virtual

Returns the last error that happened if anything went wrong.

Implemented in iOSAudioIODevice.

◆ getName()

const String& AudioIODevice::getName ( ) const
inlinenoexcept

Returns the device's name, (as set in the constructor).

◆ getOutputChannelNames()

virtual StringArray AudioIODevice::getOutputChannelNames ( )
pure virtual

Returns the names of all the available output channels on this device.

To find out which of these are currently in use, call getActiveOutputChannels().

Implemented in iOSAudioIODevice.

◆ getOutputLatencyInSamples()

virtual int AudioIODevice::getOutputLatencyInSamples ( )
pure virtual

Returns the device's output latency.

This is the delay in samples between a callback getting a block of data, and that data actually getting played.

Implemented in iOSAudioIODevice.

◆ getTypeName()

const String& AudioIODevice::getTypeName ( ) const
inlinenoexcept

Returns the type of the device.

E.g. "CoreAudio", "ASIO", etc. - this comes from the AudioIODeviceType that created it.

◆ hasControlPanel()

virtual bool AudioIODevice::hasControlPanel ( ) const
virtual

True if this device can show a pop-up control panel for editing its settings.

This is generally just true of ASIO devices. If true, you can call showControlPanel() to display it.

◆ isOpen()

virtual bool AudioIODevice::isOpen ( )
pure virtual

Returns true if the device is still open.

A device might spontaneously close itself if something goes wrong, so this checks if it's still open.

Implemented in iOSAudioIODevice.

◆ isPlaying()

virtual bool AudioIODevice::isPlaying ( )
pure virtual

Returns true if the device is still calling back.

The device might mysteriously stop, so this checks whether it's still playing.

Implemented in iOSAudioIODevice.

◆ open()

virtual String AudioIODevice::open ( const BigInteger inputChannels,
const BigInteger outputChannels,
double  sampleRate,
int  bufferSizeSamples 
)
pure virtual

Tries to open the device ready to play.

Parameters
inputChannelsa BigInteger in which a set bit indicates that the corresponding input channel should be enabled
outputChannelsa BigInteger in which a set bit indicates that the corresponding output channel should be enabled
sampleRatethe sample rate to try to use - to find out which rates are available, see getAvailableSampleRates()
bufferSizeSamplesthe size of i/o buffer to use - to find out the available buffer sizes, see getAvailableBufferSizes()
Returns
an error description if there's a problem, or an empty string if it succeeds in opening the device
See also
close

Implemented in iOSAudioIODevice.

◆ setAudioPreprocessingEnabled()

virtual bool AudioIODevice::setAudioPreprocessingEnabled ( bool  shouldBeEnabled)
virtual

On devices which support it, this allows automatic gain control or other mic processing to be disabled.

If the device doesn't support this operation, it'll return false.

Reimplemented in iOSAudioIODevice.

◆ showControlPanel()

virtual bool AudioIODevice::showControlPanel ( )
virtual

Shows a device-specific control panel if there is one.

This should only be called for devices which return true from hasControlPanel().

◆ start()

virtual void AudioIODevice::start ( AudioIODeviceCallback callback)
pure virtual

Starts the device actually playing.

This must be called after the device has been opened.

Parameters
callbackthe callback to use for streaming the data.
See also
AudioIODeviceCallback, open

Implemented in iOSAudioIODevice.

◆ stop()

virtual void AudioIODevice::stop ( )
pure virtual

Stops the device playing.

Once a device has been started, this will stop it. Any pending calls to the callback class will be flushed before this method returns.

Implemented in iOSAudioIODevice.

Member Data Documentation

◆ name

String AudioIODevice::name
protected

◆ typeName

String AudioIODevice::typeName
protected

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