From d7716b055c3fc792d4f70df51bbc37f0e6220573 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 8 Dec 2012 17:57:47 +0000 Subject: [PATCH] fix automation/control list behaviour when manually adding a point within existing data git-svn-id: svn://localhost/ardour2/branches/3.0@13619 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/evoral/src/ControlList.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp index 7db4e74650..870fc43cb6 100644 --- a/libs/evoral/src/ControlList.cpp +++ b/libs/evoral/src/ControlList.cpp @@ -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 */