23#ifdef JUCE_AUDIO_DEVICES_H_INCLUDED
29 #error "Incorrect use of JUCE cpp file"
32#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1
33#define JUCE_CORE_INCLUDE_COM_SMART_PTR 1
34#define JUCE_CORE_INCLUDE_JNI_HELPERS 1
35#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1
36#define JUCE_EVENTS_INCLUDE_WIN32_MESSAGE_WINDOW 1
38#ifndef JUCE_USE_WINRT_MIDI
39 #define JUCE_USE_WINRT_MIDI 0
42#if JUCE_USE_WINRT_MIDI
43 #define JUCE_EVENTS_INCLUDE_WINRT_WRAPPER 1
46#include "juce_audio_devices.h"
48#include "audio_io/juce_SampleRateHelpers.cpp"
49#include "midi_io/juce_MidiDevices.cpp"
52#if JUCE_MAC || JUCE_IOS
53 #include <juce_audio_basics/native/juce_CoreAudioTimeConversions_mac.h>
54 #include <juce_audio_basics/native/juce_AudioWorkgroup_mac.h>
55 #include <juce_audio_basics/midi/juce_MidiDataConcatenator.h>
56 #include <juce_audio_basics/midi/ump/juce_UMP.h>
57 #include "midi_io/ump/juce_UMPBytestreamInputHandler.h"
58 #include "midi_io/ump/juce_UMPU32InputHandler.h"
62 #define Point CarbonDummyPointName
63 #define Component CarbonDummyCompName
64 #import <CoreAudio/AudioHardware.h>
65 #import <CoreMIDI/MIDIServices.h>
66 #import <AudioToolbox/AudioServices.h>
70 #include "native/juce_CoreAudio_mac.cpp"
71 #include "native/juce_CoreMidi_mac.mm"
74 #import <AudioToolbox/AudioToolbox.h>
75 #import <AVFoundation/AVFoundation.h>
76 #import <CoreMIDI/MIDIServices.h>
78 #if TARGET_OS_SIMULATOR
79 #import <CoreMIDI/MIDINetworkSession.h>
82 #if JUCE_MODULE_AVAILABLE_juce_graphics
83 #include <juce_graphics/native/juce_CoreGraphicsHelpers_mac.h>
86 #include "native/juce_Audio_ios.cpp"
87 #include "native/juce_CoreMidi_mac.mm"
93 #include "native/juce_WASAPI_windows.cpp"
97 #include "native/juce_DirectSound_windows.cpp"
100 #if JUCE_USE_WINRT_MIDI && (JUCE_MSVC || JUCE_CLANG)
110 #include <windows.devices.h>
111 #include <windows.devices.midi.h>
112 #include <windows.devices.enumeration.h>
114 JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4265)
115 #include <wrl/event.h>
116 JUCE_END_IGNORE_WARNINGS_MSVC
118 JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4467)
119 #include <robuffer.h>
120 JUCE_END_IGNORE_WARNINGS_MSVC
123 #include <juce_audio_basics/midi/juce_MidiDataConcatenator.h>
124 #include "native/juce_Midi_windows.cpp"
146 #include <iasiodrv.h>
147 #include "native/juce_ASIO_windows.cpp"
151#elif JUCE_LINUX || JUCE_BSD
161 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE (
"-Wzero-length-array")
162 #include <alsa/asoundlib.h>
163 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
164 #include "native/juce_ALSA_linux.cpp"
176 #include <jack/jack.h>
177 #include "native/juce_JackAudio_linux.cpp"
180 #if (JUCE_LINUX && JUCE_BELA)
187 #include <juce_audio_basics/midi/juce_MidiDataConcatenator.h>
188 #include "native/juce_Bela_linux.cpp"
194 #include <juce_audio_basics/midi/juce_MidiDataConcatenator.h>
195 #include "native/juce_Midi_linux.cpp"
203 using RealtimeThreadFactory = pthread_t (*) (
void* (*) (
void*),
void*);
204 RealtimeThreadFactory getAndroidRealtimeThreadFactory();
207#include "native/juce_Audio_android.cpp"
209 #include <juce_audio_basics/midi/juce_MidiDataConcatenator.h>
210 #include "native/juce_Midi_android.cpp"
212 #if JUCE_USE_ANDROID_OPENSLES || JUCE_USE_ANDROID_OBOE
213 #include "native/juce_HighPerformanceAudioHelpers_android.h"
215 #if JUCE_USE_ANDROID_OPENSLES
216 #include <SLES/OpenSLES.h>
217 #include <SLES/OpenSLES_Android.h>
218 #include <SLES/OpenSLES_AndroidConfiguration.h>
219 #include "native/juce_OpenSL_android.cpp"
222 #if JUCE_USE_ANDROID_OBOE
223 #if JUCE_USE_ANDROID_OPENSLES
224 #error "Oboe cannot be enabled at the same time as openSL! Please disable JUCE_USE_ANDROID_OPENSLES"
227 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE (
"-Wunused-parameter",
228 "-Wzero-as-null-pointer-constant",
229 "-Winconsistent-missing-destructor-override",
230 "-Wshadow-field-in-constructor",
234 #include <oboe/Oboe.h>
235 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
237 #include "native/juce_Oboe_android.cpp"
243 RealtimeThreadFactory getAndroidRealtimeThreadFactory() {
return nullptr; }
249#if ! JUCE_SYSTEMAUDIOVOL_IMPLEMENTED
260#include "audio_io/juce_AudioDeviceManager.cpp"
261#include "audio_io/juce_AudioIODevice.cpp"
262#include "audio_io/juce_AudioIODeviceType.cpp"
263#include "midi_io/juce_MidiMessageCollector.cpp"
264#include "sources/juce_AudioSourcePlayer.cpp"
265#include "sources/juce_AudioTransportSource.cpp"
static bool JUCE_CALLTYPE setMuted(bool shouldBeMuted)
static float JUCE_CALLTYPE getGain()
static bool JUCE_CALLTYPE isMuted()
static bool JUCE_CALLTYPE setGain(float newGain)