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)
ControlProtocolDescriptor * get_descriptor(std::string path)
static PBD::Signal1< void, ARDOUR::StripableNotificationListPtr > StripableSelectionChanged
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)
void foreach_known_protocol(boost::function< void(const ControlProtocolInfo *)>)
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()
PBD::Signal1< void, ControlProtocolInfo * > ProtocolStatusChange
std::list< ControlProtocol * > control_protocols
static ControlProtocolManager & instance()
std::list< ControlProtocolInfo * > control_protocol_info
ControlProtocol * instantiate(ControlProtocolInfo &)
XMLNode & get_state() const
void set_session(Session *)
PBD::PropertyDescriptor< bool > automatic
std::shared_ptr< StripableNotificationList > StripableNotificationListPtr