76 void setMidiOutput (
MidiOutput* midiOutputToUse);
86 void setDoublePrecisionProcessing (
bool doublePrecision);
99 void audioDeviceStopped()
override;
106 NumChannels() =
default;
107 NumChannels (
int numIns,
int numOuts) : ins (numIns), outs (numOuts) {}
109 explicit NumChannels (
const AudioProcessor::BusesLayout& layout)
110 : ins (layout.getNumChannels (true, 0)), outs (layout.getNumChannels (false, 0)) {}
112 AudioProcessor::BusesLayout toLayout()
const
114 return { { AudioChannelSet::canonicalChannelSet (ins) },
115 { AudioChannelSet::canonicalChannelSet (outs) } };
118 int ins = 0, outs = 0;
122 NumChannels findMostSuitableLayout (
const AudioProcessor&)
const;
123 void resizeChannels();
126 AudioProcessor* processor =
nullptr;
127 CriticalSection
lock;
128 double sampleRate = 0;
130 bool isPrepared =
false, isDoublePrecision =
false;
132 NumChannels deviceChannels, defaultProcessorChannels, actualProcessorChannels;
134 AudioBuffer<float> tempBuffer;
135 AudioBuffer<double> conversionBuffer;
137 MidiBuffer incomingMidi;
138 MidiMessageCollector messageCollector;
139 MidiOutput* midiOutput =
nullptr;
142 AudioIODevice* currentDevice =
nullptr;
143 AudioWorkgroup currentWorkgroup;
Additional information that may be passed to the AudioIODeviceCallback.