[timing] Down to about 130 errors.
Need a break, maybe some help.
This commit is contained in:
+82
-282
@@ -18,8 +18,10 @@ void TimingData::GetActualBPM( float &fMinBPMOut, float &fMaxBPMOut, float highe
|
|||||||
{
|
{
|
||||||
fMinBPMOut = FLT_MAX;
|
fMinBPMOut = FLT_MAX;
|
||||||
fMaxBPMOut = 0;
|
fMaxBPMOut = 0;
|
||||||
FOREACH_CONST( BPMSegment, m_BPMSegments, seg )
|
const vector<TimingSegment *> &bpms = this->allTimingSegments[SEGMENT_BPM];
|
||||||
|
for (unsigned i = 0; i < bpms.size(); i++)
|
||||||
{
|
{
|
||||||
|
BPMSegment *seg = static_cast<BPMSegment *>(bpms[i]);
|
||||||
const float fBPM = seg->GetBPM();
|
const float fBPM = seg->GetBPM();
|
||||||
fMaxBPMOut = clamp(max( fBPM, fMaxBPMOut ), 0, highest);
|
fMaxBPMOut = clamp(max( fBPM, fMaxBPMOut ), 0, highest);
|
||||||
fMinBPMOut = min( fBPM, fMinBPMOut );
|
fMinBPMOut = min( fBPM, fMinBPMOut );
|
||||||
@@ -29,7 +31,8 @@ void TimingData::GetActualBPM( float &fMinBPMOut, float &fMaxBPMOut, float highe
|
|||||||
|
|
||||||
void TimingData::AddBPMSegment( const BPMSegment &seg )
|
void TimingData::AddBPMSegment( const BPMSegment &seg )
|
||||||
{
|
{
|
||||||
m_BPMSegments.insert( upper_bound(m_BPMSegments.begin(), m_BPMSegments.end(), seg), seg );
|
const vector<TimingSegment *> &segs = this->allTimingSegments[SEGMENT_BPM];
|
||||||
|
segs.insert( upper_bound(segs.begin(), segs.end(), seg), seg );
|
||||||
}
|
}
|
||||||
|
|
||||||
void TimingData::AddStopSegment( const StopSegment &seg )
|
void TimingData::AddStopSegment( const StopSegment &seg )
|
||||||
@@ -81,11 +84,13 @@ void TimingData::AddFakeSegment( const FakeSegment &seg )
|
|||||||
void TimingData::SetBPMAtRow( int iNoteRow, float fBPM )
|
void TimingData::SetBPMAtRow( int iNoteRow, float fBPM )
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
for( i=0; i<m_BPMSegments.size(); i++ )
|
vector<TimingSegment *> &bpms = this->allTimingSegments[SEGMENT_BPM];
|
||||||
if( m_BPMSegments[i].GetRow() >= iNoteRow )
|
for( i=0; i<bpms.size(); i++ )
|
||||||
|
if( bpms[i]->GetRow() >= iNoteRow )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if( i == m_BPMSegments.size() || m_BPMSegments[i].GetRow() != iNoteRow )
|
BPMSegment *bs = static_cast<BPMSegment *>(bpms[i]);
|
||||||
|
if( i == bpms.size() || bs->GetRow() != iNoteRow )
|
||||||
{
|
{
|
||||||
// There is no BPMSegment at the specified beat. If the BPM being set differs
|
// There is no BPMSegment at the specified beat. If the BPM being set differs
|
||||||
// from the last BPMSegment's BPM, create a new BPMSegment.
|
// from the last BPMSegment's BPM, create a new BPMSegment.
|
||||||
@@ -1389,91 +1394,25 @@ void TimingData::ScaleRegion( float fScale, int iStartIndex, int iEndIndex, bool
|
|||||||
|
|
||||||
void TimingData::InsertRows( int iStartRow, int iRowsToAdd )
|
void TimingData::InsertRows( int iStartRow, int iRowsToAdd )
|
||||||
{
|
{
|
||||||
for( unsigned i = 0; i < m_BPMSegments.size(); i++ )
|
for (unsigned i = 0; i < NUM_TimingSegmentTypes; i++)
|
||||||
{
|
{
|
||||||
BPMSegment &bpm = m_BPMSegments[i];
|
vector<TimingSegment *> &segs = this->allTimingSegments[i];
|
||||||
if( bpm.GetRow() < iStartRow )
|
for (unsigned j = 0; j < segs.size(); j++)
|
||||||
continue;
|
{
|
||||||
bpm.SetRow( bpm.GetRow() + iRowsToAdd );
|
TimingSegment *seg = segs[j];
|
||||||
}
|
if (seg->GetRow() < iStartRow)
|
||||||
|
continue;
|
||||||
for( unsigned i = 0; i < m_StopSegments.size(); i++ )
|
seg->SetRow(seg->GetRow() + iRowsToAdd);
|
||||||
{
|
}
|
||||||
StopSegment &stop = m_StopSegments[i];
|
|
||||||
if( stop.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
stop.SetRow(stop.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_WarpSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
WarpSegment &warp = m_WarpSegments[i];
|
|
||||||
if( warp.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
warp.SetRow(warp.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_vTimeSignatureSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
TimeSignatureSegment &time = m_vTimeSignatureSegments[i];
|
|
||||||
if( time.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
time.SetRow(time.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_TickcountSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
TickcountSegment &tick = m_TickcountSegments[i];
|
|
||||||
if( tick.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
tick.SetRow(tick.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_ComboSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
ComboSegment &comb = m_ComboSegments[i];
|
|
||||||
if( comb.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
comb.SetRow(comb.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
for( unsigned i = 0; i < m_LabelSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
LabelSegment &labl = m_LabelSegments[i];
|
|
||||||
if( labl.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
labl.SetRow(labl.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_SpeedSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
SpeedSegment &sped = m_SpeedSegments[i];
|
|
||||||
if( sped.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
sped.SetRow(sped.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_FakeSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
FakeSegment &fake = m_FakeSegments[i];
|
|
||||||
if( fake.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
fake.SetRow(fake.GetRow() + iRowsToAdd);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_ScrollSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
ScrollSegment &scrl = m_ScrollSegments[i];
|
|
||||||
if( scrl.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
scrl.SetRow(scrl.GetRow() + iRowsToAdd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( iStartRow == 0 )
|
if( iStartRow == 0 )
|
||||||
{
|
{
|
||||||
/* If we're shifting up at the beginning, we just shifted up the first
|
/* If we're shifting up at the beginning, we just shifted up the first
|
||||||
* BPMSegment. That segment must always begin at 0. */
|
* BPMSegment. That segment must always begin at 0. */
|
||||||
ASSERT( m_BPMSegments.size() > 0 );
|
vector<TimingSegment *> &bpms = this->allTimingSegments[SEGMENT_BPM];
|
||||||
m_BPMSegments[0].SetRow(0);
|
ASSERT_M( bpms.size() > 0, "There must be at least one BPM Segment in the chart!" );
|
||||||
|
bpms[0]->SetRow(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1485,190 +1424,27 @@ void TimingData::DeleteRows( int iStartRow, int iRowsToDelete )
|
|||||||
|
|
||||||
/* We're moving rows up. Delete any BPM changes and stops in the region
|
/* We're moving rows up. Delete any BPM changes and stops in the region
|
||||||
* being deleted. */
|
* being deleted. */
|
||||||
for( unsigned i = 0; i < m_BPMSegments.size(); i++ )
|
for (unsigned i = 0; i < NUM_TimingSegmentTypes; i++)
|
||||||
{
|
{
|
||||||
BPMSegment &bpm = m_BPMSegments[i];
|
vector<TimingSegment *> &segs = this->allTimingSegments[i];
|
||||||
|
for (unsigned j = 0; j < segs.size(); j++)
|
||||||
// Before deleted region:
|
|
||||||
if( bpm.GetRow() < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Inside deleted region:
|
|
||||||
if( bpm.GetRow() < iStartRow+iRowsToDelete )
|
|
||||||
{
|
{
|
||||||
m_BPMSegments.erase( m_BPMSegments.begin()+i, m_BPMSegments.begin()+i+1 );
|
TimingSegment *seg = segs[j];
|
||||||
--i;
|
// Before deleted region:
|
||||||
continue;
|
if (seg->GetRow() < iStartRow)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Inside deleted region:
|
||||||
|
if (seg->GetRow() < iStartRow + iRowsToDelete)
|
||||||
|
{
|
||||||
|
segs.erase(segs.begin()+j, segs.begin()+j+1);
|
||||||
|
--j;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// After deleted regions:
|
||||||
|
seg->SetRow(seg->GetRow() - iRowsToDelete);
|
||||||
}
|
}
|
||||||
|
|
||||||
// After deleted region:
|
|
||||||
bpm.SetRow( bpm.GetRow() - iRowsToDelete );
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_StopSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
StopSegment &stop = m_StopSegments[i];
|
|
||||||
int keyRow = stop.GetRow();
|
|
||||||
// Before deleted region:
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Inside deleted region:
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_StopSegments.erase( m_StopSegments.begin()+i, m_StopSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// After deleted region:
|
|
||||||
stop.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_WarpSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
WarpSegment &warp = m_WarpSegments[i];
|
|
||||||
int keyRow = warp.GetRow();
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_WarpSegments.erase( m_WarpSegments.begin()+i, m_WarpSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
warp.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_vTimeSignatureSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
TimeSignatureSegment &time = m_vTimeSignatureSegments[i];
|
|
||||||
int keyRow = time.GetRow();
|
|
||||||
// Before deleted region:
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Inside deleted region:
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_vTimeSignatureSegments.erase(
|
|
||||||
m_vTimeSignatureSegments.begin()+i,
|
|
||||||
m_vTimeSignatureSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// After deleted region:
|
|
||||||
|
|
||||||
|
|
||||||
time.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_TickcountSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
TickcountSegment &tick = m_TickcountSegments[i];
|
|
||||||
int keyRow = tick.GetRow();
|
|
||||||
// Before deleted region:
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Inside deleted region:
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_TickcountSegments.erase( m_TickcountSegments.begin()+i, m_TickcountSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// After deleted region:
|
|
||||||
tick.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_ComboSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
ComboSegment &comb = m_ComboSegments[i];
|
|
||||||
int keyRow = comb.GetRow();
|
|
||||||
// Before deleted region:
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// Inside deleted region:
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_ComboSegments.erase( m_ComboSegments.begin()+i, m_ComboSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// After deleted region:
|
|
||||||
comb.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_LabelSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
LabelSegment &labl = m_LabelSegments[i];
|
|
||||||
int keyRow = labl.GetRow();
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_LabelSegments.erase( m_LabelSegments.begin()+i, m_LabelSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
labl.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_SpeedSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
SpeedSegment &sped = m_SpeedSegments[i];
|
|
||||||
int keyRow = sped.GetRow();
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_SpeedSegments.erase( m_SpeedSegments.begin()+i, m_SpeedSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
sped.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_FakeSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
FakeSegment &fake = m_FakeSegments[i];
|
|
||||||
int keyRow = fake.GetRow();
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_FakeSegments.erase( m_FakeSegments.begin()+i, m_FakeSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
fake.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( unsigned i = 0; i < m_ScrollSegments.size(); i++ )
|
|
||||||
{
|
|
||||||
ScrollSegment &scrl = m_ScrollSegments[i];
|
|
||||||
int keyRow = scrl.GetRow();
|
|
||||||
if( keyRow < iStartRow )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if( keyRow < iStartRow+iRowsToDelete )
|
|
||||||
{
|
|
||||||
m_ScrollSegments.erase( m_ScrollSegments.begin()+i, m_ScrollSegments.begin()+i+1 );
|
|
||||||
--i;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
scrl.SetRow(keyRow - iRowsToDelete);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this->SetBPMAtRow( iStartRow, fNewBPM );
|
this->SetBPMAtRow( iStartRow, fNewBPM );
|
||||||
@@ -1789,22 +1565,22 @@ void TimingData::TidyUpData()
|
|||||||
|
|
||||||
bool TimingData::HasBpmChanges() const
|
bool TimingData::HasBpmChanges() const
|
||||||
{
|
{
|
||||||
return m_BPMSegments.size()>1;
|
return this->allTimingSegments[SEGMENT_BPM].size()>1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TimingData::HasStops() const
|
bool TimingData::HasStops() const
|
||||||
{
|
{
|
||||||
return m_StopSegments.size()>0;
|
return this->allTimingSegments[SEGMENT_STOP_DELAY].size()>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TimingData::HasWarps() const
|
bool TimingData::HasWarps() const
|
||||||
{
|
{
|
||||||
return m_WarpSegments.size()>0;
|
return this->allTimingSegments[SEGMENT_WARP].size()>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TimingData::HasFakes() const
|
bool TimingData::HasFakes() const
|
||||||
{
|
{
|
||||||
return m_FakeSegments.size()>0;
|
return this->allTimingSegments[SEGMENT_FAKE].size()>0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TimingData::HasSpeedChanges() const
|
bool TimingData::HasSpeedChanges() const
|
||||||
@@ -1869,8 +1645,10 @@ public:
|
|||||||
static int GetWarps( T* p, lua_State *L )
|
static int GetWarps( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vWarps;
|
vector<RString> vWarps;
|
||||||
FOREACH_CONST( WarpSegment, p->m_WarpSegments, seg )
|
vector<TimingSegment *> &warps = p->allTimingSegments[SEGMENT_WARP];
|
||||||
|
for (unsigned i = 0; i < warps.size(); i++)
|
||||||
{
|
{
|
||||||
|
WarpSegment *seg = static_cast<WarpSegment *>(warps[i]);
|
||||||
const float length = seg->GetLength();
|
const float length = seg->GetLength();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
vWarps.push_back( ssprintf("%f=%f", beat, length) );
|
vWarps.push_back( ssprintf("%f=%f", beat, length) );
|
||||||
@@ -1881,8 +1659,10 @@ public:
|
|||||||
static int GetFakes( T* p, lua_State *L )
|
static int GetFakes( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vFakes;
|
vector<RString> vFakes;
|
||||||
FOREACH_CONST( FakeSegment, p->m_FakeSegments, seg )
|
vector<TimingSegment *> &fakes = p->allTimingSegments[SEGMENT_FAKE];
|
||||||
|
for (unsigned i = 0; i < fakes.size(); i++)
|
||||||
{
|
{
|
||||||
|
FakeSegment *seg = static_cast<FakeSegment *>(fakes[i]);
|
||||||
const float length = seg->GetLength();
|
const float length = seg->GetLength();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
vFakes.push_back( ssprintf("%f=%f", beat, length) );
|
vFakes.push_back( ssprintf("%f=%f", beat, length) );
|
||||||
@@ -1893,8 +1673,10 @@ public:
|
|||||||
static int GetScrolls( T* p, lua_State *L )
|
static int GetScrolls( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vScrolls;
|
vector<RString> vScrolls;
|
||||||
FOREACH_CONST( ScrollSegment, p->m_ScrollSegments, seg )
|
vector<TimingSegment *> &scrolls = p->allTimingSegments[SEGMENT_SCROLL];
|
||||||
|
for (unsigned i = 0; i < scrolls.size(); i++)
|
||||||
{
|
{
|
||||||
|
ScrollSegment *seg = static_cast<ScrollSegment *>(scrolls[i]);
|
||||||
const float ratio = seg->GetRatio();
|
const float ratio = seg->GetRatio();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
vScrolls.push_back( ssprintf("%f=%f", beat, ratio) );
|
vScrolls.push_back( ssprintf("%f=%f", beat, ratio) );
|
||||||
@@ -1905,8 +1687,10 @@ public:
|
|||||||
static int GetSpeeds( T* p, lua_State *L )
|
static int GetSpeeds( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vSpeeds;
|
vector<RString> vSpeeds;
|
||||||
FOREACH_CONST( SpeedSegment, p->m_SpeedSegments, seg )
|
vector<TimingSegment *> &speeds = p->allTimingSegments[SEGMENT_SPEED];
|
||||||
|
for (unsigned i = 0; i < speeds.size(); i++)
|
||||||
{
|
{
|
||||||
|
SpeedSegment *seg = static_cast<SpeedSegment *>(speeds[i]);
|
||||||
const float length = seg->GetLength();
|
const float length = seg->GetLength();
|
||||||
const float ratio = seg->GetRatio();
|
const float ratio = seg->GetRatio();
|
||||||
const unsigned short unit = seg->GetUnit();
|
const unsigned short unit = seg->GetUnit();
|
||||||
@@ -1919,8 +1703,10 @@ public:
|
|||||||
static int GetTimeSignatures( T* p, lua_State *L )
|
static int GetTimeSignatures( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vTimes;
|
vector<RString> vTimes;
|
||||||
FOREACH_CONST( TimeSignatureSegment, p->m_vTimeSignatureSegments, seg )
|
vector<TimingSegment *> &tSigs = p->allTimingSegments[SEGMENT_TIME_SIG];
|
||||||
|
for (unsigned i = 0; i < tSigs.size(); i++)
|
||||||
{
|
{
|
||||||
|
TimeSignatureSegment *seg = static_cast<TimeSignatureSegment *>(tSigs[i]);
|
||||||
const int numerator = seg->GetNum();
|
const int numerator = seg->GetNum();
|
||||||
const int denominator = seg->GetDen();
|
const int denominator = seg->GetDen();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
@@ -1932,8 +1718,10 @@ public:
|
|||||||
static int GetCombos( T* p, lua_State *L )
|
static int GetCombos( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vCombos;
|
vector<RString> vCombos;
|
||||||
FOREACH_CONST( ComboSegment, p->m_ComboSegments, seg )
|
vector<TimingSegment *> &combos = p->allTimingSegments[SEGMENT_COMBO];
|
||||||
|
for (unsigned i = 0; i < combos.size(); i++)
|
||||||
{
|
{
|
||||||
|
ComboSegment *seg = static_cast<ComboSegment *>(combos[i]);
|
||||||
const int combo = seg->GetCombo();
|
const int combo = seg->GetCombo();
|
||||||
const int miss = seg->GetMissCombo();
|
const int miss = seg->GetMissCombo();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
@@ -1945,11 +1733,13 @@ public:
|
|||||||
static int GetTickcounts( T* p, lua_State *L )
|
static int GetTickcounts( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vTicks;
|
vector<RString> vTicks;
|
||||||
FOREACH_CONST( TickcountSegment, p->m_TickcountSegments, seg )
|
vector<TimingSegment *> &ticks = p->allTimingSegments[SEGMENT_TICKCOUNT];
|
||||||
|
for (unsigned i = 0; i < ticks.size(); i++)
|
||||||
{
|
{
|
||||||
const int ticks = seg->GetTicks();
|
TickcountSegment *seg = static_cast<TickcountSegment *>(ticks[i]);
|
||||||
|
const int tick = seg->GetTicks();
|
||||||
const float beat = seg->GetBeat();
|
const float beat = seg->GetBeat();
|
||||||
vTicks.push_back( ssprintf("%f=%d", beat, ticks) );
|
vTicks.push_back( ssprintf("%f=%d", beat, tick) );
|
||||||
}
|
}
|
||||||
LuaHelpers::CreateTableFromArray(vTicks, L);
|
LuaHelpers::CreateTableFromArray(vTicks, L);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1957,8 +1747,10 @@ public:
|
|||||||
static int GetStops( T* p, lua_State *L )
|
static int GetStops( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vStops;
|
vector<RString> vStops;
|
||||||
FOREACH_CONST( StopSegment, p->m_StopSegments, seg )
|
vector<TimingSegment *> &stops = p->allTimingSegments[SEGMENT_STOP_DELAY];
|
||||||
|
for (unsigned i = 0; i < stops.size(); i++)
|
||||||
{
|
{
|
||||||
|
StopSegment *seg = static_cast<StopSegment *>(stops[i]);
|
||||||
const float fStartBeat = seg->GetBeat();
|
const float fStartBeat = seg->GetBeat();
|
||||||
const float fStopLength = seg->GetPause();
|
const float fStopLength = seg->GetPause();
|
||||||
if(!seg->GetDelay())
|
if(!seg->GetDelay())
|
||||||
@@ -1971,8 +1763,10 @@ public:
|
|||||||
static int GetDelays( T* p, lua_State *L )
|
static int GetDelays( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vDelays;
|
vector<RString> vDelays;
|
||||||
FOREACH_CONST( StopSegment, p->m_StopSegments, seg )
|
vector<TimingSegment *> &stops = p->allTimingSegments[SEGMENT_STOP_DELAY];
|
||||||
|
for (unsigned i = 0; i < stops.size(); i++)
|
||||||
{
|
{
|
||||||
|
StopSegment *seg = static_cast<StopSegment *>(stops[i]);
|
||||||
const float fStartBeat = seg->GetBeat();
|
const float fStartBeat = seg->GetBeat();
|
||||||
const float fStopLength = seg->GetPause();
|
const float fStopLength = seg->GetPause();
|
||||||
if(seg->GetDelay())
|
if(seg->GetDelay())
|
||||||
@@ -1985,8 +1779,10 @@ public:
|
|||||||
static int GetBPMs( T* p, lua_State *L )
|
static int GetBPMs( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<float> vBPMs;
|
vector<float> vBPMs;
|
||||||
FOREACH_CONST( BPMSegment, p->m_BPMSegments, seg )
|
vector<TimingSegment *> &bpms = p->allTimingSegments[SEGMENT_BPM];
|
||||||
|
for (unsigned i = 0; i < bpms.size(); i++)
|
||||||
{
|
{
|
||||||
|
BPMSegment *seg = static_cast<BPMSegment *>(bpms[i]);
|
||||||
const float fBPM = seg->GetBPM();
|
const float fBPM = seg->GetBPM();
|
||||||
vBPMs.push_back( fBPM );
|
vBPMs.push_back( fBPM );
|
||||||
}
|
}
|
||||||
@@ -1997,8 +1793,10 @@ public:
|
|||||||
static int GetLabels( T* p, lua_State *L )
|
static int GetLabels( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vLabels;
|
vector<RString> vLabels;
|
||||||
FOREACH_CONST( LabelSegment, p->m_LabelSegments, seg )
|
vector<TimingSegment *> &labels = p->allTimingSegments[SEGMENT_LABEL];
|
||||||
|
for (unsigned i = 0; i < labels.size(); i++)
|
||||||
{
|
{
|
||||||
|
LabelSegment *seg = static_cast<LabelSegment *>(labels[i]);
|
||||||
const float fStartRow = seg->GetBeat();
|
const float fStartRow = seg->GetBeat();
|
||||||
const RString sLabel = seg->GetLabel();
|
const RString sLabel = seg->GetLabel();
|
||||||
vLabels.push_back( ssprintf("%f=%s", fStartRow, sLabel.c_str()) );
|
vLabels.push_back( ssprintf("%f=%s", fStartRow, sLabel.c_str()) );
|
||||||
@@ -2009,8 +1807,10 @@ public:
|
|||||||
static int GetBPMsAndTimes( T* p, lua_State *L )
|
static int GetBPMsAndTimes( T* p, lua_State *L )
|
||||||
{
|
{
|
||||||
vector<RString> vBPMs;
|
vector<RString> vBPMs;
|
||||||
FOREACH_CONST( BPMSegment, p->m_BPMSegments, seg )
|
vector<TimingSegment *> &bpms = p->allTimingSegments[SEGMENT_BPM];
|
||||||
|
for (unsigned i = 0; i < bpms.size(); i++)
|
||||||
{
|
{
|
||||||
|
BPMSegment *seg = static_cast<BPMSegment *>(bpms[i]);
|
||||||
const float fStartRow = seg->GetBeat();
|
const float fStartRow = seg->GetBeat();
|
||||||
const float fBPM = seg->GetBPM();
|
const float fBPM = seg->GetBPM();
|
||||||
vBPMs.push_back( ssprintf("%f=%f", fStartRow, fBPM) );
|
vBPMs.push_back( ssprintf("%f=%f", fStartRow, fBPM) );
|
||||||
|
|||||||
Reference in New Issue
Block a user