(*x)->set_min_tempo (min_tempo);
++tmp;
if (tmp != tempo_curves.end()) {
+
+ if (!(*x)->tempo().active()) {
+ (*x)->hide();
+ } else {
+ (*x)->show();
+ }
+
(*x)->set_position ((*x)->tempo().frame(), (*tmp)->tempo().frame());
} else {
(*x)->set_position ((*x)->tempo().frame(), UINT32_MAX);
(*x)->set_min_tempo (min_tempo);
++tmp;
if (tmp != tempo_curves.end()) {
+
+ if (!(*x)->tempo().active()) {
+ (*x)->hide();
+ } else {
+ (*x)->show();
+ }
+
(*x)->set_position ((*x)->tempo().frame(), (*tmp)->tempo().frame());
} else {
(*x)->set_position ((*x)->tempo().frame(), UINT32_MAX);
abort(); /*NOTREACHED*/
}
- if (!tempo_marker->tempo().initial()) {
+ if (!tempo_marker->tempo().locked_to_meter() && tempo_marker->tempo().active()) {
Glib::signal_idle().connect (sigc::bind (sigc::mem_fun(*this, &Editor::real_remove_tempo_marker), &tempo_marker->tempo()));
}
}
MeterSection *m = new MeterSection (0.0, 0.0, 0.0, start, _default_meter.divisions_per_bar(), _default_meter.note_divisor(), AudioTime, fr);
t->set_initial (true);
+ t->set_locked_to_meter (true);
+
m->set_initial (true);
/* note: frame time is correct (zero) for both of these */
TempoSection* t;
if ((*i)->is_tempo()) {
t = static_cast<TempoSection*> (*i);
- if (t->initial()) {
+ if (t->locked_to_meter()) {
t->set_active (true);
- continue;
} else if (t->position_lock_style() == AudioTime) {
- if (t->active () && t->frame() < frame) {
+ if (t->frame() < frame) {
t->set_active (false);
- t->set_pulse (0.0);
+ t->set_pulse (-1.0);
} else if (t->frame() > frame) {
t->set_active (true);
} else if (t->frame() == frame) {
if (section->initial()) {
/* lock the first tempo to our first meter */
- if (!set_active_tempi (imaginary, section->frame_at_minute (minute))) {
+ if (!set_active_tempi (imaginary, frame_at_minute (minute))) {
return false;
}
}