1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

Define new virtual functions Track::GetIntervals (const and non-const)

This commit is contained in:
Paul Licameli
2020-09-09 07:35:58 -04:00
parent c60bf1c994
commit 6510b859f3
8 changed files with 154 additions and 0 deletions

View File

@@ -84,6 +84,28 @@ LabelTrack::LabelTrack(const LabelTrack &orig) :
}
}
template< typename Container >
static Container MakeIntervals(const LabelArray &labels)
{
Container result;
size_t ii = 0;
for (const auto &label : labels)
result.emplace_back(
label.getT0(), label.getT1(),
std::make_unique<LabelTrack::IntervalData>( ii++ ) );
return result;
}
auto LabelTrack::GetIntervals() const -> ConstIntervals
{
return MakeIntervals<ConstIntervals>(mLabels);
}
auto LabelTrack::GetIntervals() -> Intervals
{
return MakeIntervals<Intervals>(mLabels);
}
void LabelTrack::SetLabel( size_t iLabel, const LabelStruct &newLabel )
{
if( iLabel >= mLabels.size() ) {