#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
+#include "evoral/types.hpp"
#include "pbd/controllable.h"
#include "evoral/Control.hpp"
#include "ardour/libardour_visibility.h"
#include "ardour/automation_list.h"
+#include "ardour/parameter_descriptor.h"
namespace ARDOUR {
{
public:
AutomationControl(ARDOUR::Session&,
- const Evoral::Parameter& parameter,
- boost::shared_ptr<ARDOUR::AutomationList> l=boost::shared_ptr<ARDOUR::AutomationList>(),
- const std::string& name="");
+ const Evoral::Parameter& parameter,
+ const ParameterDescriptor& desc,
+ boost::shared_ptr<ARDOUR::AutomationList> l=boost::shared_ptr<ARDOUR::AutomationList>(),
+ const std::string& name="");
- ~AutomationControl ();
+ ~AutomationControl ();
boost::shared_ptr<AutomationList> alist() const {
return boost::dynamic_pointer_cast<AutomationList>(_list);
void set_value (double);
double get_value () const;
- virtual double internal_to_interface (double v) const {
- return v;
- }
-
- virtual double interface_to_internal (double v) const {
- return v;
- }
+ double lower() const { return _desc.lower; }
+ double upper() const { return _desc.upper; }
+ double normal() const { return _desc.normal; }
+ bool toggled() const { return _desc.toggled; }
- virtual double internal_to_user (double v) const {
- return v;
- }
-
- double lower() const { return parameter().min(); }
- double upper() const { return parameter().max(); }
- double normal() const { return parameter().normal(); }
- bool toggled() const { return parameter().toggled(); }
+ const ParameterDescriptor& desc() const { return _desc; }
const ARDOUR::Session& session() const { return _session; }
protected:
ARDOUR::Session& _session;
+
+ const ParameterDescriptor _desc;
};