From 8d3a8ca9136c3fb8a8bd24dd5d99c8e2e76699bd Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 21 Oct 2015 22:31:30 -0400 Subject: Add AutomationControl::set_value_unchecked() and AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway. --- libs/ardour/pan_controllable.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libs/ardour/pan_controllable.cc') diff --git a/libs/ardour/pan_controllable.cc b/libs/ardour/pan_controllable.cc index ecffa17440..71c8a9f62f 100644 --- a/libs/ardour/pan_controllable.cc +++ b/libs/ardour/pan_controllable.cc @@ -37,7 +37,15 @@ PanControllable::lower () const void PanControllable::set_value (double v) { - boost::shared_ptr p = owner->panner(); + if (writable()) { + set_value_unchecked (v); + } +} + +void +PanControllable::set_value_unchecked (double v) +{ + boost::shared_ptr p = owner->panner(); if (!p) { /* no panner: just do it */ -- cgit v1.2.3