13
0

switching to "touch" implies existing automation.

This fixes an issue of Fader jumping to unity when switching from
manual to touch if there is no prior automation.
Likewise for plugin parameters jumping to "default"
This commit is contained in:
Robin Gareus 2016-06-27 19:04:38 +02:00
parent 741428b6fd
commit b7e645ec61

View File

@ -144,6 +144,8 @@ AutomationControl::set_automation_state (AutoState as)
} }
if (_list && as != alist()->automation_state()) { if (_list && as != alist()->automation_state()) {
const double val = get_value ();
alist()->set_automation_state (as); alist()->set_automation_state (as);
if (_desc.toggled) { if (_desc.toggled) {
return; // No watch for boolean automation return; // No watch for boolean automation
@ -152,6 +154,10 @@ AutomationControl::set_automation_state (AutoState as)
if (as == Write) { if (as == Write) {
AutomationWatch::instance().add_automation_watch (shared_from_this()); AutomationWatch::instance().add_automation_watch (shared_from_this());
} else if (as == Touch) { } else if (as == Touch) {
if (alist()->empty()) {
Control::set_double (val, _session.transport_frame(), true);
Changed (true, Controllable::NoGroup);
}
if (!touching()) { if (!touching()) {
AutomationWatch::instance().remove_automation_watch (shared_from_this()); AutomationWatch::instance().remove_automation_watch (shared_from_this());
} else { } else {