[timing] More adjustments.

This commit is contained in:
Jason Felds
2011-07-27 23:03:33 -04:00
parent 62ac849c95
commit b711e34431
2 changed files with 43 additions and 6 deletions
+35 -3
View File
@@ -277,12 +277,19 @@ void AdjustSync::AutosyncTempo()
/* We assume that the stops were measured as a number of beats.
* Therefore, if we change the bpms, we need to make a similar
* change to the stops. */
vector<TimingSegment *> &stops = timing.allTimingSegments[SEGMENT_STOP_DELAY];
vector<TimingSegment *> &stops = timing.allTimingSegments[SEGMENT_STOP];
for (unsigned i = 0; i < stops.size(); i++)
{
StopSegment *s = static_cast<StopSegment *>(stops[i]);
s->SetPause(s->GetPause() * (1.0f - fSlope));
}
// Do the same for delays.
vector<TimingSegment *> &delays = timing.allTimingSegments[SEGMENT_DELAY];
for (unsigned i = 0; i < delays.size(); i++)
{
DelaySegment *s = static_cast<DelaySegment *>(delays[i]);
s->SetPause(s->GetPause() * (1.0f - fSlope));
}
SCREENMAN->SystemMessage( AUTOSYNC_CORRECTION_APPLIED.GetValue() );
}
@@ -377,8 +384,8 @@ void AdjustSync::GetSyncChangeTextSong( vector<RString> &vsAddTo )
}
}
vector<TimingSegment *> &stopTest = testing.allTimingSegments[SEGMENT_STOP_DELAY];
vector<TimingSegment *> &stopOrig = original.allTimingSegments[SEGMENT_STOP_DELAY];
vector<TimingSegment *> &stopTest = testing.allTimingSegments[SEGMENT_STOP];
vector<TimingSegment *> &stopOrig = original.allTimingSegments[SEGMENT_STOP];
for( unsigned i=0; i< stopTest.size(); i++ )
{
StopSegment *sT = static_cast<StopSegment *>(stopTest[i]);
@@ -401,6 +408,31 @@ void AdjustSync::GetSyncChangeTextSong( vector<RString> &vsAddTo )
fNew ) );
}
}
vector<TimingSegment *> &delyTest = testing.allTimingSegments[SEGMENT_DELAY];
vector<TimingSegment *> &delyOrig = original.allTimingSegments[SEGMENT_DELAY];
for( unsigned i=0; i< delyTest.size(); i++ )
{
DelaySegment *sT = static_cast<DelaySegment *>(delyTest[i]);
DelaySegment *sO = static_cast<DelaySegment *>(delyOrig[i]);
float fOld = Quantize( sO->GetPause(), 0.001f );
float fNew = Quantize( sT->GetPause(), 0.001f );
float fDelta = fNew - fOld;
if( fabsf(fDelta) > 0.0001f )
{
if ( i >= 4 )
{
vsAddTo.push_back(ETC.GetValue());
break;
}
vsAddTo.push_back( ssprintf(
CHANGED_STOP.GetValue(),
i+1,
fOld,
fNew ) );
}
}
if( vsAddTo.size() > iOriginalSize && s_fAverageError > 0.0f )
{