X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fcontrol_protocol%2Fcontrol_protocol%2Fcontrol_protocol.h;h=c80ba9b4b67fb46c0b87864b0ac3d11a0daf2cd9;hb=738387f9a417537e768d56d3fc4afcb9dc82d66b;hp=c0961645ab4fdf42f2d3b2d6a958ab15155d5863;hpb=6edccc3070b813157ffcd4014ec8dd7fa6ed9ce7;p=ardour.git diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index c0961645ab..c80ba9b4b6 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -25,16 +25,16 @@ #include #include #include -#include -#include -#include +#include "pbd/stateful.h" +#include "pbd/signals.h" +#include "control_protocol/basic_ui.h" namespace ARDOUR { class Route; class Session; -class ControlProtocol : public sigc::trackable, public Stateful, public BasicUI { +class ControlProtocol : virtual public sigc::trackable, public PBD::Stateful, public PBD::ScopedConnectionList, public BasicUI { public: ControlProtocol (Session&, std::string name); virtual ~ControlProtocol(); @@ -44,20 +44,22 @@ class ControlProtocol : public sigc::trackable, public Stateful, public BasicUI virtual int set_active (bool yn) = 0; bool get_active() const { return _active; } - virtual int set_feedback (bool yn) { return 0; } + virtual int set_feedback (bool /*yn*/) { return 0; } virtual bool get_feedback () const { return false; } - sigc::signal ActiveChanged; + virtual void route_list_changed () {} + + PBD::Signal0 ActiveChanged; /* signals that a control protocol can emit and other (presumably graphical) user interfaces can respond to */ - static sigc::signal ZoomToSession; - static sigc::signal ZoomIn; - static sigc::signal ZoomOut; - static sigc::signal Enter; - static sigc::signal ScrollTimeline; + static PBD::Signal0 ZoomToSession; + static PBD::Signal0 ZoomIn; + static PBD::Signal0 ZoomOut; + static PBD::Signal0 Enter; + static PBD::Signal1 ScrollTimeline; /* the model here is as follows: @@ -101,8 +103,13 @@ class ControlProtocol : public sigc::trackable, public Stateful, public BasicUI std::string _name; bool _active; + void add_strip (std::list >); + void next_track (uint32_t initial_id); void prev_track (uint32_t initial_id); + + private: + ControlProtocol (const ControlProtocol&); /* noncopyable */ }; extern "C" {