diff --git a/libs/surfaces/control_protocol/control_protocol.cc b/libs/surfaces/control_protocol/control_protocol.cc index bb8ada746f..8456654f20 100644 --- a/libs/surfaces/control_protocol/control_protocol.cc +++ b/libs/surfaces/control_protocol/control_protocol.cc @@ -38,12 +38,19 @@ ControlProtocol::ControlProtocol (Session& s, string str) _name (str) { _active = false; + session->RouteAdded.connect (mem_fun(*this, &ControlProtocol::add_strip)); } ControlProtocol::~ControlProtocol () { } +void +ControlProtocol::add_strip (std::list >) +{ + route_list_changed(); +} + void ControlProtocol::next_track (uint32_t initial_id) { diff --git a/libs/surfaces/control_protocol/control_protocol/control_protocol.h b/libs/surfaces/control_protocol/control_protocol/control_protocol.h index c0961645ab..b787aeeb8f 100644 --- a/libs/surfaces/control_protocol/control_protocol/control_protocol.h +++ b/libs/surfaces/control_protocol/control_protocol/control_protocol.h @@ -47,6 +47,8 @@ class ControlProtocol : public sigc::trackable, public Stateful, public BasicUI virtual int set_feedback (bool yn) { return 0; } virtual bool get_feedback () const { return false; } + virtual void route_list_changed () {} + sigc::signal ActiveChanged; /* signals that a control protocol can emit and other (presumably graphical) @@ -101,6 +103,8 @@ 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); };