#define __ardour_gain_control_h__
#include <string>
+
#include <boost/shared_ptr.hpp>
#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;
-struct LIBARDOUR_API GainControl : public AutomationControl {
+class LIBARDOUR_API GainControl : public SlavableAutomationControl {
+ public:
GainControl (Session& session, const Evoral::Parameter ¶m,
boost::shared_ptr<AutomationList> al = boost::shared_ptr<AutomationList>());
- 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;
double lower_db;
double range_db;
+
+ int set_state (XMLNode const&, int);
+ XMLNode& get_state();
+
+ void inc_gain (gain_t);
+
+ private:
+ void recompute_masters_ratios (double val);
};
} /* namespace */