summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/slavable_automation_control.h
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-06-10 14:36:03 +0200
committerRobin Gareus <robin@gareus.org>2017-06-10 14:38:21 +0200
commit2bc2aea009d967fa23f9b04f0dbd2919e68aecb4 (patch)
tree0a55e19ae21041caf0c543982c1780bf4a8f972e /libs/ardour/ardour/slavable_automation_control.h
parent50c54250040509080f7686b64739ef94e6d29e51 (diff)
Implement slaved boolean automation and update mute special-case
Diffstat (limited to 'libs/ardour/ardour/slavable_automation_control.h')
-rw-r--r--libs/ardour/ardour/slavable_automation_control.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/ardour/ardour/slavable_automation_control.h b/libs/ardour/ardour/slavable_automation_control.h
index acb5ad7471..ceafc79193 100644
--- a/libs/ardour/ardour/slavable_automation_control.h
+++ b/libs/ardour/ardour/slavable_automation_control.h
@@ -27,7 +27,7 @@ namespace ARDOUR {
class LIBARDOUR_API SlavableAutomationControl : public AutomationControl
{
- public:
+public:
SlavableAutomationControl(ARDOUR::Session&,
const Evoral::Parameter& parameter,
const ParameterDescriptor& desc,
@@ -80,10 +80,10 @@ class LIBARDOUR_API SlavableAutomationControl : public AutomationControl
bool find_next_event_locked (double now, double end, Evoral::ControlEvent& next_event) const;
- protected:
+protected:
class MasterRecord {
- public:
+ public:
MasterRecord (boost::shared_ptr<AutomationControl> gc, double r)
: _master (gc)
, _yn (false)
@@ -101,7 +101,7 @@ class LIBARDOUR_API SlavableAutomationControl : public AutomationControl
PBD::ScopedConnection connection;
- private:
+ private:
boost::shared_ptr<AutomationControl> _master;
/* holds most recently seen master value for boolean/toggle controls */
bool _yn;
@@ -117,6 +117,10 @@ class LIBARDOUR_API SlavableAutomationControl : public AutomationControl
void actually_set_value (double value, PBD::Controllable::GroupControlDisposition);
void update_boolean_masters_records (boost::shared_ptr<AutomationControl>);
+ virtual bool handle_master_change (boost::shared_ptr<AutomationControl>);
+ virtual bool boolean_automation_run_locked (framepos_t start, pframes_t len);
+ bool boolean_automation_run (framepos_t start, pframes_t len);
+
virtual void master_changed (bool from_self, GroupControlDisposition gcd, boost::shared_ptr<AutomationControl>);
virtual double get_masters_value_locked () const;
virtual void pre_remove_master (boost::shared_ptr<AutomationControl>) {}