From a37e0fd71cdb0904ee0e1a5b62806c4c77374bd4 Mon Sep 17 00:00:00 2001 From: paulfd Date: Mon, 16 Sep 2019 16:03:22 +0200 Subject: [PATCH] Cleaned up the voice source fetching --- sfizz/Voice.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sfizz/Voice.cpp b/sfizz/Voice.cpp index 9ffb5f1b..3132cb3e 100644 --- a/sfizz/Voice.cpp +++ b/sfizz/Voice.cpp @@ -344,7 +344,9 @@ void sfz::Voice::processStereo(AudioSpan buffer) noexcept void sfz::Voice::fillWithData(AudioSpan buffer) noexcept { auto source { [&]() { - if (region->canUsePreloadedData() || !dataReady) + if (region->canUsePreloadedData()) + return AudioSpan(*region->preloadedData); + else if (!dataReady) return AudioSpan(*region->preloadedData); else return AudioSpan(*fileData); @@ -483,8 +485,9 @@ void sfz::Voice::reset() noexcept void sfz::Voice::garbageCollect() noexcept { - if (state == State::idle && region == nullptr) + if (state == State::idle && region == nullptr) { fileData.reset(); + } } void sfz::Voice::expectFileData(unsigned ticket)