mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-02 03:47:42 +01:00
temporal: add & use a couple of TempMap methods for unit testing
This commit is contained in:
parent
f742ef661b
commit
f1b80cdbe1
3 changed files with 37 additions and 0 deletions
|
|
@ -2614,6 +2614,37 @@ TempoMap::dump (std::ostream& ostr) const
|
|||
ostr << "------------\n\n\n";
|
||||
}
|
||||
|
||||
Points::size_type
|
||||
TempoMap::count_tempos_in_points () const
|
||||
{
|
||||
Points::size_type n = 0;
|
||||
|
||||
for (Points::const_iterator p = _points.begin(); p != _points.end(); ++p) {
|
||||
if (dynamic_cast<MusicTimePoint const *> (&(*p))) {
|
||||
/* ignore */
|
||||
} else if (dynamic_cast<TempoPoint const *> (&(*p))) {
|
||||
++n;
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
Points::size_type
|
||||
TempoMap::count_meters_in_points () const
|
||||
{
|
||||
Points::size_type n = 0;
|
||||
|
||||
for (Points::const_iterator p = _points.begin(); p != _points.end(); ++p) {
|
||||
if (dynamic_cast<MusicTimePoint const *> (&(*p))) {
|
||||
/* ignore */
|
||||
} else if (dynamic_cast<MeterPoint const *> (&(*p))) {
|
||||
++n;
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
template<class const_traits_t> typename const_traits_t::iterator_type
|
||||
TempoMap::_get_tempo_and_meter (typename const_traits_t::tempo_point_type & tp,
|
||||
typename const_traits_t::meter_point_type & mp,
|
||||
|
|
|
|||
|
|
@ -741,6 +741,10 @@ class /*LIBTEMPORAL_API*/ TempoMap : public PBD::StatefulDestructible
|
|||
static thread_local SharedPtr _tempo_map_p;
|
||||
static SerializedRCUManager<TempoMap> _map_mgr;
|
||||
static bool fetch_condition ();
|
||||
public:
|
||||
/* These are only for use in unit tests */
|
||||
Points::size_type count_tempos_in_points() const;
|
||||
Points::size_type count_meters_in_points() const;
|
||||
public:
|
||||
LIBTEMPORAL_API static void init ();
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ TempoMapTest::addRemoveTest()
|
|||
tmap->dump (std::cout);
|
||||
|
||||
CPPUNIT_ASSERT (tmap->tempo_at (BBT_Argument (8, 1, 0)).note_types_per_minute() == Tempo (64, 4).note_types_per_minute());
|
||||
CPPUNIT_ASSERT (tmap->count_tempos_in_points () == 3);
|
||||
CPPUNIT_ASSERT (tmap->count_meters_in_points () == 3);
|
||||
|
||||
tmap->abort_update ();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue