LMMS
Loading...
Searching...
No Matches
juce_AudioIODevice.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
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
30{
34 const uint64_t* hostTimeNs = nullptr;
35};
36
37//==============================================================================
51{
52public:
54 virtual ~AudioIODeviceCallback() = default;
55
94 virtual void audioDeviceIOCallback (const float** inputChannelData,
95 int numInputChannels,
96 float** outputChannelData,
97 int numOutputChannels,
98 int numSamples)
99 {
100 ignoreUnused (inputChannelData, numInputChannels, outputChannelData, numOutputChannels, numSamples);
101 }
102
108 virtual void audioDeviceIOCallbackWithContext (const float** inputChannelData,
109 int numInputChannels,
110 float** outputChannelData,
111 int numOutputChannels,
112 int numSamples,
113 const AudioIODeviceCallbackContext& context)
114 {
115 audioDeviceIOCallback (inputChannelData, numInputChannels, outputChannelData, numOutputChannels, numSamples);
116 ignoreUnused (context);
117 }
118
133 virtual void audioDeviceAboutToStart (AudioIODevice* device) = 0;
134
136 virtual void audioDeviceStopped() = 0;
137
142 virtual void audioDeviceError (const String& errorMessage);
143};
144
145
146//==============================================================================
164{
165public:
167 virtual ~AudioIODevice();
168
169 //==============================================================================
171 const String& getName() const noexcept { return name; }
172
178
179 //==============================================================================
184
189
190 //==============================================================================
195
200
205 virtual int getDefaultBufferSize() = 0;
206
207 //==============================================================================
222 virtual String open (const BigInteger& inputChannels,
223 const BigInteger& outputChannels,
224 double sampleRate,
225 int bufferSizeSamples) = 0;
226
228 virtual void close() = 0;
229
235 virtual bool isOpen() = 0;
236
245
251 virtual void stop() = 0;
252
258 virtual bool isPlaying() = 0;
259
261 virtual String getLastError() = 0;
262
263 //==============================================================================
269
274 virtual double getCurrentSampleRate() = 0;
275
280 virtual int getCurrentBitDepth() = 0;
281
287
293
299 virtual int getOutputLatencyInSamples() = 0;
300
306 virtual int getInputLatencyInSamples() = 0;
307
308
309 //==============================================================================
315 virtual bool hasControlPanel() const;
316
321 virtual bool showControlPanel();
322
327 virtual bool setAudioPreprocessingEnabled (bool shouldBeEnabled);
328
329 //==============================================================================
340 virtual int getXRunCount() const noexcept;
341
342 //==============================================================================
343protected:
345 AudioIODevice (const String& deviceName,
347
350};
351
352} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_Array.h:56
Definition juce_AudioIODevice.h:51
virtual ~AudioIODeviceCallback()=default
virtual void audioDeviceIOCallbackWithContext(const float **inputChannelData, int numInputChannels, float **outputChannelData, int numOutputChannels, int numSamples, const AudioIODeviceCallbackContext &context)
Definition juce_AudioIODevice.h:108
virtual void audioDeviceAboutToStart(AudioIODevice *device)=0
virtual void audioDeviceError(const String &errorMessage)
Definition juce_AudioIODevice.cpp:33
virtual void audioDeviceIOCallback(const float **inputChannelData, int numInputChannels, float **outputChannelData, int numOutputChannels, int numSamples)
Definition juce_AudioIODevice.h:94
virtual void audioDeviceStopped()=0
Definition juce_AudioIODevice.h:164
virtual double getCurrentSampleRate()=0
virtual bool hasControlPanel() const
Definition juce_AudioIODevice.cpp:35
virtual int getCurrentBitDepth()=0
virtual void close()=0
virtual bool isPlaying()=0
const String & getTypeName() const noexcept
Definition juce_AudioIODevice.h:177
virtual StringArray getOutputChannelNames()=0
virtual StringArray getInputChannelNames()=0
virtual Array< int > getAvailableBufferSizes()=0
String name
Definition juce_AudioIODevice.h:349
virtual BigInteger getActiveInputChannels() const =0
virtual void stop()=0
AudioIODevice(const String &deviceName, const String &typeName)
Definition juce_AudioIODevice.cpp:26
virtual BigInteger getActiveOutputChannels() const =0
virtual Array< double > getAvailableSampleRates()=0
virtual int getInputLatencyInSamples()=0
virtual int getXRunCount() const noexcept
Definition juce_AudioIODevice.cpp:36
virtual int getCurrentBufferSizeSamples()=0
const String & getName() const noexcept
Definition juce_AudioIODevice.h:171
String typeName
Definition juce_AudioIODevice.h:349
virtual int getDefaultBufferSize()=0
virtual void start(AudioIODeviceCallback *callback)=0
virtual String getLastError()=0
virtual bool showControlPanel()
Definition juce_AudioIODevice.cpp:38
virtual String open(const BigInteger &inputChannels, const BigInteger &outputChannels, double sampleRate, int bufferSizeSamples)=0
virtual int getOutputLatencyInSamples()=0
virtual bool isOpen()=0
virtual bool setAudioPreprocessingEnabled(bool shouldBeEnabled)
Definition juce_AudioIODevice.cpp:34
Definition juce_BigInteger.h:39
Definition juce_StringArray.h:35
Definition juce_String.h:53
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333
Definition juce_AudioIODevice.h:30
const uint64_t * hostTimeNs
Definition juce_AudioIODevice.h:34
RECT const char void(* callback)(const char *droppath))) SWELL_API_DEFINE(BOOL
Definition swell-functions.h:1004
#define const
Definition zconf.h:137