summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-02-08 18:55:05 +0100
committerPaul Davis <paul@linuxaudiosystems.com>2017-02-08 18:55:05 +0100
commitbbbb874c0318fa4a136431619bf91a939984530c (patch)
tree89a2832113495a1b6d3db9f950e6ed8cb04c6f23 /libs/ardour/ardour
parent234ea15499e71484b4da7ca890b49163f3befca5 (diff)
an automation control that has to do things before its value is set in an RT context should potentially tell its ControlGroup
This fixes record-enable controls in a group failing generate a call to the required stuff for tracks (moving meter position, preparing diskstream) #7213
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/automation_control.h3
-rw-r--r--libs/ardour/ardour/control_group.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/libs/ardour/ardour/automation_control.h b/libs/ardour/ardour/automation_control.h
index 158996133c..21c7832996 100644
--- a/libs/ardour/ardour/automation_control.h
+++ b/libs/ardour/ardour/automation_control.h
@@ -140,6 +140,9 @@ class LIBARDOUR_API AutomationControl
change for execution in a realtime context. C++ access control sucks.
*/
friend class Session;
+ /* this is what the session invokes */
+ void pre_realtime_queue_stuff (double new_value, PBD::Controllable::GroupControlDisposition);
+ /* this will be invoked in turn on behalf of the group or the control by itself */
virtual void do_pre_realtime_queue_stuff (double new_value) {}
private:
diff --git a/libs/ardour/ardour/control_group.h b/libs/ardour/ardour/control_group.h
index e1b83bb7b4..73ad312d95 100644
--- a/libs/ardour/ardour/control_group.h
+++ b/libs/ardour/ardour/control_group.h
@@ -63,6 +63,7 @@ class LIBARDOUR_API ControlGroup : public boost::enable_shared_from_this<Control
Evoral::Parameter parameter() const { return _parameter; }
virtual void set_group_value (boost::shared_ptr<AutomationControl>, double val);
+ virtual void pre_realtime_queue_stuff (double val);
bool use_me (PBD::Controllable::GroupControlDisposition gcd) const {
switch (gcd) {