From 91cd6182d8647aa4ddee3abf8bd0bd8f741f1511 Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Sat, 15 Jul 2023 00:39:10 +1000 Subject: Fix mono --- source/frontend/StarVoice.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/frontend/StarVoice.cpp') diff --git a/source/frontend/StarVoice.cpp b/source/frontend/StarVoice.cpp index 210a509..f2bcbe2 100644 --- a/source/frontend/StarVoice.cpp +++ b/source/frontend/StarVoice.cpp @@ -380,7 +380,15 @@ bool Voice::receive(SpeakerPtr speaker, std::string_view view) { { MutexLocker lock(speaker->audioStream->mutex); auto& samples = speaker->audioStream->samples; - samples.insert(samples.end(), decodeBuffer, decodeBuffer + decodedSamples); + if (mono) { + size_t prevSize = samples.size(); + samples.resize(prevSize + (size_t)decodedSamples * 2); + int16_t* data = samples.data() + prevSize; + for (int i = 0; i != decodedSamples; ++i) + *data++ = *data++ = decodeBuffer[i]; + } + else + samples.insert(samples.end(), decodeBuffer, decodeBuffer + decodedSamples); } playSpeaker(speaker, channels); } -- cgit v1.2.3