#include <pbd/error.h>
#include <pbd/pathscanner.h>
-#include "control_protocol.h"
+#include <control_protocol/control_protocol.h>
#include <ardour/session.h>
#include <ardour/control_protocol_manager.h>
-
-
-
using namespace ARDOUR;
-using namespace PBD;
using namespace std;
+using namespace PBD;
#include "i18n.h"
ControlProtocolManager::~ControlProtocolManager()
{
- LockMonitor lm (protocols_lock, __LINE__, __FILE__);
+ Glib::Mutex::Lock lm (protocols_lock);
for (list<ControlProtocol*>::iterator i = control_protocols.begin(); i != control_protocols.end(); ++i) {
delete (*i);
ControlProtocolManager::set_session (Session& s)
{
_session = &s;
- _session->going_away.connect (mem_fun (*this, &ControlProtocolManager::drop_session));
+ _session->GoingAway.connect (mem_fun (*this, &ControlProtocolManager::drop_session));
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
if ((*i)->requested || (*i)->mandatory) {
instantiate (**i);
(*i)->requested = false;
+
+ if ((*i)->state) {
+ (*i)->protocol->set_state (*(*i)->state);
+ }
}
}
}
_session = 0;
{
- LockMonitor lm (protocols_lock, __LINE__, __FILE__);
+ Glib::Mutex::Lock lm (protocols_lock);
for (list<ControlProtocol*>::iterator p = control_protocols.begin(); p != control_protocols.end(); ++p) {
delete *p;
}
return 0;
}
- LockMonitor lm (protocols_lock, __LINE__, __FILE__);
+ Glib::Mutex::Lock lm (protocols_lock);
control_protocols.push_back (cpi.protocol);
return cpi.protocol;
cpi.descriptor->destroy (cpi.descriptor, cpi.protocol);
{
- LockMonitor lm (protocols_lock, __LINE__, __FILE__);
+ Glib::Mutex::Lock lm (protocols_lock);
list<ControlProtocol*>::iterator p = find (control_protocols.begin(), control_protocols.end(), cpi.protocol);
if (p != control_protocols.end()) {
control_protocols.erase (p);
cpi->protocol = 0;
cpi->requested = false;
cpi->mandatory = descriptor->mandatory;
+ cpi->state = 0;
control_protocol_info.push_back (cpi);
ControlProtocolManager::get_state (void)
{
XMLNode* root = new XMLNode (state_node_name);
- LockMonitor lm (protocols_lock, __LINE__, __FILE__);
+ Glib::Mutex::Lock lm (protocols_lock);
for (list<ControlProtocolInfo*>::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) {
XMLNode* child = new XMLNode (X_("Protocol"));