Merge pull request #667 from RachelBryk/remove-audio-limit

Remove audio frame limit.
This commit is contained in:
Tony Wasserka 2014-07-28 14:38:35 +02:00
commit 9c7d4b6408
7 changed files with 5 additions and 30 deletions

View File

@ -152,7 +152,6 @@ namespace AudioCommon
{
if (soundStream)
{
soundStream->GetMixer()->SetThrottle(SConfig::GetInstance().m_Framelimit == 2);
soundStream->SetVolume(SConfig::GetInstance().m_Volume);
}
}

View File

@ -46,7 +46,7 @@ unsigned int CMixer::MixerFifo::Mix(short* samples, unsigned int numSamples, boo
u32 framelimit = SConfig::GetInstance().m_Framelimit;
float aid_sample_rate = m_input_sample_rate + offset;
if (consider_framelimit && framelimit > 2)
if (consider_framelimit && framelimit > 1)
{
aid_sample_rate = aid_sample_rate * (framelimit - 1) * 5 / VideoInterface::TargetRefreshRate;
}
@ -132,21 +132,6 @@ void CMixer::MixerFifo::PushSamples(const short *samples, unsigned int num_sampl
// needs to get updates to not deadlock.
u32 indexW = Common::AtomicLoad(m_indexW);
if (m_mixer->m_throttle)
{
// The auto throttle function. This loop will put a ceiling on the CPU MHz.
while (num_samples * 2 + ((indexW - Common::AtomicLoad(m_indexR)) & INDEX_MASK) >= MAX_SAMPLES * 2)
{
if (*PowerPC::GetStatePtr() != PowerPC::CPU_RUNNING || soundStream->IsMuted())
break;
// Shortcut key for Throttle Skipping
if (Core::GetIsFramelimiterTempDisabled())
break;
SLEEP(1);
soundStream->Update();
}
}
// Check if we have enough free space
// indexW == m_indexR results in empty buffer, so indexR must always be smaller than indexW
if (num_samples * 2 + ((indexW - Common::AtomicLoad(m_indexR)) & INDEX_MASK) >= MAX_SAMPLES * 2)

View File

@ -26,7 +26,6 @@ public:
, m_streaming_mixer(this, 48000)
, m_sampleRate(BackendSampleRate)
, m_logAudio(0)
, m_throttle(false)
, m_speed(0)
{
INFO_LOG(AUDIO_INTERFACE, "Mixer is initialized");
@ -46,9 +45,6 @@ public:
void SetStreamInputSampleRate(unsigned int rate);
void SetStreamingVolume(unsigned int lvolume, unsigned int rvolume);
void SetThrottle(bool use) { m_throttle = use;}
virtual void StartLogAudio(const std::string& filename)
{
if (! m_logAudio)
@ -122,8 +118,6 @@ protected:
bool m_logAudio;
bool m_throttle;
std::mutex m_csMixing;
volatile float m_speed; // Current rate of the emulation (1.0 = 100% speed)

View File

@ -630,7 +630,7 @@ void VideoThrottle()
bool ShouldSkipFrame(int skipped)
{
const u32 TargetFPS = (SConfig::GetInstance().m_Framelimit > 1)
? SConfig::GetInstance().m_Framelimit * 5
? (SConfig::GetInstance().m_Framelimit - 1) * 5
: VideoInterface::TargetRefreshRate;
const u32 frames = Common::AtomicLoad(DrawnFrame);
const bool fps_slow = !(Timer.GetTimeDifference() < (frames + skipped) * 1000 / TargetFPS);

View File

@ -219,9 +219,9 @@ static void ThrottleCallback(u64 last_time, int cyclesLate)
int diff = (u32)last_time - time;
const SConfig& config = SConfig::GetInstance();
bool frame_limiter = config.m_Framelimit && config.m_Framelimit != 2 && !Core::GetIsFramelimiterTempDisabled();
bool frame_limiter = config.m_Framelimit && !Core::GetIsFramelimiterTempDisabled();
u32 next_event = GetTicksPerSecond()/1000;
if (SConfig::GetInstance().m_Framelimit > 2)
if (SConfig::GetInstance().m_Framelimit > 1)
{
next_event = next_event * (SConfig::GetInstance().m_Framelimit - 1) * 5 / VideoInterface::TargetRefreshRate;
}

View File

@ -264,8 +264,7 @@ void CConfigMain::InitializeGUILists()
// Framelimit
arrayStringFor_Framelimit.Add(_("Off"));
arrayStringFor_Framelimit.Add(_("Auto"));
arrayStringFor_Framelimit.Add(_("Audio"));
for (int i = 10; i <= 120; i += 5) // from 10 to 120
for (int i = 5; i <= 120; i += 5) // from 5 to 120
arrayStringFor_Framelimit.Add(wxString::Format("%i", i));
// Emulator Engine
@ -898,7 +897,6 @@ void CConfigMain::CoreSettingsChanged(wxCommandEvent& event)
break;
case ID_FRAMELIMIT:
SConfig::GetInstance().m_Framelimit = Framelimit->GetSelection();
AudioCommon::UpdateSoundStream();
break;
// Core - Advanced
case ID_CPUENGINE:

View File

@ -134,7 +134,6 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl*
" - Enable Dual Core [OFF]\n"
" - DSP Emulator Engine Must be the same on all computers!\n"
" - DSP on Dedicated Thread [OFF]\n"
" - Framelimit NOT set to [Audio]\n"
" - Manually set the extensions for each wiimote\n"
"\n"
"All players should use the same Dolphin version and settings.\n"