redesign VCA control over gain (and theoretically other scalar controls)
[ardour.git] / libs / ardour / ardour / gain_control.h
index 17c250151a1291c0030ce7eff11356a689bca757..431342dab36e738b9399eca90e8b9d40a5999f17 100644 (file)
 #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 &param,
                     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;
@@ -48,6 +47,8 @@ struct LIBARDOUR_API GainControl : public AutomationControl {
 
        double lower_db;
        double range_db;
+
+       void inc_gain (gain_t);
 };
 
 } /* namespace */