From a9a4fae7831fb2dfa2ea9f79e76c0b43400a632c Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 25 Oct 2022 13:51:51 +0100 Subject: [PATCH] AudioProcessorPlayer: Avoid unconditionally replacing playhead --- .../juce_audio_utils/players/juce_AudioProcessorPlayer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp b/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp index 70b8b0ac09..2a75084911 100644 --- a/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp +++ b/modules/juce_audio_utils/players/juce_AudioProcessorPlayer.cpp @@ -281,12 +281,14 @@ void AudioProcessorPlayer::audioDeviceIOCallbackWithContext (const float* const* sampleCount (sampleCountIn), seconds ((double) sampleCountIn / sampleRateIn) { - processor.setPlayHead (this); + if (useThisPlayhead) + processor.setPlayHead (this); } ~PlayHead() override { - processor.setPlayHead (nullptr); + if (useThisPlayhead) + processor.setPlayHead (nullptr); } private: @@ -303,6 +305,7 @@ void AudioProcessorPlayer::audioDeviceIOCallbackWithContext (const float* const* Optional hostTimeNs; uint64_t sampleCount; double seconds; + bool useThisPlayhead = processor.getPlayHead() == nullptr; }; PlayHead playHead { *processor,