summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_event.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-05-19 19:13:26 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-05-19 19:13:26 +0000
commit50ee09e80ff91bf0146e89728578d5e31aba23b7 (patch)
treeaf666ac1260e18e2a15465e89b1d23424673e525 /libs/ardour/automation_event.cc
parentc33d0ad760e311c37cfcb99e48948cc92472ad55 (diff)
fix naming of destructive track audio files
git-svn-id: svn://localhost/trunk/ardour2@515 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/automation_event.cc')
-rw-r--r--libs/ardour/automation_event.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/libs/ardour/automation_event.cc b/libs/ardour/automation_event.cc
index ea7e0e1b71..88932009bf 100644
--- a/libs/ardour/automation_event.cc
+++ b/libs/ardour/automation_event.cc
@@ -440,6 +440,42 @@ AutomationList::erase (AutomationList::iterator start, AutomationList::iterator
}
void
+AutomationList::reset_range (double start, double endt)
+{
+ bool reset = false;
+
+ {
+ LockMonitor lm (lock, __LINE__, __FILE__);
+ TimeComparator cmp;
+ ControlEvent cp (start, 0.0f);
+ iterator s;
+ iterator e;
+
+ if ((s = lower_bound (events.begin(), events.end(), &cp, cmp)) != events.end()) {
+
+ cp.when = endt;
+ e = upper_bound (events.begin(), events.end(), &cp, cmp);
+
+ for (iterator i = s; i != e; ++i) {
+ (*i)->value = default_value;
+ }
+
+ reset = true;
+
+ if (!no_state) {
+ save_state (_("removed range"));
+ }
+
+ mark_dirty ();
+ }
+ }
+
+ if (reset) {
+ maybe_signal_changed ();
+ }
+}
+
+void
AutomationList::erase_range (double start, double endt)
{
bool erased = false;