23 #ifndef ardour_control_protocol_manager_h
24 #define ardour_control_protocol_manager_h
30 #include <glibmm/threads.h>
40 class ControlProtocol;
41 class ControlProtocolDescriptor;
ControlProtocol * protocol
ControlProtocolDescriptor * descriptor
int teardown(ControlProtocolInfo &, bool lock_required)
int deactivate(ControlProtocolInfo &)
void stripable_selection_changed(ARDOUR::StripableNotificationListPtr)
void midi_connectivity_established(bool)
ControlProtocolInfo * cpi_by_name(std::string)
PBD::Signal< void(ControlProtocolInfo *)> ProtocolStatusChange
ControlProtocolDescriptor * get_descriptor(std::string path)
static const std::string state_node_name
void discover_control_protocols()
void probe_midi_control_protocols()
int control_protocol_discover(std::string path)
int set_state(const XMLNode &, int version)
static ControlProtocolManager * _instance
void session_going_away()
int activate(ControlProtocolInfo &)
Glib::Threads::RWLock protocols_lock
void probe_usb_control_protocols(bool, uint16_t, uint16_t)
~ControlProtocolManager()
std::list< ControlProtocol * > control_protocols
static ControlProtocolManager & instance()
std::list< ControlProtocolInfo * > control_protocol_info
ControlProtocol * instantiate(ControlProtocolInfo &)
void foreach_known_protocol(std::function< void(const ControlProtocolInfo *)>)
XMLNode & get_state() const
static PBD::Signal< void(ARDOUR::StripableNotificationListPtr)> StripableSelectionChanged
void set_session(Session *)
PBD::PropertyDescriptor< bool > automatic
std::shared_ptr< StripableNotificationList > StripableNotificationListPtr