diff options
-rw-r--r-- | libs/ardour/ardour/tempo.h | 4 | ||||
-rw-r--r-- | libs/ardour/tempo.cc | 21 |
2 files changed, 8 insertions, 17 deletions
diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index 889fde3e99..6a56c194a4 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -506,8 +506,8 @@ private: TempoSection* add_tempo_locked (const Tempo&, double pulse, bool recompute, TempoSection::Type type); TempoSection* add_tempo_locked (const Tempo&, framepos_t frame, bool recompute, TempoSection::Type type); - MeterSection* add_meter_locked (const Meter&, double beat, Timecode::BBT_Time where, bool recompute); - MeterSection* add_meter_locked (const Meter&, framepos_t frame, double beat, Timecode::BBT_Time where, bool recompute); + MeterSection* add_meter_locked (const Meter&, double beat, const Timecode::BBT_Time& where, bool recompute); + MeterSection* add_meter_locked (const Meter&, framepos_t frame, double beat, const Timecode::BBT_Time& where, bool recompute); bool remove_tempo_locked (const TempoSection&); bool remove_meter_locked (const MeterSection&); diff --git a/libs/ardour/tempo.cc b/libs/ardour/tempo.cc index 8af5ab3fbe..8625d85eaf 100644 --- a/libs/ardour/tempo.cc +++ b/libs/ardour/tempo.cc @@ -879,7 +879,7 @@ TempoMap::do_insert (MetricSection* section) } _metrics.insert (i, section); - //dump (_metrics, std::cerr); + //dump (_metrics, std::cout); } } @@ -1084,7 +1084,7 @@ TempoMap::add_meter (const Meter& meter, const framepos_t& frame, const double& } MeterSection* -TempoMap::add_meter_locked (const Meter& meter, double beat, BBT_Time where, bool recompute) +TempoMap::add_meter_locked (const Meter& meter, double beat, const BBT_Time& where, bool recompute) { /* a new meter always starts a new bar on the first beat. so round the start time appropriately. remember that @@ -1093,14 +1093,10 @@ TempoMap::add_meter_locked (const Meter& meter, double beat, BBT_Time where, boo */ - if (where.beats != 1) { - where.beats = 1; - where.bars++; - } - /* new meters *always* start on a beat. */ - where.ticks = 0; const double pulse = pulse_at_beat_locked (_metrics, beat); MeterSection* new_meter = new MeterSection (pulse, beat, where, meter.divisions_per_bar(), meter.note_divisor()); + new_meter->set_frame (frame_at_pulse_locked (_metrics, pulse)); + do_insert (new_meter); if (recompute) { @@ -1111,7 +1107,7 @@ TempoMap::add_meter_locked (const Meter& meter, double beat, BBT_Time where, boo } MeterSection* -TempoMap::add_meter_locked (const Meter& meter, framepos_t frame, double beat, Timecode::BBT_Time where, bool recompute) +TempoMap::add_meter_locked (const Meter& meter, framepos_t frame, double beat, const Timecode::BBT_Time& where, bool recompute) { MeterSection* new_meter = new MeterSection (frame, beat, where, meter.divisions_per_bar(), meter.note_divisor()); TempoSection* t = 0; @@ -1398,7 +1394,6 @@ TempoMap::recompute_meters (Metrics& metrics) prev_m = meter; } } - //dump (_metrics, std::cerr; } void @@ -2025,8 +2020,6 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const framepos_t return true; } - //dump (imaginary, std::cerr); - return false; } @@ -2100,8 +2093,6 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const double& pu return true; } - //dump (imaginary, std::cerr); - return false; } @@ -2261,7 +2252,7 @@ TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const framepos_t } else { recompute_meters (imaginary); } - //dump (imaginary, std::cerr); + return true; } |