X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fgain_control.h;h=f72320f1dd59ca47417dfcde3d53d6d816131862;hb=faefc3ba9a42417b133235e0a9efeaba467aad5f;hp=c6421a6922a673629e7b9428737056e91936d04c;hpb=8eafe8b8045e60b305a40b729b9daea2c6289d28;p=ardour.git diff --git a/libs/ardour/ardour/gain_control.h b/libs/ardour/ardour/gain_control.h index c6421a6922..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,20 +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 (); - - 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 */