summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/gain_control.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-03-08 23:29:17 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:40 -0400
commitc660703f95a269a7f312e84564345f8961cb7e75 (patch)
treef09c8dc32e0afc1ed0fc2715d82697f2a82c06c4 /libs/ardour/ardour/gain_control.h
parent74f8a812765ba197173489407e4d30b0b4f94d66 (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.h41
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 &param,
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);
};