summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/Mixer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/AudioCommon/Mixer.cpp')
-rw-r--r--Source/Core/AudioCommon/Mixer.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp
index 70accf240f..a7984579ca 100644
--- a/Source/Core/AudioCommon/Mixer.cpp
+++ b/Source/Core/AudioCommon/Mixer.cpp
@@ -121,6 +121,7 @@ unsigned int CMixer::Mix(short* samples, unsigned int num_samples, bool consider
m_dma_mixer.Mix(samples, num_samples, consider_framelimit);
m_streaming_mixer.Mix(samples, num_samples, consider_framelimit);
+ m_wiimote_speaker_mixer.Mix(samples, num_samples, consider_framelimit);
if (m_logAudio)
g_wave_writer.AddStereoSamples(samples, num_samples);
return num_samples;
@@ -167,6 +168,24 @@ void CMixer::PushStreamingSamples(const short *samples, unsigned int num_samples
m_streaming_mixer.PushSamples(samples, num_samples);
}
+void CMixer::PushWiimoteSpeakerSamples(const short *samples, unsigned int num_samples, unsigned int sample_rate)
+{
+ short samples_stereo[MAX_SAMPLES * 2];
+
+ if (num_samples < MAX_SAMPLES)
+ {
+ m_wiimote_speaker_mixer.SetInputSampleRate(sample_rate);
+
+ for (unsigned int i = 0; i < num_samples; ++i)
+ {
+ samples_stereo[i * 2] = Common::swap16(samples[i]);
+ samples_stereo[i * 2 + 1] = Common::swap16(samples[i]);
+ }
+
+ m_wiimote_speaker_mixer.PushSamples(samples_stereo, num_samples);
+ }
+}
+
void CMixer::SetDMAInputSampleRate(unsigned int rate)
{
m_dma_mixer.SetInputSampleRate(rate);
@@ -182,6 +201,11 @@ void CMixer::SetStreamingVolume(unsigned int lvolume, unsigned int rvolume)
m_streaming_mixer.SetVolume(lvolume, rvolume);
}
+void CMixer::SetWiimoteSpeakerVolume(unsigned int lvolume, unsigned int rvolume)
+{
+ m_wiimote_speaker_mixer.SetVolume(lvolume, rvolume);
+}
+
void CMixer::MixerFifo::SetInputSampleRate(unsigned int rate)
{
m_input_sample_rate = rate;