fix up overly-persistent active state for control surfaces
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 8 May 2012 16:25:13 +0000 (16:25 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 8 May 2012 16:25:13 +0000 (16:25 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12212 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/rc_option_editor.cc
libs/ardour/control_protocol_manager.cc

index 4a8ed4f84038de1c66802a043c182819ae785abd..d22ef625f227186cb087515e7c26e100f8224e68 100644 (file)
@@ -723,6 +723,7 @@ private:
                                ControlProtocolManager::instance().instantiate (*cpi);
                        } else {
                                ControlProtocolManager::instance().teardown (*cpi);
+                               cpi->requested = false;
                        }
                }
 
index 6aa0c51da24cd20d2fb290bcf33a7e9e03ae94a3..cce9fe08a14f96b49aa2e8be5f110800c1709544 100644 (file)
@@ -169,6 +169,8 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi)
        }
 
        cpi.protocol = 0;
+       delete cpi.state;
+       cpi.state = 0;
        dlclose (cpi.descriptor->module);
        return 0;
 }