26AudioIODeviceType::AudioIODeviceType (
const String& name)
31AudioIODeviceType::~AudioIODeviceType()
36void AudioIODeviceType::addListener (
Listener* l) { listeners.add (l); }
37void AudioIODeviceType::removeListener (
Listener* l) { listeners.remove (l); }
39void AudioIODeviceType::callDeviceChangeListeners()
46 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_CoreAudio() {
return new CoreAudioClasses::CoreAudioIODeviceType(); }
48 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_CoreAudio() {
return nullptr; }
52 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_iOSAudio() {
return new iOSAudioIODeviceType(); }
54 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_iOSAudio() {
return nullptr; }
57#if JUCE_WINDOWS && JUCE_WASAPI
58 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_WASAPI (WASAPIDeviceMode deviceMode)
60 auto windowsVersion = SystemStats::getOperatingSystemType();
62 if (windowsVersion < SystemStats::WinVista
63 || (WasapiClasses::isLowLatencyMode (deviceMode) && windowsVersion < SystemStats::Windows10))
66 return new WasapiClasses::WASAPIAudioIODeviceType (deviceMode);
69 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_WASAPI (
bool exclusiveMode)
71 return createAudioIODeviceType_WASAPI (exclusiveMode ? WASAPIDeviceMode::exclusive
72 : WASAPIDeviceMode::shared);
75 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_WASAPI (WASAPIDeviceMode) {
return nullptr; }
76 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_WASAPI (
bool) {
return nullptr; }
79#if JUCE_WINDOWS && JUCE_DIRECTSOUND
80 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_DirectSound() {
return new DSoundAudioIODeviceType(); }
82 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_DirectSound() {
return nullptr; }
85#if JUCE_WINDOWS && JUCE_ASIO
86 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_ASIO() {
return new ASIOAudioIODeviceType(); }
91#if (JUCE_LINUX || JUCE_BSD) && JUCE_ALSA
92 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_ALSA() {
return createAudioIODeviceType_ALSA_PCMDevices(); }
97#if (JUCE_LINUX || JUCE_BSD) && JUCE_JACK
98 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_JACK() {
return new JackAudioIODeviceType(); }
103#if JUCE_LINUX && JUCE_BELA
104 AudioIODeviceType* AudioIODeviceType::createAudioIODeviceType_Bela() {
return new BelaAudioIODeviceType(); }
112 #if JUCE_USE_ANDROID_OBOE
113 if (isOboeAvailable())
117 #if JUCE_USE_ANDROID_OPENSLES
118 if (isOpenSLAvailable())
122 return new AndroidAudioIODeviceType();
128#if JUCE_ANDROID && JUCE_USE_ANDROID_OPENSLES
131 return isOpenSLAvailable() ?
new OpenSLAudioDeviceType() : nullptr;
137#if JUCE_ANDROID && JUCE_USE_ANDROID_OBOE
140 return isOboeAvailable() ?
new OboeAudioIODeviceType() : nullptr;
virtual void audioDeviceListChanged()=0