A little fix for the Throttle, it wasn't getting the correct sample_rate thus was too fast

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2774 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
sl1nk3.s 2009-03-28 14:08:06 +00:00
parent 881678540d
commit 632e3bfc85
5 changed files with 10 additions and 7 deletions

View File

@ -62,7 +62,7 @@ void CMixer::Mix(short *samples, int numSamples)
}
void CMixer::PushSamples(short *samples, int num_stereo_samples)
void CMixer::PushSamples(short *samples, int num_stereo_samples, int core_sample_rate)
{
if (!soundStream)
return;
@ -85,7 +85,7 @@ void CMixer::PushSamples(short *samples, int num_stereo_samples)
#endif
// Write Other Audio
if (! m_throttle)
if (!m_throttle)
return;
@ -105,7 +105,7 @@ void CMixer::PushSamples(short *samples, int num_stereo_samples)
push_sync.Enter();
while (num_stereo_samples) {
acc += m_sampleRate;
acc += core_sample_rate;
while (num_stereo_samples && (acc >= 48000)) {
PV4l=PV3l;
PV3l=PV2l;

View File

@ -34,7 +34,7 @@ public:
void Mix(short *sample, int numSamples);
// Called from main thread
void PushSamples(short* samples, int num_stereo_samples);
void PushSamples(short* samples, int num_stereo_samples, int core_sample_rate);
virtual void Premix(short *samples, int numSamples) {}

View File

@ -4,7 +4,7 @@
#include "HLEMixer.h"
void HLEMixer::MixUCode(short *samples, int numSamples) {
//if this was called directly from the HLE, and not by timeout
// if this was called directly from the HLE, and not by timeout
if (g_Config.m_EnableHLEAudio && IsHLEReady()) {
IUCode* pUCode = CDSPHandler::GetInstance().GetUCode();
if (pUCode != NULL)

View File

@ -346,7 +346,10 @@ void DSP_SendAIBuffer(unsigned int address, int sample_rate)
//if (log_ai)
// g_wave_writer.AddStereoSamples(samples, 8);
}
pMixer->PushSamples(samples, 32 / 4);
// sample_rate is usually 32k here,
// see Core/DSP/DSP.cpp for better information
pMixer->PushSamples(samples, 32 / 4, sample_rate);
}
// SoundStream is updated only when necessary (there is no 70 ms limit

View File

@ -371,7 +371,7 @@ void DSP_SendAIBuffer(unsigned int address, int sample_rate)
//if (log_ai)
// g_wave_writer.AddStereoSamples(samples, 8);
}
soundStream->GetMixer()->PushSamples(samples, 32 / 4);
soundStream->GetMixer()->PushSamples(samples, 32 / 4, sample_rate);
}
// SoundStream is updated only when necessary (there is no 70 ms limit