git-svn-id: svn://localhost/ardour2/branches/3.0@4472 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2009-02-02 00:20:18 +00:00
parent 44ac5f5097
commit ead5dd4568
2 changed files with 10 additions and 26 deletions

View file

@ -19,7 +19,7 @@
#ifndef EVORAL_MIDI_UTIL_H
#define EVORAL_MIDI_UTIL_H
#include <evoral/midi_events.h>
#include "evoral/midi_events.h"
namespace Evoral {

View file

@ -758,31 +758,23 @@ ControlList::unlocked_eval (double x) const
double fraction;
const_iterator length_check_iter = _events.begin();
for (npoints = 0; npoints < 4; ++npoints, ++length_check_iter)
if (length_check_iter == _events.end())
for (npoints = 0; npoints < 4; ++npoints, ++length_check_iter) {
if (length_check_iter == _events.end()) {
break;
}
}
switch (npoints) {
case 0:
return _default_value;
case 1:
if (x >= _events.front()->when) {
return _events.front()->value;
} else {
// hansfbaier: v--------- Why commented ???
// return _default_value;
return _events.front()->value;
}
return _events.front()->value;
case 2:
if (x >= _events.back()->when) {
return _events.back()->value;
} else if (x == _events.front()->when) {
return _events.front()->value;
} else if (x < _events.front()->when) {
// hansfbaier: v--------- Why commented ???
// return _default_value;
} else if (x <= _events.front()->when) {
return _events.front()->value;
}
@ -795,30 +787,22 @@ ControlList::unlocked_eval (double x) const
return lval;
}
/* linear interpolation betweeen the two points
*/
/* linear interpolation betweeen the two points */
fraction = (double) (x - lpos) / (double) (upos - lpos);
return lval + (fraction * (uval - lval));
default:
if (x >= _events.back()->when) {
return _events.back()->value;
} else if (x == _events.front()->when) {
return _events.front()->value;
} else if (x < _events.front()->when) {
// hansfbaier: v--------- Why commented ???
// return _default_value;
} else if (x <= _events.front()->when) {
return _events.front()->value;
}
return multipoint_eval (x);
break;
}
/*NOTREACHED*/ /* stupid gcc */
return 0.0;
return _default_value;
}
double