diff options
author | Robin Gareus <robin@gareus.org> | 2017-06-13 20:57:01 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-06-13 20:57:37 +0200 |
commit | 8e6f71b8c190d2311e5547e349c4cc1fc37f131f (patch) | |
tree | a5b33e4f6db799c5eddc839295a81905af616fa3 /libs/evoral/src/ControlList.cpp | |
parent | c1912b6d516b69db67757687de38a115b3b6ab69 (diff) |
Apply master-value to automation on disconnect.
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) { |