OpenShot Audio Library | OpenShotAudio 0.3.2
Loading...
Searching...
No Matches
juce_AudioIODevice.h
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2017 - ROLI Ltd.
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26class AudioIODevice;
27
28
29//==============================================================================
43{
44public:
46 virtual ~AudioIODeviceCallback() = default;
47
86 virtual void audioDeviceIOCallback (const float** inputChannelData,
88 float** outputChannelData,
90 int numSamples) = 0;
91
107
109 virtual void audioDeviceStopped() = 0;
110
115 virtual void audioDeviceError (const String& errorMessage);
116};
117
118
119//==============================================================================
136class JUCE_API AudioIODevice
137{
138public:
140 virtual ~AudioIODevice();
141
142 //==============================================================================
144 const String& getName() const noexcept { return name; }
145
150 const String& getTypeName() const noexcept { return typeName; }
151
152 //==============================================================================
157
162
163 //==============================================================================
168
173
178 virtual int getDefaultBufferSize() = 0;
179
180 //==============================================================================
195 virtual String open (const BigInteger& inputChannels,
196 const BigInteger& outputChannels,
197 double sampleRate,
198 int bufferSizeSamples) = 0;
199
201 virtual void close() = 0;
202
208 virtual bool isOpen() = 0;
209
217 virtual void start (AudioIODeviceCallback* callback) = 0;
218
224 virtual void stop() = 0;
225
231 virtual bool isPlaying() = 0;
232
234 virtual String getLastError() = 0;
235
236 //==============================================================================
242
247 virtual double getCurrentSampleRate() = 0;
248
253 virtual int getCurrentBitDepth() = 0;
254
260
266
272 virtual int getOutputLatencyInSamples() = 0;
273
279 virtual int getInputLatencyInSamples() = 0;
280
281
282 //==============================================================================
288 virtual bool hasControlPanel() const;
289
294 virtual bool showControlPanel();
295
300 virtual bool setAudioPreprocessingEnabled (bool shouldBeEnabled);
301
302 //==============================================================================
313 virtual int getXRunCount() const noexcept;
314
315 //==============================================================================
319 const String& typeName);
320
322 String name, typeName;
323};
324
325} // namespace juce
virtual void audioDeviceIOCallback(const float **inputChannelData, int numInputChannels, float **outputChannelData, int numOutputChannels, int numSamples)=0
virtual ~AudioIODeviceCallback()=default
virtual void audioDeviceAboutToStart(AudioIODevice *device)=0
virtual void audioDeviceStopped()=0
virtual double getCurrentSampleRate()=0
virtual int getCurrentBitDepth()=0
virtual void close()=0
virtual bool isPlaying()=0
const String & getTypeName() const noexcept
virtual StringArray getOutputChannelNames()=0
virtual StringArray getInputChannelNames()=0
virtual Array< int > getAvailableBufferSizes()=0
virtual BigInteger getActiveInputChannels() const =0
virtual void stop()=0
virtual BigInteger getActiveOutputChannels() const =0
virtual Array< double > getAvailableSampleRates()=0
virtual int getInputLatencyInSamples()=0
virtual int getCurrentBufferSizeSamples()=0
const String & getName() const noexcept
virtual int getDefaultBufferSize()=0
virtual void start(AudioIODeviceCallback *callback)=0
virtual String getLastError()=0
virtual String open(const BigInteger &inputChannels, const BigInteger &outputChannels, double sampleRate, int bufferSizeSamples)=0
virtual int getOutputLatencyInSamples()=0
virtual bool isOpen()=0