summaryrefslogtreecommitdiff
path: root/libs/ardour/session_vst.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-04-02 22:33:11 +0200
committerRobin Gareus <robin@gareus.org>2018-04-02 22:33:11 +0200
commit868eec264f1cfa546e889b0651d5238e7a3367ee (patch)
tree4f557895a60824e88af28ef09fff9f29d2fd149d /libs/ardour/session_vst.cc
parentd0f7bec624cdaa133ed5d3661794d97109b7e3c7 (diff)
Implement VST UI touch (begin/end Edit)
Diffstat (limited to 'libs/ardour/session_vst.cc')
-rw-r--r--libs/ardour/session_vst.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/session_vst.cc b/libs/ardour/session_vst.cc
index 1b25659cc9..ffff11510b 100644
--- a/libs/ardour/session_vst.cc
+++ b/libs/ardour/session_vst.cc
@@ -500,11 +500,23 @@ intptr_t Session::vst_callback (
case audioMasterBeginEdit:
SHOW_CALLBACK ("audioMasterBeginEdit");
// begin of automation session (when mouse down), parameter index in <index>
+ if (plug && plug->plugin_insert ()) {
+ boost::shared_ptr<AutomationControl> ac = plug->plugin_insert ()->automation_control (Evoral::Parameter (PluginAutomation, 0, index));
+ if (ac) {
+ ac->start_touch (ac->session().transport_sample());
+ }
+ }
return 0;
case audioMasterEndEdit:
SHOW_CALLBACK ("audioMasterEndEdit");
// end of automation session (when mouse up), parameter index in <index>
+ if (plug && plug->plugin_insert ()) {
+ boost::shared_ptr<AutomationControl> ac = plug->plugin_insert ()->automation_control (Evoral::Parameter (PluginAutomation, 0, index));
+ if (ac) {
+ ac->stop_touch (ac->session().transport_sample());
+ }
+ }
return 0;
case audioMasterOpenFileSelector: