From 043db1841ee46ace0f6919bfdf6ac20a539faaca Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Thu, 20 Jul 2023 14:55:38 +1000 Subject: Voice: Minor options menu fixes, fix decibel level freezing on muted speakers --- source/frontend/StarVoice.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'source/frontend/StarVoice.cpp') diff --git a/source/frontend/StarVoice.cpp b/source/frontend/StarVoice.cpp index fdc10ea..82205bd 100644 --- a/source/frontend/StarVoice.cpp +++ b/source/frontend/StarVoice.cpp @@ -362,13 +362,14 @@ void Voice::mix(int16_t* buffer, size_t frameCount, unsigned channels) { VoiceAudioStream* audio = speaker->audioStream.get(); MutexLocker audioLock(audio->mutex); if (speaker->playing && !audio->samples.empty()) { + for (size_t i = 0; i != samples; ++i) + speakerBuffer[i] = audio->take(); + + if (speaker != m_clientSpeaker) + speaker->decibelLevel = getAudioLoudness(speakerBuffer.data(), samples); + if (!speaker->muted) { mix = true; - for (size_t i = 0; i != samples; ++i) - speakerBuffer[i] = audio->take(); - - if (speaker != m_clientSpeaker) - speaker->decibelLevel = getAudioLoudness(speakerBuffer.data(), samples); float volume = speaker->volume; Array2F levels = speaker->channelVolumes; @@ -396,10 +397,6 @@ void Voice::mix(int16_t* buffer, size_t frameCount, unsigned channels) { } //*/ } - else { - for (size_t i = 0; i != samples; ++i) - audio->take(); - } ++it; } else { -- cgit v1.2.3