/*
- Copyright (C) 2000-2007 Paul Davis
+ Copyright (C) 2000-2007 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
ControlProtocolManager::ControlProtocolManager ()
: _session (0)
{
-
+
}
ControlProtocolManager::~ControlProtocolManager()
control_protocols.clear ();
-
+
for (list<ControlProtocolInfo*>::iterator p = control_protocol_info.begin(); p != control_protocol_info.end(); ++p) {
delete (*p);
}
delete *p;
}
control_protocols.clear ();
-
+
for (list<ControlProtocolInfo*>::iterator p = control_protocol_info.begin(); p != control_protocol_info.end(); ++p) {
// otherwise the ControlProtocol instances are not recreated in set_session
if ((*p)->protocol) {
}
cpi.descriptor->destroy (cpi.descriptor, cpi.protocol);
-
+
{
Glib::Mutex::Lock lm (protocols_lock);
list<ControlProtocol*>::iterator p = find (control_protocols.begin(), control_protocols.end(), cpi.protocol);
cerr << "Programming error: ControlProtocolManager::teardown() called for " << cpi.name << ", but it was not found in control_protocol_info" << endl;
}
}
-
+
cpi.protocol = 0;
dlclose (cpi.descriptor->module);
return 0;
cpi->mandatory = descriptor->mandatory;
cpi->supports_feedback = descriptor->supports_feedback;
cpi->state = 0;
-
+
control_protocol_info.push_back (cpi);
-
+
info << string_compose(_("Control surface protocol discovered: \"%1\""), cpi->name) << endmsg;
}
}
int
-ControlProtocolManager::set_state (const XMLNode& node)
+ControlProtocolManager::set_state (const XMLNode& node, int version)
{
XMLNodeList clist;
XMLNodeConstIterator citer;
} else {
cpi->state = 0;
}
-
+
if (_session) {
instantiate (*cpi);
} else {
}
}
}
- }
+ }
}
return 0;
}