From c412d819699995c84bfb55bc57e8ee26d471bc98 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Wed, 5 Apr 2006 00:24:57 +0000 Subject: add new control protocol related files git-svn-id: svn://localhost/trunk/ardour2@443 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/control_protocol_manager.h | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 libs/ardour/ardour/control_protocol_manager.h (limited to 'libs/ardour/ardour/control_protocol_manager.h') diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h new file mode 100644 index 0000000000..f0b7846978 --- /dev/null +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -0,0 +1,48 @@ +#ifndef ardour_control_protocol_manager_h +#define ardour_control_protocol_manager_h + +#include +#include + +#include + +namespace ARDOUR { + +class ControlProtocol; +class ControlProtocolDescriptor; + +struct ControlProtocolInfo { + ControlProtocolDescriptor* descriptor; + ControlProtocol* protocol; + std::string name; + std::string path; +}; + +class ControlProtocolManager +{ + public: + ControlProtocolManager (); + ~ControlProtocolManager (); + + static ControlProtocolManager& instance() { return *_instance; } + + void discover_control_protocols (std::string search_path); + void startup (Session&); + + ControlProtocol* instantiate (Session&, std::string protocol_name); + int teardown (std::string protocol_name); + + private: + static ControlProtocolManager* _instance; + + PBD::Lock protocols_lock; + std::list control_protocol_info; + std::list control_protocols; + + int control_protocol_discover (std::string path); + ControlProtocolDescriptor* get_descriptor (std::string path); +}; + +} // namespace + +#endif // ardour_control_protocol_manager_h -- cgit v1.2.3