From f56990b3fbd5c49fe311da0f6bd2c687155fc10b Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 28 Apr 2005 23:25:30 +0000 Subject: [PATCH] simplify and clarify --- stepmania/src/GameSoundManager.cpp | 34 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/stepmania/src/GameSoundManager.cpp b/stepmania/src/GameSoundManager.cpp index 2fcc5ded52..837827f8b1 100644 --- a/stepmania/src/GameSoundManager.cpp +++ b/stepmania/src/GameSoundManager.cpp @@ -484,6 +484,25 @@ void GameSoundManager::Update( float fDeltaTime ) RageTimer tm; const float fSeconds = g_Playing->m_Music->GetPositionSeconds( &approximate, &tm ); + // + // Check for song timing skips. + // + if( PREFSMAN->m_bLogSkips && !g_Playing->m_TimingDelayed ) + { + const float fExpectedTimePassed = (tm - GAMESTATE->m_LastBeatUpdate) * g_Playing->m_Music->GetPlaybackRate(); + const float fSoundTimePassed = fSeconds - GAMESTATE->m_fMusicSeconds; + const float fDiff = fExpectedTimePassed - fSoundTimePassed; + + static CString sLastFile = ""; + const CString ThisFile = g_Playing->m_Music->GetLoadedFilePath(); + + /* If fSoundTimePassed < 0, the sound has probably looped. */ + if( sLastFile == ThisFile && fSoundTimePassed >= 0 && fabsf(fDiff) > 0.003f ) + LOG->Trace("Song position skip in %s: expected %.3f, got %.3f (cur %f, prev %f) (%.3f difference)", + Basename(ThisFile).c_str(), fExpectedTimePassed, fSoundTimePassed, fSeconds, GAMESTATE->m_fMusicSeconds, fDiff ); + sLastFile = ThisFile; + } + if( g_Playing->m_TimingDelayed ) { if( approximate ) @@ -502,21 +521,6 @@ void GameSoundManager::Update( float fDeltaTime ) g_Playing->m_TimingDelayed = false; } } - else if( PREFSMAN->m_bLogSkips ) - { - const float fExpectedTimePassed = (tm - GAMESTATE->m_LastBeatUpdate) * g_Playing->m_Music->GetPlaybackRate(); - const float fSoundTimePassed = fSeconds - GAMESTATE->m_fMusicSeconds; - const float fDiff = fExpectedTimePassed - fSoundTimePassed; - - static CString sLastFile = ""; - const CString ThisFile = g_Playing->m_Music->GetLoadedFilePath(); - - /* If fSoundTimePassed < 0, the sound has probably looped. */ - if( sLastFile == ThisFile && fSoundTimePassed >= 0 && fabsf(fDiff) > 0.003f ) - LOG->Trace("Song position skip in %s: expected %.3f, got %.3f (cur %f, prev %f) (%.3f difference)", - Basename(ThisFile).c_str(), fExpectedTimePassed, fSoundTimePassed, fSeconds, GAMESTATE->m_fMusicSeconds, fDiff ); - sLastFile = ThisFile; - } CHECKPOINT_M( ssprintf("%f", fSeconds) ); GAMESTATE->UpdateSongPosition( fSeconds+fAdjust, g_Playing->m_Timing, tm+fAdjust );