speed-up smf_track_delete() from O(N^2) to O(n)
[ardour.git] / libs / evoral / evoral / Control.hpp
index 2b7fd0aa658a2c1a283c23d73d09ba9843c2ecbc..490abf00b6f5341ae2e915043dac845177f00f1f 100644 (file)
 #include "pbd/signals.h"
 
 #include "evoral/visibility.h"
-#include "evoral/types.hpp"
 #include "evoral/Parameter.hpp"
+#include "evoral/ParameterDescriptor.hpp"
 
 namespace Evoral {
 
 class ControlList;
+class ParameterDescriptor;
 class Transport;
+class TypeMap;
 
 /** Base class representing some kind of (automatable) control; a fader's gain,
  *  for example, or a compressor plugin's threshold.
@@ -39,14 +41,16 @@ class Transport;
  *  The class knows the Evoral::Parameter that it is controlling, and has
  *  a list of values for automation.
  */
-
 class LIBEVORAL_API Control
 {
 public:
-       Control(const Parameter& parameter, boost::shared_ptr<ControlList>);
+       Control(const Parameter&               parameter,
+               const ParameterDescriptor&     desc,
+               boost::shared_ptr<ControlList> list);
+
        virtual ~Control() {}
 
-        virtual void   set_double (double val, double frame=0, bool to_list=false);
+       virtual void   set_double (double val, double frame=0, bool to_list=false);
        virtual double get_double (bool from_list=false, double frame=0) const;
 
        /** Get the latest user-set value