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 */