From 2e3c25eca709b734297edc3f4487264cbf6c1a58 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 4 Jul 2016 09:25:31 -0400 Subject: make sure that rec-enable changes get to do their non-RT stuff before being queued for RT-context execution --- libs/ardour/ardour/automation_control.h | 6 ++++++ libs/ardour/ardour/record_enable_control.h | 1 + 2 files changed, 7 insertions(+) (limited to 'libs/ardour/ardour') diff --git a/libs/ardour/ardour/automation_control.h b/libs/ardour/ardour/automation_control.h index ecc16cb134..e15abbec46 100644 --- a/libs/ardour/ardour/automation_control.h +++ b/libs/ardour/ardour/automation_control.h @@ -134,6 +134,12 @@ class LIBARDOUR_API AutomationControl virtual void actually_set_value (double value, PBD::Controllable::GroupControlDisposition); + /* Session needs to call this method before it queues up the real + change for execution in a realtime context. C++ access control sucks. + */ + friend class Session; + virtual void do_pre_realtime_queue_stuff (double new_value) {} + private: /* I am unclear on why we have to make ControlGroup a friend in order to get access to the ::set_group() method when it is already diff --git a/libs/ardour/ardour/record_enable_control.h b/libs/ardour/ardour/record_enable_control.h index d631c500a3..c5cb65c597 100644 --- a/libs/ardour/ardour/record_enable_control.h +++ b/libs/ardour/ardour/record_enable_control.h @@ -50,6 +50,7 @@ class LIBARDOUR_API RecordEnableControl : public SlavableAutomationControl protected: void actually_set_value (double val, Controllable::GroupControlDisposition gcd); + void do_pre_realtime_queue_stuff (double value); private: Recordable& _recordable; -- cgit v1.2.3