LTC Slave, add support for variable framerates
[ardour.git] / libs / surfaces / mackie / controls.h
index 546bd8bd25215e1ca68d19bf3f62dc2b6fb01bd0..38dad7ef7fa31297fd5d9c54661b30d95601df7c 100644 (file)
 #include <string>
 #include <stdint.h>
 
+#include <boost/smart_ptr.hpp>
+
 #include "pbd/signals.h"
 
 #include "mackie_control_exception.h"
 #include "midi_byte_array.h"
 
+namespace ARDOUR {
+       class AutomationControl;
+}
+
 namespace Mackie
 {
 
@@ -60,8 +66,20 @@ public:
         */
        Control* in_use_touch_control;
 
-private:
-       int _id;
+       boost::shared_ptr<ARDOUR::AutomationControl> control () const { return normal_ac; }
+       virtual void set_control (boost::shared_ptr<ARDOUR::AutomationControl>);
+
+       float get_value ();
+       void set_value (float val);
+       
+       virtual void start_touch (double when);
+       virtual void stop_touch (double when, bool mark);
+
+  protected:
+       boost::shared_ptr<ARDOUR::AutomationControl> normal_ac;
+
+  private:
+       int _id; /* possibly device-dependent ID */
        std::string _name;
        Group& _group;
        bool _in_use;