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:
parent
408d433842
commit
636ffd7d8d
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user