summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-08 16:25:13 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-08 16:25:13 +0000
commit365658e734a9b8670708b7c36a4b6a0a4acdc3ee (patch)
tree0bf3aa0809760c5a824f6641625f7ba3e94fb179
parent74c6ad4e15614183acd6a6c97e43b43e8aeb2115 (diff)
fix up overly-persistent active state for control surfaces
git-svn-id: svn://localhost/ardour2/branches/3.0@12212 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/rc_option_editor.cc1
-rw-r--r--libs/ardour/control_protocol_manager.cc2
2 files changed, 3 insertions, 0 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index 4a8ed4f840..d22ef625f2 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -723,6 +723,7 @@ private:
ControlProtocolManager::instance().instantiate (*cpi);
} else {
ControlProtocolManager::instance().teardown (*cpi);
+ cpi->requested = false;
}
}
diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc
index 6aa0c51da2..cce9fe08a1 100644
--- a/libs/ardour/control_protocol_manager.cc
+++ b/libs/ardour/control_protocol_manager.cc
@@ -169,6 +169,8 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi)
}
cpi.protocol = 0;
+ delete cpi.state;
+ cpi.state = 0;
dlclose (cpi.descriptor->module);
return 0;
}