From 1e0c75c656150641d9ab78e7414b2c0f6de22b50 Mon Sep 17 00:00:00 2001 From: sakertooth Date: Tue, 26 Sep 2023 11:18:46 -0400 Subject: [PATCH] Use if block in playSampleRange --- src/core/Sample.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/core/Sample.cpp b/src/core/Sample.cpp index c8ee9251a..7121ac005 100644 --- a/src/core/Sample.cpp +++ b/src/core/Sample.cpp @@ -391,11 +391,18 @@ auto Sample::setReversed(bool reversed) -> void auto Sample::playSampleRange(PlaybackState* state, sampleFrame* dst, size_t numFrames) const -> void { - const auto framesToCopy = state->m_backwards - ? std::min(state->m_frameIndex - m_startFrame, numFrames) - : std::min(m_endFrame - state->m_frameIndex, numFrames); - state->m_backwards ? copyBufferBackward(dst, state->m_frameIndex, framesToCopy) - : copyBufferForward(dst, state->m_frameIndex, framesToCopy); + auto framesToCopy = 0; + if (state->m_backwards) + { + framesToCopy = std::min(state->m_frameIndex - m_startFrame, numFrames); + copyBufferBackward(dst, state->m_frameIndex, framesToCopy); + } + else + { + framesToCopy = std::min(m_endFrame - state->m_frameIndex, numFrames); + copyBufferForward(dst, state->m_frameIndex, framesToCopy); + } + if (framesToCopy < numFrames) { std::fill_n(dst + framesToCopy, numFrames - framesToCopy, sampleFrame{0, 0}); } }