From 0a00df45d6e179d1405c252867ad30b801e43557 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 29 Jul 2016 15:20:51 +0200 Subject: [PATCH] Mix all channels instead of just picking one (very rough, no volume control or anything). --- mixer.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mixer.cpp b/mixer.cpp index 1a4b2cf..fc66cde 100644 --- a/mixer.cpp +++ b/mixer.cpp @@ -984,8 +984,9 @@ void Mixer::process_audio_one_frame(int64_t frame_pts_int, int num_samples, bool { vector samples_card; vector samples_out; + samples_out.resize(num_samples * 2); - // TODO: Allow mixing audio from several sources. + // TODO: Allow more flexible input mapping. unsigned selected_audio_card = theme->map_signal(audio_source_channel); assert(selected_audio_card < num_cards); @@ -1001,8 +1002,14 @@ void Mixer::process_audio_one_frame(int64_t frame_pts_int, int num_samples, bool num_samples, rate_adjustment_policy); } - if (card_index == selected_audio_card) { - samples_out = move(samples_card); + if (card_index == 0) { + for (int i = 0; i < num_samples * 2; ++i) { + samples_out[i] = samples_card[i]; + } + } else { + for (int i = 0; i < num_samples * 2; ++i) { + samples_out[i] += samples_card[i]; + } } } -- 2.39.2