summaryrefslogtreecommitdiff
path: root/libs/evoral/src/ControlList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/evoral/src/ControlList.cpp')
-rw-r--r--libs/evoral/src/ControlList.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/evoral/src/ControlList.cpp b/libs/evoral/src/ControlList.cpp
index ce8ea89fc9..92234a6ea7 100644
--- a/libs/evoral/src/ControlList.cpp
+++ b/libs/evoral/src/ControlList.cpp
@@ -251,6 +251,19 @@ ControlList::extend_to (double when)
}
void
+ControlList::y_transform (boost::function<double(double)> callback)
+{
+ {
+ Glib::Threads::RWLock::WriterLock lm (_lock);
+ for (iterator i = _events.begin(); i != _events.end(); ++i) {
+ (*i)->value = callback ((*i)->value);
+ }
+ mark_dirty ();
+ }
+ maybe_signal_changed ();
+}
+
+void
ControlList::_x_scale (double factor)
{
for (iterator i = _events.begin(); i != _events.end(); ++i) {