getBaselineWindowAverage method

int getBaselineWindowAverage(
  1. List<int> list,
  2. int index,
  3. int window
)

Implementation

int getBaselineWindowAverage(List<int> list, int index, int window) {
  int start = index - window;
  int stop = index + window;
  if (stop > list.length) stop = list.length;

  int divisor = 0;
  int value = 0;
  for (int i = start; i < stop - 1; i++) {
    if (list[i] != 0 || (list[i] - list[i + 1]).abs() < 40) {
      divisor++;
      value += list[i];
    }
  }
  if (divisor != 0) {
    return (value / divisor).truncate();
  } else {
    return list[index];
  }
}