Generic MIDI control now saves+restores its state; PBD::ID now requires a buffer...
[ardour.git] / libs / pbd / pbd / controllable.h
index c46e477b6ecd1fda518a3a879b59c5684fcc3c56..ff8f8a9b52004a1b8342bdf67fed3d526a28da19 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __pbd_controllable_h__
 #define __pbd_controllable_h__
 
+#include <string>
+
 #include <sigc++/trackable.h>
 #include <sigc++/signal.h>
 
@@ -13,7 +15,7 @@ namespace PBD {
 
 class Controllable : public virtual sigc::trackable, public Stateful {
   public:
-       Controllable ();
+       Controllable (std::string name);
        virtual ~Controllable() { GoingAway (this); }
 
        virtual void set_value (float) = 0;
@@ -23,22 +25,20 @@ class Controllable : public virtual sigc::trackable, public Stateful {
 
        sigc::signal<void> LearningFinished;
 
-       static sigc::signal<void,Controllable*> Created;
        static sigc::signal<void,Controllable*> GoingAway;
 
-
        static sigc::signal<bool,PBD::Controllable*> StartLearning;
        static sigc::signal<void,PBD::Controllable*> StopLearning;
 
        sigc::signal<void> Changed;
 
-       const PBD::ID& id() const { return _id; }
-
-       int set_state (const XMLNode&) { return 0; }
+       int set_state (const XMLNode&);
        XMLNode& get_state ();
 
+       std::string name() const { return _name; }
+
   private:
-       PBD::ID _id;
+       std::string _name;
 };
 
 }