From 27b38c8603404e9edf09d7decb587daa007ba2d2 Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 3 Apr 2023 11:48:28 +0100 Subject: [PATCH] AudioProcessorGraph: Fix rebuild behaviour for UpdateKind::none --- .../processors/juce_AudioProcessorGraph.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 68aa7135f7..15bfd6f3b4 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -1831,9 +1831,12 @@ public: topologyChanged (UpdateKind::sync); } - void rebuild() + void rebuild (UpdateKind updateKind) { - if (MessageManager::getInstance()->isThisTheMessageThread()) + if (updateKind == UpdateKind::none) + return; + + if (updateKind == UpdateKind::sync && MessageManager::getInstance()->isThisTheMessageThread()) handleAsyncUpdate(); else triggerAsyncUpdate(); @@ -1895,11 +1898,7 @@ private: void topologyChanged (UpdateKind updateKind) { owner->sendChangeMessage(); - - if (updateKind == UpdateKind::sync && MessageManager::getInstance()->isThisTheMessageThread()) - handleAsyncUpdate(); - else - triggerAsyncUpdate(); + rebuild (updateKind); } void handleAsyncUpdate() override @@ -1959,7 +1958,7 @@ AudioProcessorGraph::Node* AudioProcessorGraph::getNodeForId (NodeID x) const bool AudioProcessorGraph::disconnectNode (NodeID nodeID, UpdateKind updateKind) { return pimpl->disconnectNode (nodeID, updateKind); } void AudioProcessorGraph::releaseResources() { return pimpl->releaseResources(); } bool AudioProcessorGraph::removeIllegalConnections (UpdateKind updateKind) { return pimpl->removeIllegalConnections (updateKind); } -void AudioProcessorGraph::rebuild() { return pimpl->rebuild(); } +void AudioProcessorGraph::rebuild() { return pimpl->rebuild (UpdateKind::sync); } void AudioProcessorGraph::reset() { return pimpl->reset(); } bool AudioProcessorGraph::canConnect (const Connection& c) const { return pimpl->canConnect (c); } bool AudioProcessorGraph::isConnected (const Connection& c) const noexcept { return pimpl->isConnected (c); }