diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-04-10 03:54:00 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-04-10 03:54:00 +0000 |
commit | a157537898eccf08009281633b19970515366a78 (patch) | |
tree | cd6f7bb1e7f9bddba1b5cc4ce6e10c60cb2b2a46 /libs/ardour/ardour/control_protocol_manager.h | |
parent | 7e8a98224578e03e17fbf5e656241ff5ef1a0bc1 (diff) |
a) moved metering and meter falloff code into libardour
b) added initial "big meter" mode for tranzport
c) fixed some lock issues in ARDOUR::IO objects
d) generic_midi control surface module now compiles and loads
git-svn-id: svn://localhost/trunk/ardour2@450 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/control_protocol_manager.h')
-rw-r--r-- | libs/ardour/ardour/control_protocol_manager.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index f0b7846978..b06c3024b6 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -4,12 +4,15 @@ #include <string> #include <list> +#include <sigc++/sigc++.h> + #include <pbd/lockmonitor.h> namespace ARDOUR { class ControlProtocol; class ControlProtocolDescriptor; +class Session; struct ControlProtocolInfo { ControlProtocolDescriptor* descriptor; @@ -18,7 +21,7 @@ struct ControlProtocolInfo { std::string path; }; -class ControlProtocolManager + class ControlProtocolManager : public sigc::trackable { public: ControlProtocolManager (); @@ -26,19 +29,24 @@ class ControlProtocolManager static ControlProtocolManager& instance() { return *_instance; } + void set_session (Session&); void discover_control_protocols (std::string search_path); - void startup (Session&); + void foreach_known_protocol (sigc::slot<void,const ControlProtocolInfo*>); + + ControlProtocol* instantiate (ControlProtocolInfo&); + int teardown (ControlProtocolInfo&); - ControlProtocol* instantiate (Session&, std::string protocol_name); - int teardown (std::string protocol_name); + std::list<ControlProtocolInfo*> control_protocol_info; private: static ControlProtocolManager* _instance; + Session* _session; PBD::Lock protocols_lock; - std::list<ControlProtocolInfo*> control_protocol_info; std::list<ControlProtocol*> control_protocols; + void drop_session (); + int control_protocol_discover (std::string path); ControlProtocolDescriptor* get_descriptor (std::string path); }; |