Browse Source

AudioProcessorGraph: Fix processing of plugins with no inputs or outputs

pull/22/head
reuk 3 years ago
parent
commit
77090bb499
No known key found for this signature in database GPG Key ID: 9ADCD339CFC98A11
1 changed files with 10 additions and 13 deletions
  1. +10
    -13
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h

+ 10
- 13
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h View File

@@ -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 <typename Sample>
void processBlock (AudioBuffer<Sample>& audio, MidiBuffer& midi)
void callProcessFunction (AudioBuffer<Sample>& audio,
MidiBuffer& midi,
void (AudioProcessor::* function) (AudioBuffer<Sample>&, MidiBuffer&))
{
if (hasNoConnections())
return;
const ScopedLock lock (processorLock);
(processor.get()->*function) (audio, midi);
}
processor->processBlock (audio, midi);
template <typename Sample>
void processBlock (AudioBuffer<Sample>& audio, MidiBuffer& midi)
{
callProcessFunction (audio, midi, &AudioProcessor::processBlock);
}
template <typename Sample>
void processBlockBypassed (AudioBuffer<Sample>& audio, MidiBuffer& midi)
{
if (hasNoConnections())
return;
const ScopedLock lock (processorLock);
processor->processBlockBypassed (audio, midi);
callProcessFunction (audio, midi, &AudioProcessor::processBlockBypassed);
}
CriticalSection processorLock;


Loading…
Cancel
Save