From 77090bb4990e5d5db8b26fe0568f1605c0f3ce9c Mon Sep 17 00:00:00 2001 From: reuk Date: Thu, 21 Apr 2022 16:38:40 +0100 Subject: [PATCH] AudioProcessorGraph: Fix processing of plugins with no inputs or outputs --- .../processors/juce_AudioProcessorGraph.h | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h index adf8146c68..9c54201dc1 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h @@ -148,28 +148,25 @@ public: void prepare (double newSampleRate, int newBlockSize, AudioProcessorGraph*, ProcessingPrecision); void unprepare(); - bool hasNoConnections() const noexcept { return inputs.isEmpty() && outputs.isEmpty(); } - template - void processBlock (AudioBuffer& audio, MidiBuffer& midi) + void callProcessFunction (AudioBuffer& audio, + MidiBuffer& midi, + void (AudioProcessor::* function) (AudioBuffer&, MidiBuffer&)) { - if (hasNoConnections()) - return; - const ScopedLock lock (processorLock); + (processor.get()->*function) (audio, midi); + } - processor->processBlock (audio, midi); + template + void processBlock (AudioBuffer& audio, MidiBuffer& midi) + { + callProcessFunction (audio, midi, &AudioProcessor::processBlock); } template void processBlockBypassed (AudioBuffer& audio, MidiBuffer& midi) { - if (hasNoConnections()) - return; - - const ScopedLock lock (processorLock); - - processor->processBlockBypassed (audio, midi); + callProcessFunction (audio, midi, &AudioProcessor::processBlockBypassed); } CriticalSection processorLock;