diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-05-19 20:10:35 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-05-19 20:10:35 +0000 |
commit | 9c6984dbbb5583147788876dba80e203c2d38d1a (patch) | |
tree | 4db0a08b1049f8ddd8f237c85474568e8a62e099 /libs/ardour/ardour | |
parent | 50ee09e80ff91bf0146e89728578d5e31aba23b7 (diff) |
allow for mandatory control protocols, plus some ongoing work on automation control point selection (unfinished)
git-svn-id: svn://localhost/trunk/ardour2@516 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/control_protocol.h | 9 | ||||
-rw-r--r-- | libs/ardour/ardour/control_protocol_manager.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/libs/ardour/ardour/control_protocol.h b/libs/ardour/ardour/control_protocol.h index 9a9c14021c..38c6261af5 100644 --- a/libs/ardour/ardour/control_protocol.h +++ b/libs/ardour/ardour/control_protocol.h @@ -83,10 +83,11 @@ class ControlProtocol : public sigc::trackable, public BasicUI { extern "C" { struct ControlProtocolDescriptor { - const char* name; /* descriptive */ - const char* id; /* unique and version-specific */ - void* ptr; /* protocol can store a value here */ - void* module; /* not for public access */ + const char* name; /* descriptive */ + const char* id; /* unique and version-specific */ + void* ptr; /* protocol can store a value here */ + void* module; /* not for public access */ + int mandatory; /* if non-zero, always load and do not make optional */ ControlProtocol* (*initialize)(ControlProtocolDescriptor*,Session*); void (*destroy)(ControlProtocolDescriptor*,ControlProtocol*); diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index c19649e38b..42b5a69a48 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -22,6 +22,7 @@ struct ControlProtocolInfo { std::string name; std::string path; bool requested; + bool mandatory; }; class ControlProtocolManager : public sigc::trackable, public Stateful @@ -35,6 +36,7 @@ struct ControlProtocolInfo { void set_session (Session&); void discover_control_protocols (std::string search_path); void foreach_known_protocol (sigc::slot<void,const ControlProtocolInfo*>); + void load_mandatory_protocols (); ControlProtocol* instantiate (ControlProtocolInfo&); int teardown (ControlProtocolInfo&); |