#define __ardour_gain_control_h__
#include <string>
-#include <set>
#include <boost/shared_ptr.hpp>
-#include <glibmm/threads.h>
#include "pbd/controllable.h"
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;
- std::vector<uint32_t> masters () const;
-
- PBD::Signal0<void> VCAStatusChange;
-
int set_state (XMLNode const&, int);
XMLNode& get_state();
private:
- void _set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
+ std::string masters_string;
+ PBD::ScopedConnection vca_loaded_connection;
- mutable Glib::Threads::Mutex master_lock;
+ void vcas_loaded();
+ void recompute_masters_ratios (double val);
- typedef std::set<boost::shared_ptr<GainControl> > Masters;
- Masters _masters;
- PBD::ScopedConnectionList masters_connections;
- std::set<uint32_t> _masters_numbers;
- std::string _masters_state_string ();
-
- gain_t get_master_gain_locked () const;
- void master_going_away (boost::weak_ptr<VCA>);
+ void _set_value (double val, PBD::Controllable::GroupControlDisposition group_override);
};
} /* namespace */