y = max ((double) _desc.lower, y);
y = min ((double) _desc.upper, y);
} else {
- y = y * (double)(alist->get_max_y() - alist->get_min_y()) + alist->get_min_y();
+ y = y * (double)(_desc.upper - _desc.lower) + _desc.lower;
if (_desc.integer_step) {
y = round(y);
} else if (_desc.toggled) {
} else if (alist->parameter().type() == PanWidthAutomation) {
y = .5 + y * .5;
} else {
- y = (y - alist->get_min_y()) / (double)(alist->get_max_y() - alist->get_min_y());
+ y = (y - _desc.lower) / (double)(_desc.upper - _desc.lower);
}
}
{
for (PointSelection::iterator i = selection->points.begin(); i != selection->points.end(); ++i) {
ARDOUR::AutomationList::iterator j = (*i)->model ();
- (*j)->value = (*i)->line().the_list()->default_value ();
+ (*j)->value = (*i)->line().the_list()->descriptor ().normal;
}
}
UIConfiguration::instance().color ("meter background top")
);
- info->min_unbound = desc.min_unbound;
- info->max_unbound = desc.max_unbound;
-
- info->min = desc.lower;
- info->max = desc.upper;
-
control_ui->label.set_angle(90);
HBox* center = manage (new HBox);
buf[len] = '\0';
(*i)->display_label->set_text (buf);
- /* autoscaling for the meter */
if ((*i)->meterinfo && (*i)->meterinfo->packed) {
-
- if (val < (*i)->meterinfo->min) {
- if ((*i)->meterinfo->min_unbound)
- (*i)->meterinfo->min = val;
- else
- val = (*i)->meterinfo->min;
- }
-
- if (val > (*i)->meterinfo->max) {
- if ((*i)->meterinfo->max_unbound)
- (*i)->meterinfo->max = val;
- else
- val = (*i)->meterinfo->max;
- }
-
- if ((*i)->meterinfo->max > (*i)->meterinfo->min ) {
- float lval = (val - (*i)->meterinfo->min) / ((*i)->meterinfo->max - (*i)->meterinfo->min) ;
- (*i)->meterinfo->meter->set (lval );
- }
+ const float upper = c->desc().upper;
+ const float lower = c->desc().lower;
+ val = std::min (upper, std::max (lower, val));
+ float lval = (val - lower / (upper - lower));
+ (*i)->meterinfo->meter->set (lval);
}
}
}