Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
[ardour.git] / libs / pbd / pbd / controllable.h
index 6dc421cfd9ff0132a73874cf51fd6036ba6c911d..4afcb5374004526232c2390034a4e4f02dd9c135 100644 (file)
@@ -26,7 +26,7 @@
 #include <sigc++/trackable.h>
 #include <sigc++/signal.h>
 
-#include <pbd/statefuldestructible.h>
+#include "pbd/statefuldestructible.h"
 
 class XMLNode;
 
@@ -40,9 +40,9 @@ class Controllable : public PBD::StatefulDestructible {
        virtual void set_value (float) = 0;
        virtual float get_value (void) const = 0;
 
-       virtual bool can_send_feedback() const { return true; }
-
        sigc::signal<void> LearningFinished;
+       static sigc::signal<void,PBD::Controllable*,int,int> CreateBinding;
+       static sigc::signal<void,PBD::Controllable*> DeleteBinding;
 
        static sigc::signal<bool,PBD::Controllable*> StartLearning;
        static sigc::signal<void,PBD::Controllable*> StopLearning;
@@ -51,16 +51,20 @@ class Controllable : public PBD::StatefulDestructible {
 
        sigc::signal<void> Changed;
 
-       int set_state (const XMLNode&);
+       int set_state (const XMLNode&, int version = 3000);
        XMLNode& get_state ();
 
-       std::string name() const { return _name; }
+       std::string name()      const { return _name; }
+       bool        touching () const { return _touching; }
+       
+       void set_touching (bool yn) { _touching = yn; }
 
        static Controllable* by_id (const PBD::ID&);
        static Controllable* by_name (const std::string&);
 
   private:
        std::string _name;
+       bool        _touching;
 
        void add ();
        void remove ();
@@ -80,9 +84,8 @@ class IgnorableControllable : public Controllable
     IgnorableControllable () : PBD::Controllable ("ignoreMe") {}
     ~IgnorableControllable () {}
     
-    void set_value (float v){}
+    void set_value (float /*v*/) {}
     float get_value () const { return 0.0; }
-    bool can_send_feedback () const { return false; }
 };
 
 }