summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-05-19 20:10:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-05-19 20:10:35 +0000
commit9c6984dbbb5583147788876dba80e203c2d38d1a (patch)
tree4db0a08b1049f8ddd8f237c85474568e8a62e099 /libs/ardour/ardour
parent50ee09e80ff91bf0146e89728578d5e31aba23b7 (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.h9
-rw-r--r--libs/ardour/ardour/control_protocol_manager.h2
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&);