[sm130labels] Add the other definitions.
This commit is contained in:
@@ -224,6 +224,27 @@ void TimingData::SetComboAtRow( int iRow, int iCombo )
|
||||
}
|
||||
}
|
||||
|
||||
void TimingData::SetLabelAtRow( int iRow, const RString sLabel )
|
||||
{
|
||||
unsigned i;
|
||||
for( i=0; i<m_LabelSegments.size(); i++ )
|
||||
if( m_LabelSegments[i].m_iStartRow >= iRow )
|
||||
break;
|
||||
|
||||
if( i == m_LabelSegments.size() || m_LabelSegments[i].m_iStartRow != iRow )
|
||||
{
|
||||
if( i == 0 || m_LabelSegments[i-1].m_sLabel != sLabel )
|
||||
AddLabelSegment( LabelSegment(iRow, sLabel ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( i > 0 && m_LabelSegments[i-1].m_sLabel == sLabel )
|
||||
m_LabelSegments.erase( m_LabelSegments.begin()+i, m_LabelSegments.begin()+i+1 );
|
||||
else
|
||||
m_LabelSegments[i].m_sLabel = sLabel;
|
||||
}
|
||||
}
|
||||
|
||||
float TimingData::GetStopAtRow( int iNoteRow, bool bDelay ) const
|
||||
{
|
||||
for( unsigned i=0; i<m_StopSegments.size(); i++ )
|
||||
@@ -252,6 +273,11 @@ int TimingData::GetComboAtRow( int iNoteRow ) const
|
||||
return m_ComboSegments[GetComboSegmentIndexAtRow( iNoteRow )].m_iCombo;
|
||||
}
|
||||
|
||||
RString TimingData::GetLabelAtRow( int iRow ) const
|
||||
{
|
||||
return m_LabelSegments[GetLabelSegmentIndexAtRow( iRow )].m_sLabel;
|
||||
}
|
||||
|
||||
float TimingData::GetWarpAtRow( int iWarpRow ) const
|
||||
{
|
||||
for( unsigned i=0; i<m_WarpSegments.size(); i++ )
|
||||
@@ -389,6 +415,18 @@ int TimingData::GetComboSegmentIndexAtRow( int iRow ) const
|
||||
return static_cast<int>(i);
|
||||
}
|
||||
|
||||
int TimingData::GetLabelSegmentIndexAtRow( int iRow ) const
|
||||
{
|
||||
unsigned i;
|
||||
for( i=0; i<m_LabelSegments.size()-1; i++ )
|
||||
{
|
||||
const LabelSegment& s = m_LabelSegments[i+1];
|
||||
if( s.m_iStartRow > iRow )
|
||||
break;
|
||||
}
|
||||
return static_cast<int>(i);
|
||||
}
|
||||
|
||||
BPMSegment& TimingData::GetBPMSegmentAtRow( int iNoteRow )
|
||||
{
|
||||
static BPMSegment empty;
|
||||
@@ -427,6 +465,15 @@ ComboSegment& TimingData::GetComboSegmentAtRow( int iRow )
|
||||
return m_ComboSegments[i];
|
||||
}
|
||||
|
||||
LabelSegment& TimingData::GetLabelSegmentAtRow( int iRow )
|
||||
{
|
||||
unsigned i;
|
||||
for( i=0; i<m_LabelSegments.size()-1; i++ )
|
||||
if( m_LabelSegments[i+1].m_iStartRow > iRow )
|
||||
break;
|
||||
return m_LabelSegments[i];
|
||||
}
|
||||
|
||||
StopSegment& TimingData::GetStopSegmentAtRow( int iNoteRow, bool bDelay )
|
||||
{
|
||||
static StopSegment empty;
|
||||
@@ -803,6 +850,13 @@ void TimingData::InsertRows( int iStartRow, int iRowsToAdd )
|
||||
continue;
|
||||
comb.m_iStartRow += iRowsToAdd;
|
||||
}
|
||||
for( unsigned i = 0; i < m_LabelSegments.size(); i++ )
|
||||
{
|
||||
LabelSegment &labl = m_LabelSegments[i];
|
||||
if( labl.m_iStartRow < iStartRow )
|
||||
continue;
|
||||
labl.m_iStartRow += iRowsToAdd;
|
||||
}
|
||||
|
||||
if( iStartRow == 0 )
|
||||
{
|
||||
@@ -944,6 +998,22 @@ void TimingData::DeleteRows( int iStartRow, int iRowsToDelete )
|
||||
// After deleted region:
|
||||
comb.m_iStartRow -= iRowsToDelete;
|
||||
}
|
||||
|
||||
for( unsigned i = 0; i < m_LabelSegments.size(); i++ )
|
||||
{
|
||||
LabelSegment &labl = m_LabelSegments[i];
|
||||
|
||||
if( labl.m_iStartRow < iStartRow )
|
||||
continue;
|
||||
|
||||
if( labl.m_iStartRow < iStartRow+iRowsToDelete )
|
||||
{
|
||||
m_LabelSegments.erase( m_LabelSegments.begin()+i, m_LabelSegments.begin()+i+1 );
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
labl.m_iStartRow -= iRowsToDelete;
|
||||
}
|
||||
|
||||
this->SetBPMAtRow( iStartRow, fNewBPM );
|
||||
}
|
||||
@@ -1049,6 +1119,18 @@ public:
|
||||
LuaHelpers::CreateTableFromArray(vBPMs, L);
|
||||
return 1;
|
||||
}
|
||||
static int GetLabels( T* p, lua_State *L )
|
||||
{
|
||||
vector<RString> vLabels;
|
||||
FOREACH_CONST( LabelSegment, p->m_LabelSegments, seg )
|
||||
{
|
||||
const float fStartRow = NoteRowToBeat(seg->m_iStartRow);
|
||||
const RString sLabel = seg->m_sLabel;
|
||||
vLabels.push_back( ssprintf("%f=%s", fStartRow, sLabel.c_str()) );
|
||||
}
|
||||
LuaHelpers::CreateTableFromArray(vLabels, L);
|
||||
return 1;
|
||||
}
|
||||
static int GetBPMsAndTimes( T* p, lua_State *L )
|
||||
{
|
||||
vector<RString> vBPMs;
|
||||
@@ -1087,6 +1169,7 @@ public:
|
||||
ADD_METHOD( GetStops );
|
||||
ADD_METHOD( GetDelays );
|
||||
ADD_METHOD( GetBPMs );
|
||||
ADD_METHOD( GetLabels );
|
||||
ADD_METHOD( GetBPMsAndTimes );
|
||||
ADD_METHOD( GetActualBPM );
|
||||
ADD_METHOD( HasNegativeBPMs );
|
||||
|
||||
Reference in New Issue
Block a user