blob: 485206383ca36bf4ef5a863d3f727d3c0da0895d [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/vr/sliding_average.h"
namespace vr {
SlidingAverage::SlidingAverage(size_t window_size) : values_(window_size) {}
SlidingAverage::~SlidingAverage() = default;
void SlidingAverage::AddSample(int64_t value) {
values_.AddSample(value);
}
int64_t SlidingAverage::GetAverageOrDefault(int64_t default_value) const {
if (values_.GetCount() == 0)
return default_value;
return values_.GetSum() / values_.GetCount();
}
SlidingTimeDeltaAverage::SlidingTimeDeltaAverage(size_t window_size)
: sample_microseconds_(window_size) {}
SlidingTimeDeltaAverage::~SlidingTimeDeltaAverage() = default;
void SlidingTimeDeltaAverage::AddSample(base::TimeDelta value) {
sample_microseconds_.AddSample(value.InMicroseconds());
}
base::TimeDelta SlidingTimeDeltaAverage::GetAverageOrDefault(
base::TimeDelta default_value) const {
return base::TimeDelta::FromMicroseconds(
sample_microseconds_.GetAverageOrDefault(default_value.InMicroseconds()));
}
} // namespace vr