From 4903d39eed1af80021e95424731038080ed1c9a3 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:26:01 +1100 Subject: [PATCH] clang hates that I guess --- source/frontend/StarVoice.cpp | 16 +++++++--------- source/frontend/StarVoice.hpp | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/source/frontend/StarVoice.cpp b/source/frontend/StarVoice.cpp index 1328846..978bc2c 100644 --- a/source/frontend/StarVoice.cpp +++ b/source/frontend/StarVoice.cpp @@ -387,7 +387,7 @@ void Voice::mix(int16_t* buffer, size_t frameCount, unsigned channels) { mix = true; float volume = speaker->volume; - Array2F levels = speaker->channelVolumes; + std::array levels = speaker->channelVolumes; for (size_t i = 0; i != samples; ++i) sharedBuffer[i] += (int32_t)(speakerBuffer[i]) * levels[i % 2] * volume; //Blends the weaker channel into the stronger one, @@ -438,14 +438,12 @@ void Voice::mix(int16_t* buffer, size_t frameCount, unsigned channels) { void Voice::update(float, PositionalAttenuationFunction positionalAttenuationFunction) { for (auto& entry : m_speakers) { if (SpeakerPtr& speaker = entry.second) { - if (positionalAttenuationFunction) { - speaker->channelVolumes = { - 1.0f - positionalAttenuationFunction(0, speaker->position, 1.0f), - 1.0f - positionalAttenuationFunction(1, speaker->position, 1.0f) - }; - } - else - speaker->channelVolumes = Vec2F::filled(1.0f); + if (positionalAttenuationFunction) { + speaker->channelVolumes = { + 1.0f - positionalAttenuationFunction(0, speaker->position, 1.0f), + 1.0f - positionalAttenuationFunction(1, speaker->position, 1.0f)}; + } else + speaker->channelVolumes = {1.0f, 1.0f}; auto& dbHistory = speaker->dbHistory; memmove(&dbHistory[1], &dbHistory[0], (dbHistory.size() - 1) * sizeof(float)); diff --git a/source/frontend/StarVoice.hpp b/source/frontend/StarVoice.hpp index c914d36..08d01d1 100644 --- a/source/frontend/StarVoice.hpp +++ b/source/frontend/StarVoice.hpp @@ -89,7 +89,7 @@ public: atomic playing = 0; atomic decibelLevel = -96.0f; atomic volume = 1.0f; - atomic> channelVolumes = Array::filled(1); + atomic> channelVolumes = std::array{1.0f, 1.0f}; unsigned int minimumPlaySamples = 4096;