13
0

Fix thinko in automation write undo.

- also allow saved automation list state to be touch or off if
	  actually in write mode.
This commit is contained in:
nick_m 2015-06-17 22:19:21 +10:00
parent 44790ebff0
commit 80090f0f71
2 changed files with 7 additions and 5 deletions

View File

@ -88,6 +88,8 @@ AutomationControl::set_automation_state (AutoState as)
}
if (as == Write) {
/* get state for undo */
_before = &alist ()->get_state ();
AutomationWatch::instance().add_automation_watch (shared_from_this());
} else if (as == Touch) {
if (!touching()) {
@ -122,10 +124,6 @@ AutomationControl::start_touch(double when)
if (!touching()) {
if (alist()->automation_state() == Write) {
_before = &alist ()->get_state ();
}
if (alist()->automation_state() == Touch) {
/* subtle. aligns the user value with the playback */
set_value (get_value ());

View File

@ -276,7 +276,11 @@ AutomationList::state (bool full)
if (_state != Write) {
root->add_property ("state", auto_state_to_string (_state));
} else {
root->add_property ("state", auto_state_to_string (Off));
if (_events.empty ()) {
root->add_property ("state", auto_state_to_string (Off));
} else {
root->add_property ("state", auto_state_to_string (Touch));
}
}
} else {
/* never save anything but Off for automation state to a template */