view 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
line wrap: on
line source
//
//  CircularBuffer.hpp
//  BTrack Tests
//
//  Created by Adam Stark on 04/02/2016.
//  Copyright © 2016 Adam Stark. All rights reserved.
//

#ifndef CircularBuffer_h
#define CircularBuffer_h

#include <vector>

class CircularBuffer
{
public:
    CircularBuffer() : writeIndex (0)
    {
        
    }
    
    double &operator[](int i)
    {
        int index = (i + writeIndex) % buffer.size();
        return buffer[index];
    }
        
    void addSampleToEnd (double v)
    {
        buffer[writeIndex] = v;
        writeIndex = (writeIndex + 1) % buffer.size();
    }
    
    void resize(int size)
    {
        buffer.resize (size);
        writeIndex = 0;
    }
    
private:
    
    std::vector<double> buffer;
    int writeIndex;
};

#endif /* CircularBuffer_hpp */