From ae321721cfea3c1be2af11b2978af2dd8997e77d Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 18 Dec 2022 01:45:04 +0100 Subject: [PATCH] Also thin automation after touch/latch AutomationList::start_touch must not start a write-pass. That function is also called when the transport is no rolling. A write-pass is started via AutomationWatch::add_automation_watch. --- libs/ardour/automation_list.cc | 4 ---- libs/evoral/ControlList.cc | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/libs/ardour/automation_list.cc b/libs/ardour/automation_list.cc index db158cb3b3..4791d3525a 100644 --- a/libs/ardour/automation_list.cc +++ b/libs/ardour/automation_list.cc @@ -264,10 +264,6 @@ AutomationList::write_pass_finished (timepos_t const & when, double thinning_fac void AutomationList::start_touch (timepos_t const & when) { - if (_state == Touch) { - start_write_pass (when); - } - g_atomic_int_set (&_touching, 1); } diff --git a/libs/evoral/ControlList.cc b/libs/evoral/ControlList.cc index b6e8111f4d..60cfb601b0 100644 --- a/libs/evoral/ControlList.cc +++ b/libs/evoral/ControlList.cc @@ -608,6 +608,7 @@ ControlList::add_guard_point (timepos_t const& time, timecnt_t const& offset) */ if (_in_write_pass && new_write_pass) { WritePassStarted (); /* EMIT SIGNAL w/WriteLock */ + did_write_during_pass = true; new_write_pass = false; } @@ -827,7 +828,6 @@ ControlList::add (timepos_t const& time, double value, bool with_guards, bool wi if (with_guards) { add_guard_point (insert_position, timecnt_t (_time_domain)); - did_write_during_pass = true; } else { /* not adding a guard, but we need to set iterator appropriately */ const ControlEvent cp (when, 0.0);