summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/Mixer.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-11-06 09:15:05 +0100
committerJosJuice <josjuice@gmail.com>2017-11-06 09:15:14 +0100
commitb00ef39c1c8c3aa2e02bcae4a6aa80ff927c381b (patch)
treeada729c8830188f39879f4935639d0517d870c9b /Source/Core/AudioCommon/Mixer.cpp
parent5e70af1ce5e626751539bf82feb257e5ee11db7c (diff)
Fix DTK audio not working after loading a savestate
The main problem was that the volume of the mixer wasn't savestated. The volume is typically 0 at the beginning of a game, so loading a savestate at the beginning of a game would lead to silent DTK audio. I also added savestating to StreamADPCM.cpp.
Diffstat (limited to 'Source/Core/AudioCommon/Mixer.cpp')
-rw-r--r--Source/Core/AudioCommon/Mixer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/Core/AudioCommon/Mixer.cpp b/Source/Core/AudioCommon/Mixer.cpp
index 374cb89d9a..da0f81c87e 100644
--- a/Source/Core/AudioCommon/Mixer.cpp
+++ b/Source/Core/AudioCommon/Mixer.cpp
@@ -8,6 +8,7 @@
#include <cstring>
#include "AudioCommon/DPL2Decoder.h"
+#include "Common/ChunkFile.h"
#include "Common/CommonTypes.h"
#include "Common/Logging/Log.h"
#include "Common/MathUtil.h"
@@ -25,6 +26,13 @@ Mixer::~Mixer()
{
}
+void Mixer::DoState(PointerWrap& p)
+{
+ m_dma_mixer.DoState(p);
+ m_streaming_mixer.DoState(p);
+ m_wiimote_speaker_mixer.DoState(p);
+}
+
// Executed from sound stream thread
unsigned int Mixer::MixerFifo::Mix(short* samples, unsigned int numSamples,
bool consider_framelimit)
@@ -333,6 +341,13 @@ void Mixer::StopLogDSPAudio()
}
}
+void Mixer::MixerFifo::DoState(PointerWrap& p)
+{
+ p.Do(m_input_sample_rate);
+ p.Do(m_LVolume);
+ p.Do(m_RVolume);
+}
+
void Mixer::MixerFifo::SetInputSampleRate(unsigned int rate)
{
m_input_sample_rate = rate;