Browse Source

AudioProcessorGraph: added reset() method and adjusted locking.

tags/2021-05-28
jules 12 years ago
parent
commit
837f05237d
2 changed files with 12 additions and 7 deletions
  1. +11
    -5
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
  2. +1
    -2
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h

+ 11
- 5
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp View File

@@ -886,7 +886,7 @@ AudioProcessorGraph::Node::Node (const uint32 nodeId_, AudioProcessor* const pro
processor (processor_),
isPrepared (false)
{
jassert (processor_ != nullptr);
jassert (processor != nullptr);
}
void AudioProcessorGraph::Node::prepare (const double sampleRate, const int blockSize,
@@ -1167,7 +1167,7 @@ void AudioProcessorGraph::clearRenderingSequence()
Array<void*> oldOps;
{
const ScopedLock sl (renderLock);
const ScopedLock sl (getCallbackLock());
renderingOps.swapWithArray (oldOps);
}
@@ -1231,7 +1231,7 @@ void AudioProcessorGraph::buildRenderingSequence()
{
// swap over to the new rendering sequence..
const ScopedLock sl (renderLock);
const ScopedLock sl (getCallbackLock());
renderingBuffers.setSize (numRenderingBuffersNeeded, getBlockSize());
renderingBuffers.clear();
@@ -1280,12 +1280,18 @@ void AudioProcessorGraph::releaseResources()
currentMidiOutputBuffer.clear();
}
void AudioProcessorGraph::reset()
{
const ScopedLock sl (getCallbackLock());
for (int i = 0; i < nodes.size(); ++i)
nodes.getUnchecked(i)->getProcessor()->reset();
}
void AudioProcessorGraph::processBlock (AudioSampleBuffer& buffer, MidiBuffer& midiMessages)
{
const int numSamples = buffer.getNumSamples();
const ScopedLock sl (renderLock);
currentAudioInputBuffer = &buffer;
currentAudioOutputBuffer.setSize (jmax (1, buffer.getNumChannels()), numSamples);
currentAudioOutputBuffer.clear();


+ 1
- 2
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h View File

@@ -360,6 +360,7 @@ public:
void prepareToPlay (double sampleRate, int estimatedSamplesPerBlock);
void releaseResources();
void processBlock (AudioSampleBuffer&, MidiBuffer&);
void reset();
const String getInputChannelName (int channelIndex) const;
const String getOutputChannelName (int channelIndex) const;
@@ -395,8 +396,6 @@ private:
uint32 lastNodeId;
AudioSampleBuffer renderingBuffers;
OwnedArray <MidiBuffer> midiBuffers;
CriticalSection renderLock;
Array<void*> renderingOps;
friend class AudioGraphIOProcessor;


Loading…
Cancel
Save