Loading...
Searching...
No Matches
juce::AudioIODeviceType Class Referenceabstract

## Detailed Description

Represents a type of audio driver, such as DirectSound, ASIO, CoreAudio, etc.

To get a list of available audio driver types, use the AudioDeviceManager::createAudioDeviceTypes() method. Each of the objects returned can then be used to list the available devices of that type. E.g.

OwnedArray<AudioIODeviceType> types;
myAudioDeviceManager.createAudioDeviceTypes (types);
for (int i = 0; i < types.size(); ++i)
{
String typeName (types[i]->getTypeName()); // This will be things like "DirectSound", "CoreAudio", etc.
types[i]->scanForDevices(); // This must be called before getting the list of devices
StringArray deviceNames (types[i]->getDeviceNames()); // This will now return a list of available devices of this type
for (int j = 0; j < deviceNames.size(); ++j)
{
AudioIODevice* device = types[i]->createDevice (deviceNames [j]);
...
}
}
juce::AudioIODeviceType::getDeviceNames
virtual StringArray getDeviceNames(bool wantInputNames=false) const =0
Returns the list of available devices of this type.
juce::AudioIODeviceType::getTypeName
const String & getTypeName() const noexcept
Returns the name of this type of driver that this object manages.
Definition juce_AudioIODeviceType.h:81
juce::AudioIODevice
Base class for an audio device with synchronised input and output channels.
Definition juce_AudioIODevice.h:163
juce::OwnedArray
An array designed for holding objects.
Definition juce_OwnedArray.h:62
juce::OwnedArray::size
int size() const noexcept
Returns the number of items currently in the array.
Definition juce_OwnedArray.h:141
juce::StringArray
A special array for holding a list of strings.
Definition juce_StringArray.h:47
juce::String
The JUCE String class!
Definition juce_String.h:67

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

See also
  AudioIODevice, AudioDeviceManager

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

- juce_audio_devices/audio_io/juce_AudioIODeviceType.h

## Classes

class | Listener
| A class for receiving events when audio devices are inserted or removed. More...

## Public Member Functions

const String & | getTypeName () const noexcept
| Returns the name of this type of driver that this object manages.
virtual void | scanForDevices ()=0
| Refreshes the object's cached list of known devices.
virtual StringArray | getDeviceNames (bool wantInputNames=false) const =0
| Returns the list of available devices of this type.
virtual int | getDefaultDeviceIndex (bool forInput) const =0
| Returns the name of the default device.
virtual int | getIndexOfDevice (AudioIODevice *device, bool asInput) const =0
| Returns the index of a given device in the list of device names.
virtual bool | hasSeparateInputsAndOutputs () const =0
| Returns true if two different devices can be used for the input and output.
virtual AudioIODevice * | createDevice (const String &outputDeviceName, const String &inputDeviceName)=0
| Creates one of the devices of this type.
void | addListener (Listener *listener)
| Adds a listener that will be called when this type of device is added or removed from the system.
void | removeListener (Listener *listener)
| Removes a listener that was previously added with addListener().
virtual | ~AudioIODeviceType ()
| Destructor.

## Static Public Member Functions

static AudioIODeviceType * | createAudioIODeviceType_CoreAudio ()
| Creates a CoreAudio device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_iOSAudio ()
| Creates an iOS device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_WASAPI (WASAPIDeviceMode deviceMode)
| Creates a WASAPI device type in the specified mode if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_DirectSound ()
| Creates a DirectSound device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_ASIO ()
| Creates an ASIO device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_ALSA ()
| Creates an ALSA device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_JACK ()
| Creates a JACK device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_Android ()
| Creates an Android device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_OpenSLES ()
| Creates an Android OpenSLES device type if it's available on this platform, or returns null.
static AudioIODeviceType * | createAudioIODeviceType_Oboe ()
| Creates an Oboe device type if it's available on this platform, or returns null.

## Protected Member Functions

| AudioIODeviceType (const String &typeName)
void | callDeviceChangeListeners ()
| Synchronously calls all the registered device list change listeners.

## Constructors and Destructors

## ~AudioIODeviceType()

virtual juce::AudioIODeviceType::~AudioIODeviceType | ( |  | ) |

virtual

Destructor.

## AudioIODeviceType()

juce::AudioIODeviceType::AudioIODeviceType | ( | const String & | typeName | ) |

explicit protected

Referenced by callDeviceChangeListeners(), createAudioIODeviceType_ALSA(), createAudioIODeviceType_Android(), createAudioIODeviceType_ASIO(), createAudioIODeviceType_CoreAudio(), createAudioIODeviceType_DirectSound(), createAudioIODeviceType_iOSAudio(), createAudioIODeviceType_JACK(), createAudioIODeviceType_Oboe(), createAudioIODeviceType_OpenSLES(), and createAudioIODeviceType_WASAPI().

## Member Functions

## getTypeName()

const String & juce::AudioIODeviceType::getTypeName | ( |  | ) | const

inline noexcept

Returns the name of this type of driver that this object manages.

This will be something like "DirectSound", "ASIO", "CoreAudio", "ALSA", etc.

## scanForDevices()

virtual void juce::AudioIODeviceType::scanForDevices | ( |  | ) |

pure virtual

Refreshes the object's cached list of known devices.

This must be called at least once before calling getDeviceNames() or any of the other device creation methods.

## getDeviceNames()

virtual StringArray juce::AudioIODeviceType::getDeviceNames | ( | bool | wantInputNames = false | ) | const

pure virtual

Returns the list of available devices of this type.

The scanForDevices() method must have been called to create this list.

Parameters

  wantInputNames | for devices which have separate inputs and outputs this determines which list of names is returned

## getDefaultDeviceIndex()

virtual int juce::AudioIODeviceType::getDefaultDeviceIndex | ( | bool | forInput | ) | const

pure virtual

Returns the name of the default device.

This will be one of the names from the getDeviceNames() list.

Parameters

  forInput | if true, this means that a default input device should be returned; if false, it should return the default output

## getIndexOfDevice()

virtual int juce::AudioIODeviceType::getIndexOfDevice | ( | AudioIODevice * | device,
|  | bool | asInput ) const

pure virtual

Returns the index of a given device in the list of device names.

If asInput is true, it shows the index in the inputs list, otherwise it looks for it in the outputs list.

## hasSeparateInputsAndOutputs()

virtual bool juce::AudioIODeviceType::hasSeparateInputsAndOutputs | ( |  | ) | const

pure virtual

Returns true if two different devices can be used for the input and output.

## createDevice()

virtual AudioIODevice * juce::AudioIODeviceType::createDevice | ( | const String & | outputDeviceName,
|  | const String & | inputDeviceName )

pure virtual

Creates one of the devices of this type.

The deviceName must be one of the strings returned by getDeviceNames(), and scanForDevices() must have been called before this method is used.

## addListener()

void juce::AudioIODeviceType::addListener | ( | Listener * | listener | ) |

Adds a listener that will be called when this type of device is added or removed from the system.

## removeListener()

void juce::AudioIODeviceType::removeListener | ( | Listener * | listener | ) |

Removes a listener that was previously added with addListener().

## createAudioIODeviceType_CoreAudio()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_CoreAudio | ( |  | ) |

static

Creates a CoreAudio device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_iOSAudio()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_iOSAudio | ( |  | ) |

static

Creates an iOS device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_WASAPI()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_WASAPI | ( | WASAPIDeviceMode | deviceMode | ) |

static

Creates a WASAPI device type in the specified mode if it's available on this platform, or returns null.

References AudioIODeviceType().

Referenced by createAudioIODeviceType_Oboe().

## createAudioIODeviceType_DirectSound()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_DirectSound | ( |  | ) |

static

Creates a DirectSound device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_ASIO()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_ASIO | ( |  | ) |

static

Creates an ASIO device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_ALSA()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_ALSA | ( |  | ) |

static

Creates an ALSA device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_JACK()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_JACK | ( |  | ) |

static

Creates a JACK device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_Android()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_Android | ( |  | ) |

static

Creates an Android device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_OpenSLES()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_OpenSLES | ( |  | ) |

static

Creates an Android OpenSLES device type if it's available on this platform, or returns null.

References AudioIODeviceType().

## createAudioIODeviceType_Oboe()

AudioIODeviceType * juce::AudioIODeviceType::createAudioIODeviceType_Oboe | ( |  | ) |

static

Creates an Oboe device type if it's available on this platform, or returns null.

References AudioIODeviceType(), and createAudioIODeviceType_WASAPI().

## callDeviceChangeListeners()

void juce::AudioIODeviceType::callDeviceChangeListeners | ( |  | ) |

protected

Synchronously calls all the registered device list change listeners.

References AudioIODeviceType().

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited