#ifndef __pbd_controllable_h__ #define __pbd_controllable_h__ #include #include #include #include class XMLNode; namespace PBD { class Controllable : public PBD::StatefulDestructible { public: Controllable (std::string name); virtual ~Controllable() { Destroyed (this); } virtual void set_value (float) = 0; virtual float get_value (void) const = 0; virtual bool can_send_feedback() const { return true; } sigc::signal LearningFinished; static sigc::signal StartLearning; static sigc::signal StopLearning; static sigc::signal Destroyed; sigc::signal Changed; int set_state (const XMLNode&); XMLNode& get_state (); std::string name() const { return _name; } private: std::string _name; }; } #endif /* __pbd_controllable_h__ */