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

summaryrefslogtreecommitdiff
path: root/source/frontend/StarVoice.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-07-15 00:39:10 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-07-15 00:39:10 +1000
commit91cd6182d8647aa4ddee3abf8bd0bd8f741f1511 (patch)
tree09c1f96072c01edec1ae88dcd638c81426d180b4 /source/frontend/StarVoice.cpp
parentb4a53e07067d1ca96fa2e09e5ab07a99574d8e21 (diff)
Fix mono
Diffstat (limited to 'source/frontend/StarVoice.cpp')
-rw-r--r--source/frontend/StarVoice.cpp10
1 files changed, 9 insertions, 1 deletions
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);
}