Mercurial > hg > btrack
annotate src/CircularBuffer.h @ 92:f6708e4c69f1
More code style updates
author | Adam Stark <adamstark.uk@gmail.com> |
---|---|
date | Wed, 11 May 2016 00:19:06 +0100 |
parents | 5ef334c782f3 |
children | 4aa362058011 |
rev | line source |
---|---|
adamstark@89 | 1 // |
adamstark@89 | 2 // CircularBuffer.hpp |
adamstark@89 | 3 // BTrack Tests |
adamstark@89 | 4 // |
adamstark@89 | 5 // Created by Adam Stark on 04/02/2016. |
adamstark@89 | 6 // Copyright © 2016 Adam Stark. All rights reserved. |
adamstark@89 | 7 // |
adamstark@89 | 8 |
adamstark@89 | 9 #ifndef CircularBuffer_h |
adamstark@89 | 10 #define CircularBuffer_h |
adamstark@89 | 11 |
adamstark@89 | 12 #include <vector> |
adamstark@89 | 13 |
adamstark@89 | 14 class CircularBuffer |
adamstark@89 | 15 { |
adamstark@89 | 16 public: |
adamstark@92 | 17 CircularBuffer() : writeIndex (0) |
adamstark@89 | 18 { |
adamstark@89 | 19 |
adamstark@89 | 20 } |
adamstark@89 | 21 |
adamstark@89 | 22 double &operator[](int i) |
adamstark@89 | 23 { |
adamstark@89 | 24 int index = (i + writeIndex) % buffer.size(); |
adamstark@89 | 25 return buffer[index]; |
adamstark@89 | 26 } |
adamstark@89 | 27 |
adamstark@89 | 28 void addSampleToEnd (double v) |
adamstark@89 | 29 { |
adamstark@89 | 30 buffer[writeIndex] = v; |
adamstark@89 | 31 writeIndex = (writeIndex + 1) % buffer.size(); |
adamstark@89 | 32 } |
adamstark@89 | 33 |
adamstark@89 | 34 void resize(int size) |
adamstark@89 | 35 { |
adamstark@92 | 36 buffer.resize (size); |
adamstark@89 | 37 writeIndex = 0; |
adamstark@89 | 38 } |
adamstark@89 | 39 |
adamstark@89 | 40 private: |
adamstark@89 | 41 |
adamstark@89 | 42 std::vector<double> buffer; |
adamstark@89 | 43 int writeIndex; |
adamstark@89 | 44 }; |
adamstark@89 | 45 |
adamstark@89 | 46 #endif /* CircularBuffer_hpp */ |