OSC: Signal for editor mixer change. (Selected or not)
[ardour.git] / libs / ardour / ardour / tempo.h
index 52c4d04b8230a4267807c12d9f1a47110b75d3e4..33d9fb937d6af3aa78396ca787cfe95f6ec75deb 100644 (file)
@@ -149,9 +149,6 @@ class LIBARDOUR_API MeterSection : public MetricSection, public Meter {
 
        XMLNode& get_state() const;
 
-       void set_pulse (double w) {
-               MetricSection::set_pulse (w);
-       }
        void set_beat (std::pair<double, Timecode::BBT_Time>& w) {
                _beat = w.first;
                _bbt = w.second;
@@ -394,7 +391,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
 
        /* TEMPO- AND METER-SENSITIVE FUNCTIONS
 
-          bbt_time(), beat_at_frame(), frame_at_beat(), frame_time()
+          bbt_at_frame(), frame_at_bbt(), beat_at_frame(), frame_at_beat(), tempo_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.
@@ -409,6 +406,8 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
        Tempo tempo_at_frame (const framepos_t& frame) const;
        framepos_t frame_at_tempo (const Tempo& tempo) const;
 
+       Tempo tempo_at_beat (const double& beat) const;
+
        const Meter& meter_at_frame (framepos_t) const;
 
        /* you probably only need to use pulses when moving tempos */
@@ -420,6 +419,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
 
        /* bbt - it's nearly always better to use beats.*/
        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&);
 
        double beat_at_bbt (const Timecode::BBT_Time& bbt);
@@ -445,12 +445,12 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
        framepos_t framepos_minus_beats (framepos_t, Evoral::Beats) const;
        Evoral::Beats framewalk_to_beats (framepos_t pos, framecnt_t distance) const;
 
-       std::pair<double, framepos_t> predict_tempo_position (TempoSection* section, const Timecode::BBT_Time& bbt);
-       void gui_move_tempo (TempoSection*, const framepos_t& frame);
+       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, const double& pulse);
 
+       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);
 
        PBD::Signal0<void> MetricPositionChanged;