Add plugins (activating them) after doing any latency_compute_run, as otherwise the latency_compute_run deactivates the plugins and an assert trips in LadspaPlugin::run_in_place.
git-svn-id: svn://localhost/ardour2/branches/3.0@9282 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
040e016137
commit
806b94bec1
@ -875,6 +875,23 @@ PluginInsert::set_state(const XMLNode& node, int version)
|
|||||||
sscanf (prop->value().c_str(), "%u", &count);
|
sscanf (prop->value().c_str(), "%u", &count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Handle the node list for this Processor (or Insert if an A2 session).
|
||||||
|
* This needs to happen before the add_plugin_with_activation below, as
|
||||||
|
* the plugin set_state calls may themselves call latency_compute_run,
|
||||||
|
* which will leave the plugin deactivated whether it is currently
|
||||||
|
* activated or not.
|
||||||
|
*/
|
||||||
|
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
||||||
|
|
||||||
|
if ((*niter)->name() == plugin->state_node_name()) {
|
||||||
|
|
||||||
|
for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
|
||||||
|
(*i)->set_state (**niter, version);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (_plugins.size() != count) {
|
if (_plugins.size() != count) {
|
||||||
|
|
||||||
add_plugin_with_activation (plugin);
|
add_plugin_with_activation (plugin);
|
||||||
@ -889,18 +906,6 @@ PluginInsert::set_state(const XMLNode& node, int version)
|
|||||||
set_control_ids (node, version);
|
set_control_ids (node, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle the node list for this Processor (or Insert if an A2 session) */
|
|
||||||
for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
|
|
||||||
|
|
||||||
if ((*niter)->name() == plugin->state_node_name()) {
|
|
||||||
|
|
||||||
for (Plugins::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
|
|
||||||
(*i)->set_state (**niter, version);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (version < 3000) {
|
if (version < 3000) {
|
||||||
|
|
||||||
/* Only 2.X sessions need a call to set_parameter_state() - in 3.X and above
|
/* Only 2.X sessions need a call to set_parameter_state() - in 3.X and above
|
||||||
|
Loading…
Reference in New Issue
Block a user