}
#endif
+/* XXX: min_val max_val redundant? (param.min() param.max()) */
AutomationList::AutomationList (Parameter id, double min_val, double max_val, double default_val)
: _parameter(id)
, _interpolation(Linear)
{
/* to be used only for loading pre-sorted data from saved state */
_events.insert (_events.end(), new ControlEvent (when, value));
+ assert(_events.back());
}
void
{
Glib::Mutex::Lock lm (_lock);
ControlEvent cp (last_coordinate, 0);
- list<ControlEvent*>::reverse_iterator i;
+ AutomationList::reverse_iterator i;
double last_val;
if (_events.empty()) {
uint32_t sz = _events.size();
while (i != _events.rend() && sz > 2) {
- list<ControlEvent*>::reverse_iterator tmp;
+ AutomationList::reverse_iterator tmp;
tmp = i;
++tmp;
i = _events.begin();
while (i != _events.end() && !_events.empty()) {
- list<ControlEvent*>::iterator tmp;
+ AutomationList::iterator tmp;
tmp = i;
++tmp;
return multipoint_eval (x);
break;
}
+
+ /*NOTREACHED*/ /* stupid gcc */
+ return 0.0;
}
double
x = first->when + (y - first->value) / (double)slope;
- while ((inclusive && x < start) || x <= start && y != next->value) {
+ while ((inclusive && x < start) || (x <= start && y != next->value)) {
if (first->value < next->value) // ramping up
y += 1.0;