diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-08 23:29:17 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-05-31 15:30:40 -0400 |
commit | c660703f95a269a7f312e84564345f8961cb7e75 (patch) | |
tree | f09c8dc32e0afc1ed0fc2715d82697f2a82c06c4 /libs/ardour/ardour/gain_control.h | |
parent | 74f8a812765ba197173489407e4d30b0b4f94d66 (diff) |
redesign control slave/master system, move code from GainControl to AutomationControl
Diffstat (limited to 'libs/ardour/ardour/gain_control.h')
-rw-r--r-- | libs/ardour/ardour/gain_control.h | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/libs/ardour/ardour/gain_control.h b/libs/ardour/ardour/gain_control.h index e565dd33c9..4ec538e698 100644 --- a/libs/ardour/ardour/gain_control.h +++ b/libs/ardour/ardour/gain_control.h @@ -20,10 +20,8 @@ #define __ardour_gain_control_h__ #include <string> -#include <map> #include <boost/shared_ptr.hpp> -#include <glibmm/threads.h> #include "pbd/controllable.h" @@ -41,7 +39,6 @@ class LIBARDOUR_API GainControl : public AutomationControl { GainControl (Session& session, const Evoral::Parameter ¶m, boost::shared_ptr<AutomationList> al = boost::shared_ptr<AutomationList>()); - double get_value () const; void set_value (double val, PBD::Controllable::GroupControlDisposition group_override); void set_value_unchecked (double); @@ -54,51 +51,15 @@ class LIBARDOUR_API GainControl : public AutomationControl { double lower_db; double range_db; - gain_t get_master_gain () const; - void add_master (boost::shared_ptr<VCA>); - void remove_master (boost::shared_ptr<VCA>); - void clear_masters (); - bool slaved_to (boost::shared_ptr<VCA>) const; - bool slaved () const; - std::vector<uint32_t> masters () const; - - PBD::Signal0<void> VCAStatusChange; - int set_state (XMLNode const&, int); XMLNode& get_state(); private: - class MasterRecord { - public: - MasterRecord (boost::shared_ptr<AutomationControl> gc, double r) - : _master (gc) - , _ratio (r) - {} - - boost::shared_ptr<AutomationControl> master() const { return _master; } - double ratio () const { return _ratio; } - void reset_ratio (double r) { _ratio = r; } - - PBD::ScopedConnection connection; - - private: - boost::shared_ptr<AutomationControl> _master; - double _ratio; - - }; - - mutable Glib::Threads::RWLock master_lock; - typedef std::map<uint32_t,MasterRecord> Masters; - Masters _masters; - PBD::ScopedConnectionList masters_connections; std::string masters_string; PBD::ScopedConnection vca_loaded_connection; - gain_t get_value_locked () const; - gain_t get_master_gain_locked () const; - void master_going_away (boost::weak_ptr<VCA>); - void recompute_masters_ratios (double val); void vcas_loaded(); + void recompute_masters_ratios (double val); void _set_value (double val, PBD::Controllable::GroupControlDisposition group_override); }; |