X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Fautomation_controller.cc;h=aa23cb2601e860c3707fb608b9610c19c26ff54c;hb=03d28648208bbb1be9108593e9327b6375ecb5ef;hp=f63f2ed70c4fb48bc92c3ab38ce5c9d5f12b90ea;hpb=606a65321d72fe354db49f0c74a5c6968eb87a53;p=ardour.git diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc index f63f2ed70c..aa23cb2601 100644 --- a/gtk2_ardour/automation_controller.cc +++ b/gtk2_ardour/automation_controller.cc @@ -19,12 +19,16 @@ */ #include + #include "pbd/error.h" + #include "ardour/automation_list.h" #include "ardour/automation_control.h" #include "ardour/event_type_map.h" #include "ardour/automatable.h" #include "ardour/panner.h" +#include "ardour/session.h" + #include "ardour_ui.h" #include "utils.h" #include "automation_controller.h" @@ -121,13 +125,24 @@ AutomationController::value_adjusted() void AutomationController::start_touch() { - _controllable->start_touch(); + _controllable->start_touch (_controllable->session().transport_frame()); } void -AutomationController::end_touch() +AutomationController::end_touch () { - _controllable->stop_touch(); + if (_controllable->automation_state() == Touch) { + + bool mark = false; + double when = 0; + + if (_controllable->session().transport_rolling()) { + mark = true; + when = _controllable->session().transport_frame(); + } + + _controllable->stop_touch (mark, when); + } } void