13
0

Fix up display of plugin automation when loading 2.X sessions.

git-svn-id: svn://localhost/ardour2/branches/3.0@8635 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2011-02-01 01:07:38 +00:00
parent 408d433842
commit 636ffd7d8d

View File

@ -934,9 +934,9 @@ PluginInsert::set_parameter_state_2X (const XMLNode& node, int version)
XMLNode *child;
const char *port;
uint32_t port_id;
cnodes = (*niter)->children ("port");
for (iter = cnodes.begin(); iter != cnodes.end(); ++iter){
child = *iter;
@ -961,6 +961,30 @@ PluginInsert::set_parameter_state_2X (const XMLNode& node, int version)
if (c) {
if (!child->children().empty()) {
c->alist()->set_state (*child->children().front(), version);
/* In some cases 2.X saves lists with min_yval and max_yval
being FLT_MIN and FLT_MAX respectively. This causes problems
in A3 because these min/max values are used to compute
where GUI control points should be drawn. If we see such
values, `correct' them to the min/max of the appropriate
parameter.
*/
float min_y = c->alist()->get_min_y ();
float max_y = c->alist()->get_max_y ();
Plugin::ParameterDescriptor desc;
_plugins.front()->get_parameter_descriptor (port_id, desc);
if (min_y == FLT_MIN) {
min_y = desc.lower;
}
if (max_y == FLT_MAX) {
max_y = desc.upper;
}
c->alist()->set_yrange (min_y, max_y);
}
} else {
error << string_compose (_("PluginInsert: automatable control %1 not found - ignored"), port_id) << endmsg;