diff options
Diffstat (limited to 'libs/evoral/src/ControlList.cpp')
-rw-r--r-- | libs/evoral/src/ControlList.cpp | 13 |
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) { |