+ Metrics metrics;
+ framecnt_t _frame_rate;
+ mutable Glib::Threads::RWLock lock;
+ BBTPointList _map;
+
+ void recompute_map (bool reassign_tempo_bbt, framepos_t end = -1);
+ void extend_map (framepos_t end);
+ void require_map_to (framepos_t pos);
+ void require_map_to (const Timecode::BBT_Time&);
+ void _extend_map (TempoSection* tempo, MeterSection* meter,
+ Metrics::iterator next_metric,
+ Timecode::BBT_Time current, framepos_t current_frame, framepos_t end);
+
+ BBTPointList::const_iterator bbt_before_or_at (framepos_t);
+ BBTPointList::const_iterator bbt_before_or_at (const Timecode::BBT_Time&);
+ BBTPointList::const_iterator bbt_after_or_at (framepos_t);
+
+ framepos_t round_to_type (framepos_t fr, int dir, BBTPointType);
+ void bbt_time (framepos_t, Timecode::BBT_Time&, const BBTPointList::const_iterator&);
+ framecnt_t bbt_duration_at_unlocked (const Timecode::BBT_Time& when, const Timecode::BBT_Time& bbt, int dir);
+