Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarVoice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/frontend/StarVoice.cpp')
-rw-r--r--source/frontend/StarVoice.cpp15
1 files changed, 6 insertions, 9 deletions
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 {