- double bbt_to_beats_locked (Timecode::BBT_Time bbt);
- Timecode::BBT_Time beats_to_bbt_locked (double beats);
- double beat_at_frame_locked (framecnt_t frame) const;
- framecnt_t frame_at_beat_locked (double beat) const;
- double tick_at_frame_locked (framecnt_t frame) const;
- framecnt_t frame_at_tick_locked (double tick) const;
- framepos_t frame_time_locked (const Timecode::BBT_Time&);
+
+ double beat_at_frame_locked (const Metrics& metrics, const framecnt_t& frame) const;
+ framecnt_t frame_at_beat_locked (const Metrics& metrics, const double& beat) const;
+
+ double pulse_at_beat_locked (const Metrics& metrics, const double& beat) const;
+ double beat_at_pulse_locked (const Metrics& metrics, const double& pulse) const;
+
+ double pulse_at_frame_locked (const Metrics& metrics, const framecnt_t& frame) const;
+ framecnt_t frame_at_pulse_locked (const Metrics& metrics, const double& pulse) const;
+
+ Tempo tempo_at_frame_locked (const Metrics& metrics, const framepos_t& frame) const;
+ framepos_t frame_at_tempo_locked (const Metrics& metrics, const Tempo& tempo) const;
+
+ Timecode::BBT_Time bbt_at_frame_locked (const Metrics& metrics, const framepos_t& frame) const;
+ framepos_t frame_at_bbt_locked (const Metrics& metrics, const Timecode::BBT_Time&) const;
+
+ double beat_at_bbt_locked (const Metrics& metrics, const Timecode::BBT_Time& bbt) const ;
+ Timecode::BBT_Time bbt_at_beat_locked (const Metrics& metrics, const double& beats) const;
+
+ double pulse_at_bbt_locked (const Metrics& metrics, const Timecode::BBT_Time& bbt) const;
+ Timecode::BBT_Time bbt_at_pulse_locked (const Metrics& metrics, const double& pulse) const;
+
+ const TempoSection& tempo_section_at_frame_locked (const Metrics& metrics, framepos_t frame) const;
+ const TempoSection& tempo_section_at_beat_locked (const Metrics& metrics, const double& beat) const;
+
+ const MeterSection& meter_section_at_frame_locked (const Metrics& metrics, framepos_t frame) const;
+ const MeterSection& meter_section_at_beat_locked (const Metrics& metrics, const double& beat) const;
+
+ bool check_solved (const Metrics& metrics) const;
+ bool set_active_tempos (const Metrics& metrics, const framepos_t& frame);
+
+ bool solve_map_frame (Metrics& metrics, TempoSection* section, const framepos_t& frame);
+ bool solve_map_pulse (Metrics& metrics, TempoSection* section, const double& pulse);
+ bool solve_map_frame (Metrics& metrics, MeterSection* section, const framepos_t& frame);
+ bool solve_map_bbt (Metrics& metrics, MeterSection* section, const Timecode::BBT_Time& bbt);