Dialog deletion fixed.
[speedfreak] / Client / movingaverage.cpp
1 /*
2  *  Class for moving average of acceleration data.
3  *
4  * @author      Kai Rasilainen
5  * @copyright   (c) 2010 Speed Freak team
6  * @license     http://opensource.org/licenses/gpl-license.php GNU Public License
7  */
8
9 #include "movingaverage.h"
10 #include <QList>
11
12 MovingAverage::MovingAverage(int sizeLimit)
13 {
14     SizeLimit = sizeLimit;
15 }
16
17 double MovingAverage::Average()
18 {
19     double sum = 0;
20
21     if (queue.count() == 0)
22         return 0;
23
24     QList<double> temp = queue;
25     foreach (double value, temp)
26     {
27         sum += value;
28     }
29
30     return sum / queue.count();
31 }
32
33 void MovingAverage::Resize(int sizeLimit)
34 {
35     SizeLimit = sizeLimit;
36     while (queue.count() > SizeLimit)
37     {
38         queue.dequeue();
39     }
40 }
41
42 void MovingAverage::Enqueue(double item)
43 {
44     queue.enqueue(item);
45     if (queue.count() > SizeLimit)
46         queue.dequeue();
47 }
48
49