- void bbt_time (framepos_t when, BBT_Time&) const;
- framecnt_t frame_time (const BBT_Time&) const;
- framecnt_t bbt_duration_at (framepos_t, const BBT_Time&, int dir) const;
+ void bbt_time (framepos_t when, Timecode::BBT_Time&);
+ /* realtime safe variant of ::bbt_time(), will throw
+ std::logic_error if the map is not large enough
+ to provide an answer.
+ */
+ void bbt_time_rt (framepos_t when, Timecode::BBT_Time&);
+ framecnt_t frame_time (const Timecode::BBT_Time&);
+ framecnt_t bbt_duration_at (framepos_t, const Timecode::BBT_Time&, int dir);
+
+ /* TEMPO-SENSITIVE FUNCTIONS
+
+ These next 4 functions will all take tempo in account and should be
+ used to determine position (and in the last case, distance in beats)
+ when tempo matters but meter does not.
+
+ They SHOULD be used to determine the position of events
+ whose location is canonically defined in beats.
+ */