fix automation/control list behaviour when manually adding a point within existing...
authorPaul Davis <paul@linuxaudiosystems.com>
Sat, 8 Dec 2012 17:57:47 +0000 (17:57 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sat, 8 Dec 2012 17:57:47 +0000 (17:57 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@13619 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/evoral/src/ControlList.cpp

index 7db4e74650febcdfa09c7cdee7390d30e404b336..870fc43cb645b19431db61178b96f1ac55de25dc 100644 (file)
@@ -517,12 +517,24 @@ ControlList::add (double when, double value)
                        } else {
                                
                                /* not in a write pass: figure out the iterator we should insert in front of */
-                               
+
+                               DEBUG_TRACE (DEBUG::ControlList, string_compose ("compute MRI for position %1\n", when));
                                ControlEvent cp (when, 0.0f);
                                most_recent_insert_iterator = lower_bound (_events.begin(), _events.end(), &cp, time_comparator);
                        }
-               } 
-               
+
+               } else {
+
+                       /* not in a write pass, adding a point within existing
+                        * data: figure out the iterator we should insert in
+                        * front of 
+                        */
+                       
+                       DEBUG_TRACE (DEBUG::ControlList, string_compose ("compute(b) MRI for position %1\n", when));
+                       ControlEvent cp (when, 0.0f);
+                       most_recent_insert_iterator = lower_bound (_events.begin(), _events.end(), &cp, time_comparator);
+               }
+
                /* OK, now we're really ready to add a new point
                 */