X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fgain_control.h;h=f72320f1dd59ca47417dfcde3d53d6d816131862;hb=11a68f7dd38e72c3e497569a60cb0740a33b78cf;hp=7845679220f8fece5f738a1ccd0814c24739d682;hpb=acaaa98bd0a21494ae912dbbc37fbbc33cbbf61d;p=ardour.git diff --git a/libs/ardour/ardour/gain_control.h b/libs/ardour/ardour/gain_control.h index 7845679220..f72320f1dd 100644 --- a/libs/ardour/ardour/gain_control.h +++ b/libs/ardour/ardour/gain_control.h @@ -20,30 +20,25 @@ #define __ardour_gain_control_h__ #include -#include #include -#include #include "pbd/controllable.h" #include "evoral/Parameter.hpp" -#include "ardour/automation_control.h" +#include "ardour/slavable_automation_control.h" #include "ardour/libardour_visibility.h" namespace ARDOUR { class Session; -class LIBARDOUR_API GainControl : public AutomationControl { +class LIBARDOUR_API GainControl : public SlavableAutomationControl { public: GainControl (Session& session, const Evoral::Parameter ¶m, boost::shared_ptr al = boost::shared_ptr()); - void set_value (double val, PBD::Controllable::GroupControlDisposition group_override); - void set_value_unchecked (double); - double internal_to_interface (double) const; double interface_to_internal (double) const; double internal_to_user (double) const; @@ -53,21 +48,13 @@ class LIBARDOUR_API GainControl : public AutomationControl { double lower_db; double range_db; - gain_t get_master_gain () const; - void add_master (boost::shared_ptr); - void remove_master (boost::shared_ptr); - void clear_masters (); - bool slaved_to (boost::shared_ptr) const; - - private: - void _set_value (double val, PBD::Controllable::GroupControlDisposition group_override); + int set_state (XMLNode const&, int); + XMLNode& get_state(); - mutable Glib::Threads::Mutex master_lock; + void inc_gain (gain_t); - typedef std::list > Masters; - Masters _masters; - - gain_t get_master_gain_locked () const; + private: + void recompute_masters_ratios (double val); }; } /* namespace */