diff --git a/src/TimingData.cpp b/src/TimingData.cpp index 580479f1c0..abd21b01fc 100644 --- a/src/TimingData.cpp +++ b/src/TimingData.cpp @@ -17,6 +17,26 @@ TimingData::~TimingData() { } +TimingData TimingData::CopyRange(int startRow, int endRow) +{ + TimingData tmp; + + for (unsigned i = 0; i < NUM_TimingSegmentType; i++) + { + for (unsigned j = 0; j < this->allTimingSegments[i].size(); j++) + { + int row = this->allTimingSegments[i][j]->GetRow(); + if (row >= startRow && row < endRow) + { + tmp.AddSegment(static_cast(i), + this->allTimingSegments[i][j]); + } + } + } + + return tmp; +} + void TimingData::GetActualBPM( float &fMinBPMOut, float &fMaxBPMOut, float highest ) const { fMinBPMOut = FLT_MAX; diff --git a/src/TimingData.h b/src/TimingData.h index 2486ff5701..b6d79214cf 100644 --- a/src/TimingData.h +++ b/src/TimingData.h @@ -51,6 +51,8 @@ public: TimingData(float fOffset = 0); ~TimingData(); + + TimingData CopyRange(int startRow, int endRow); /** * @brief Gets the actual BPM of the song, * while respecting a limit.