adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: BTrack - A Real-Time Beat Tracker: src/CircularBuffer.h Source File adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114:
adamstark@114:
adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114:
adamstark@114:
BTrack - A Real-Time Beat Tracker adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114:
adamstark@114:
adamstark@114: adamstark@114: adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
Loading...
adamstark@114:
Searching...
adamstark@114:
No Matches
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114: adamstark@114: adamstark@114:
adamstark@114:
adamstark@114:
CircularBuffer.h
adamstark@114:
adamstark@114:
adamstark@114: Go to the documentation of this file.
1//=======================================================================
adamstark@114:
20//=======================================================================
adamstark@114:
21
adamstark@114:
22#ifndef CircularBuffer_h
adamstark@114:
23#define CircularBuffer_h
adamstark@114:
24
adamstark@114:
25#include <vector>
adamstark@114:
26
adamstark@114:
27//=======================================================================
adamstark@114: adamstark@114:
34{
adamstark@114:
35public:
adamstark@114:
36
adamstark@114: adamstark@114:
39 : writeIndex (0)
adamstark@114:
40 {
adamstark@114:
41
adamstark@114:
42 }
adamstark@114:
43
adamstark@114:
45 double &operator[] (int i)
adamstark@114:
46 {
adamstark@114:
47 int index = (i + writeIndex) % buffer.size();
adamstark@114:
48 return buffer[index];
adamstark@114:
49 }
adamstark@114:
50
adamstark@114:
52 void addSampleToEnd (double v)
adamstark@114:
53 {
adamstark@114:
54 buffer[writeIndex] = v;
adamstark@114:
55 writeIndex = (writeIndex + 1) % buffer.size();
adamstark@114:
56 }
adamstark@114:
57
adamstark@114:
59 void resize (int size)
adamstark@114:
60 {
adamstark@114:
61 buffer.resize (size);
adamstark@114:
62 std::fill (buffer.begin(), buffer.end(), 0.0);
adamstark@114:
63 writeIndex = 0;
adamstark@114:
64 }
adamstark@114:
65
adamstark@114:
67 int size()
adamstark@114:
68 {
adamstark@114:
69 return static_cast<int> (buffer.size());
adamstark@114:
70 }
adamstark@114:
71
adamstark@114:
72private:
adamstark@114:
73
adamstark@114:
74 std::vector<double> buffer;
adamstark@114:
75 int writeIndex;
adamstark@114:
76};
adamstark@114:
77
adamstark@114:
78#endif /* CircularBuffer_hpp */
adamstark@114:
Definition CircularBuffer.h:34
adamstark@114:
void resize(int size)
Definition CircularBuffer.h:59
adamstark@114:
double & operator[](int i)
Definition CircularBuffer.h:45
adamstark@114:
CircularBuffer()
Definition CircularBuffer.h:38
adamstark@114:
void addSampleToEnd(double v)
Definition CircularBuffer.h:52
adamstark@114:
int size()
Definition CircularBuffer.h:67
adamstark@114:
adamstark@114: adamstark@114: adamstark@114: adamstark@114: