#include <glibmm/threads.h>
#include "pbd/stateful.h"
+
+#include "control_protocol/types.h"
+
#include "ardour/session_handle.h"
namespace ARDOUR {
PBD::Signal1<void,ControlProtocolInfo*> ProtocolStatusChange;
+ void stripable_selection_changed (ARDOUR::StripableNotificationListPtr);
+ static PBD::Signal1<void,ARDOUR::StripableNotificationListPtr> StripableSelectionChanged;
+
private:
ControlProtocolManager ();
static ControlProtocolManager* _instance;
- Glib::Threads::Mutex protocols_lock;
+ Glib::Threads::RWLock protocols_lock;
std::list<ControlProtocol*> control_protocols;
void session_going_away ();
ControlProtocolDescriptor* get_descriptor (std::string path);
ControlProtocolInfo* cpi_by_name (std::string);
ControlProtocol* instantiate (ControlProtocolInfo&);
- int teardown (ControlProtocolInfo&);
+ int teardown (ControlProtocolInfo&, bool lock_required);
};
} // namespace