diff --git a/sfizz/AudioSpan.h b/sfizz/AudioSpan.h index aa2e3332..7fe56593 100644 --- a/sfizz/AudioSpan.h +++ b/sfizz/AudioSpan.h @@ -28,8 +28,8 @@ #include "Debug.h" #include "LeakDetector.h" #include "SIMDHelpers.h" -#include #include +#include #include template @@ -76,19 +76,24 @@ public: } } + template , typename = std::enable_if_t::value, int>> + AudioSpan(AudioBuffer& audioBuffer) + : numFrames(audioBuffer.getNumFrames()) + , numChannels(audioBuffer.getNumChannels()) + { + for (int i = 0; i < numChannels; i++) { + this->spans[i] = audioBuffer.channelReader(i); + } + } template > AudioSpan(AudioBuffer& audioBuffer) : numFrames(audioBuffer.getNumFrames()) , numChannels(audioBuffer.getNumChannels()) { for (int i = 0; i < numChannels; i++) { - if constexpr (std::is_const::value) - this->spans[i] = audioBuffer.channelReader(i); - else - this->spans[i] = audioBuffer.channelWriter(i); + this->spans[i] = audioBuffer.channelWriter(i); } } - template > AudioSpan(const AudioSpan& other) : numFrames(other.getNumFrames())