Tempo ramps - don't allow cross-dragging the first meter.
authornick_m <mainsbridge@gmail.com>
Thu, 14 Apr 2016 15:13:14 +0000 (01:13 +1000)
committernick_m <mainsbridge@gmail.com>
Fri, 27 May 2016 13:38:15 +0000 (23:38 +1000)
libs/ardour/tempo.cc

index e6f43e412aae81fb108f7345684d961437c22188..f0fd17728aab7be5168b7d8a79e35bc5b6b8e810 100644 (file)
@@ -1998,6 +1998,11 @@ TempoMap::solve_map (Metrics& imaginary, TempoSection* section, const double& pu
 void
 TempoMap::solve_map (Metrics& imaginary, MeterSection* section, const framepos_t& frame)
 {
+       /* disallow moving first meter past any subsequent one, and any movable meter before the first one */
+       const MeterSection* other =  &meter_section_at_locked (frame);
+       if ((!section->movable() && other->movable()) || (!other->movable() && section->movable() && other->frame() >= frame)) {
+               return;
+       }
        MeterSection* prev_m = 0;
 
        if (!section->movable()) {