Browse Source

Solved an issue where Ableton Live will deadlock when loading a plugin based on an AudioProcessorGraph.

tags/2021-05-28
Reuben Thomas Julian Storer 8 years ago
parent
commit
0931fcea18
2 changed files with 4 additions and 5 deletions
  1. +3
    -4
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
  2. +1
    -1
      modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h

+ 3
- 4
modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp View File

@@ -851,7 +851,7 @@ void AudioProcessorGraph::topologyChanged()
{ {
sendChangeMessage(); sendChangeMessage();
if (isPrepared)
if (isPrepared.get())
triggerAsyncUpdate(); triggerAsyncUpdate();
} }
@@ -1197,6 +1197,7 @@ void AudioProcessorGraph::buildRenderingSequence()
void AudioProcessorGraph::handleAsyncUpdate() void AudioProcessorGraph::handleAsyncUpdate()
{ {
buildRenderingSequence(); buildRenderingSequence();
isPrepared = true;
} }
//============================================================================== //==============================================================================
@@ -1209,9 +1210,7 @@ void AudioProcessorGraph::prepareToPlay (double /*sampleRate*/, int estimatedSam
renderSequenceDouble->prepareBuffers (estimatedSamplesPerBlock); renderSequenceDouble->prepareBuffers (estimatedSamplesPerBlock);
clearRenderingSequence(); clearRenderingSequence();
buildRenderingSequence();
isPrepared = true;
triggerAsyncUpdate();
} }
bool AudioProcessorGraph::supportsDoublePrecisionProcessing() const bool AudioProcessorGraph::supportsDoublePrecisionProcessing() const


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

@@ -376,7 +376,7 @@ private:
friend class AudioGraphIOProcessor; friend class AudioGraphIOProcessor;
bool isPrepared = false;
Atomic<bool> isPrepared { false };
void topologyChanged(); void topologyChanged();
void handleAsyncUpdate() override; void handleAsyncUpdate() override;


Loading…
Cancel
Save