double frames_per_bar (const Tempo&, framecnt_t sr) const;
double frames_per_grid (const Tempo&, framecnt_t sr) const;
+ inline bool operator==(const Meter& other)
+ { return _divisions_per_bar == other.divisions_per_bar() && _note_type == other.note_divisor(); }
+
protected:
/** The number of divisions in a bar. This is a floating point value because
there are musical traditions on our planet that do not limit
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);
+ void gui_set_tempo_position (TempoSection*, const framepos_t& frame, const int& sub_num);
+ void gui_set_meter_position (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);
+ void gui_stretch_tempo (TempoSection* tempo, const framepos_t& frame, const framepos_t& end_frame);
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);
}; /* namespace ARDOUR */
-std::ostream& operator<< (std::ostream&, const ARDOUR::Meter&);
-std::ostream& operator<< (std::ostream&, const ARDOUR::Tempo&);
-std::ostream& operator<< (std::ostream&, const ARDOUR::MetricSection&);
+LIBARDOUR_API std::ostream& operator<< (std::ostream&, const ARDOUR::Meter&);
+LIBARDOUR_API std::ostream& operator<< (std::ostream&, const ARDOUR::Tempo&);
+LIBARDOUR_API std::ostream& operator<< (std::ostream&, const ARDOUR::MetricSection&);
#endif /* __ardour_tempo_h__ */