diff options
author | David Robillard <d@drobilla.net> | 2014-11-30 22:18:18 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-11-30 23:56:20 -0500 |
commit | 7eb4e5d22bf43fa1e6bc44dfa33d8732f744c2dd (patch) | |
tree | 8769e57a1e7382fc29e96ad461a419af3b4c9663 /libs/ardour | |
parent | b68fd1cc259eed8d6f67ce38458d95710063f24b (diff) |
Replace thinning static state with parameter.
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/automatable.cc | 50 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 2 |
2 files changed, 26 insertions, 26 deletions
diff --git a/libs/ardour/automatable.cc b/libs/ardour/automatable.cc index ef99fc70d3..906ff4ed3e 100644 --- a/libs/ardour/automatable.cc +++ b/libs/ardour/automatable.cc @@ -365,32 +365,34 @@ void Automatable::transport_stopped (framepos_t now) { for (Controls::iterator li = controls().begin(); li != controls().end(); ++li) { + boost::shared_ptr<AutomationControl> c = + boost::dynamic_pointer_cast<AutomationControl>(li->second); + if (!c) { + continue; + } - boost::shared_ptr<AutomationControl> c - = boost::dynamic_pointer_cast<AutomationControl>(li->second); - if (c) { - boost::shared_ptr<AutomationList> l - = boost::dynamic_pointer_cast<AutomationList>(c->list()); + boost::shared_ptr<AutomationList> l = + boost::dynamic_pointer_cast<AutomationList>(c->list()); + if (!l) { + continue; + } - if (l) { - /* Stop any active touch gesture just before we mark the write pass - as finished. If we don't do this, the transport can end up stopped with - an AutomationList thinking that a touch is still in progress and, - when the transport is re-started, a touch will magically - be happening without it ever have being started in the usual way. - */ - l->stop_touch (true, now); - l->write_pass_finished (now); - - if (l->automation_playback()) { - c->set_value(c->list()->eval(now)); - } - - if (l->automation_state() == Write) { - l->set_automation_state (Touch); - } - } - } + /* Stop any active touch gesture just before we mark the write pass + as finished. If we don't do this, the transport can end up stopped with + an AutomationList thinking that a touch is still in progress and, + when the transport is re-started, a touch will magically + be happening without it ever have being started in the usual way. + */ + l->stop_touch (true, now); + l->write_pass_finished (now, Config->get_automation_thinning_factor()); + + if (l->automation_playback()) { + c->set_value(c->list()->eval(now)); + } + + if (l->automation_state() == Write) { + l->set_automation_state (Touch); + } } } diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 0fb5171882..8463b92503 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -3503,8 +3503,6 @@ Session::config_changed (std::string p, bool ours) last_timecode_valid = false; } else if (p == "playback-buffer-seconds") { AudioSource::allocate_working_buffers (frame_rate()); - } else if (p == "automation-thinning-factor") { - Evoral::ControlList::set_thinning_factor (Config->get_automation_thinning_factor()); } else if (p == "ltc-source-port") { reconnect_ltc_input (); } else if (p == "ltc-sink-port") { |