diff options
author | Robin Gareus <robin@gareus.org> | 2017-06-10 14:36:03 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-06-10 14:38:21 +0200 |
commit | 2bc2aea009d967fa23f9b04f0dbd2919e68aecb4 (patch) | |
tree | 0a55e19ae21041caf0c543982c1780bf4a8f972e /libs/ardour/ardour/slavable_automation_control.h | |
parent | 50c54250040509080f7686b64739ef94e6d29e51 (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.h | 12 |
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>) {} |