Tempo ramps - don't set incorrect lock style when changing tempo type.
authornick_m <mainsbridge@gmail.com>
Fri, 15 Apr 2016 20:29:15 +0000 (06:29 +1000)
committernick_m <mainsbridge@gmail.com>
Fri, 27 May 2016 13:38:15 +0000 (23:38 +1000)
- fixes random crashes when changing tempo type with right click.

gtk2_ardour/editor_markers.cc

index 194d6163e70e2ae19186089076084c1b2701b2b4..c597ec292d323e78b4af8359ba74618c81ded8a1 100644 (file)
@@ -1390,7 +1390,6 @@ Editor::toggle_marker_lock_style ()
 
        if (mm) {
                MeterSection* msp = &mm->meter();
-
                if (mm->meter().position_lock_style() == AudioTime) {
                        _session->tempo_map().replace_meter (*msp, Meter (msp->divisions_per_bar(), msp->note_divisor()), msp->bbt());
                } else {
@@ -1415,11 +1414,9 @@ Editor::toggle_tempo_type ()
 
        if (tm) {
                TempoSection* tsp = &tm->tempo();
-               if (tm->tempo().type() == TempoSection::Constant) {
-                       _session->tempo_map().replace_tempo (*tsp, Tempo (tsp->beats_per_minute(), tsp->note_type()), tsp->pulse(), TempoSection::Ramp);
-               } else {
-                       _session->tempo_map().replace_tempo (*tsp, Tempo (tsp->beats_per_minute(), tsp->note_type()), tsp->pulse(), TempoSection::Constant);
-               }
+               _session->tempo_map().replace_tempo (*tsp, Tempo (tsp->beats_per_minute(), tsp->note_type())
+                                                    , (tsp->position_lock_style() == MusicTime) ? tsp->pulse() : tsp->frame()
+                                                    , (tsp->type() == TempoSection::Ramp) ? TempoSection::Constant : TempoSection::Ramp);
        }
 }