diff --git a/src/TimingSegments.cpp b/src/TimingSegments.cpp index 0d241da25d..304623c285 100644 --- a/src/TimingSegments.cpp +++ b/src/TimingSegments.cpp @@ -250,18 +250,24 @@ void SpeedSegment::SetUnit(const int i) this->unit = static_cast(i); } -void SpeedSegment::Scale( int start, int length, int newLength ) +void SpeedSegment::Scale( int start, int oldLength, int newLength ) { if( GetUnit() == 0 ) { // XXX: this function is duplicated, there should be a better way float startBeat = GetBeat(); float endBeat = startBeat + GetLength(); - float newStartBeat = ScalePosition( NoteRowToBeat(start), NoteRowToBeat(length), NoteRowToBeat(newLength), startBeat ); - float newEndBeat = ScalePosition( NoteRowToBeat(start), NoteRowToBeat(length), NoteRowToBeat(newLength), endBeat ); + float newStartBeat = ScalePosition(NoteRowToBeat(start), + NoteRowToBeat(oldLength), + NoteRowToBeat(newLength), + startBeat); + float newEndBeat = ScalePosition(NoteRowToBeat(start), + NoteRowToBeat(oldLength), + NoteRowToBeat(newLength), + endBeat); SetLength( newEndBeat - newStartBeat ); } - TimingSegment::Scale( start, length, newLength ); + TimingSegment::Scale( start, oldLength, newLength ); } bool SpeedSegment::operator<( const SpeedSegment &other ) const