summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-05-05 12:32:36 +1000
committernick_m <mainsbridge@gmail.com>2016-05-27 23:38:16 +1000
commit89ba10c05a9f3bd4b741387971dfdbae7df7e030 (patch)
tree463122e87730164964769c094e8fc76588b39346
parent8b4f5dcd5f6a570ef920fe77c4dba5242726db5f (diff)
Yempo ramps - fix new meters ending up at 0, clean code a bit.
-rw-r--r--libs/ardour/ardour/tempo.h4
-rw-r--r--libs/ardour/tempo.cc21
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;
}