13
0

tempo.h reorganization. should be a no-op

This commit is contained in:
nick_m 2016-11-04 01:54:00 +11:00
parent 9674b15358
commit 99e707217b

View File

@ -396,7 +396,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
/* TEMPO- AND METER-SENSITIVE FUNCTIONS
bbt_at_frame(), frame_at_bbt(), beat_at_frame(), frame_at_beat(), tempo_at_beat()
bbt_at_frame(), frame_at_bbt(), beat_at_frame(), frame_at_beat()
and bbt_duration_at()
are all sensitive to tempo and meter, and will give answers
that align with the grid formed by tempo and meter sections.
@ -408,15 +408,14 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
double beat_at_frame (const framecnt_t& frame) const;
framepos_t frame_at_beat (const double& beat) const;
Tempo tempo_at_frame (const framepos_t& frame) const;
framepos_t frame_at_tempo (const Tempo& tempo) const;
const Meter& meter_at_frame (framepos_t) const;
Tempo tempo_at_beat (const double& beat) const;
double beat_at_tempo (const Tempo& tempo) const;
const Meter& meter_at_frame (framepos_t) const;
/* bbt - it's nearly always better to use beats.*/
/* bbt - it's nearly always better to use meter-based beat (above)
unless tick resolution is desirable.
*/
Timecode::BBT_Time bbt_at_frame (framepos_t when);
Timecode::BBT_Time bbt_at_frame_rt (framepos_t when);
framepos_t frame_at_bbt (const Timecode::BBT_Time&);
@ -427,6 +426,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
double quarter_note_at_bbt_rt (const Timecode::BBT_Time& bbt);
framecnt_t bbt_duration_at (framepos_t, const Timecode::BBT_Time&, int dir);
framepos_t framepos_plus_bbt (framepos_t pos, Timecode::BBT_Time b) const;
/* TEMPO-SENSITIVE FUNCTIONS
@ -441,25 +441,30 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
framepos_t framepos_plus_qn (framepos_t, Evoral::Beats) const;
Evoral::Beats framewalk_to_qn (framepos_t pos, framecnt_t distance) const;
framepos_t framepos_plus_bbt (framepos_t pos, Timecode::BBT_Time b) const;
/* quarter note related functions are also tempo-sensitive and ignore meter.
*/
double quarter_note_at_frame (const framepos_t frame);
double quarter_note_at_frame_rt (const framepos_t frame);
framepos_t frame_at_quarter_note (const double quarter_note);
framecnt_t frames_between_quarter_notes (const double start, const double end);
double quarter_note_at_beat (const double beat);
double beat_at_quarter_note (const double beat);
framecnt_t frames_between_quarter_notes (const double start, const double end);
double exact_qn_at_frame (const framepos_t& frame, const int32_t sub_num);
double exact_beat_at_frame (const framepos_t& frame, const int32_t sub_num);
Tempo tempo_at_frame (const framepos_t& frame) const;
framepos_t frame_at_tempo (const Tempo& tempo) const;
Tempo tempo_at_quarter_note (const double& beat) const;
double quarter_note_at_tempo (const Tempo& tempo) const;
void gui_move_tempo (TempoSection*, const framepos_t& frame, const int& sub_num);
void gui_move_meter (MeterSection*, const framepos_t& frame);
bool gui_change_tempo (TempoSection*, const Tempo& bpm);
void gui_dilate_tempo (TempoSection* tempo, const framepos_t& frame, const framepos_t& end_frame);
double exact_beat_at_frame (const framepos_t& frame, const int32_t sub_num);
double exact_qn_at_frame (const framepos_t& frame, const int32_t sub_num);
std::pair<double, framepos_t> predict_tempo_position (TempoSection* section, const Timecode::BBT_Time& bbt);
bool can_solve_bbt (TempoSection* section, const Timecode::BBT_Time& bbt);