-
Notifications
You must be signed in to change notification settings - Fork 1
/
CircularBuffer.cpp
43 lines (35 loc) · 1.01 KB
/
CircularBuffer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
==============================================================================
CircularBuffer.cpp
Created: 2 Apr 2020 2:07:25pm
Author: Alex
==============================================================================
*/
#include "CircularBuffer.h"
CircularBuffer::CircularBuffer()
{
buffer = AudioSampleBuffer();
writeIndex = readIndex = delayLength = 0;
}
CircularBuffer::CircularBuffer(int bufferSize, int delayLength)
{
buffer = AudioSampleBuffer(1, bufferSize);
buffer.clear();
writeIndex = delayLength;
readIndex = 0;
this->delayLength = delayLength;
}
float CircularBuffer::getData()
{
return buffer.getSample(0, readIndex);
}
void CircularBuffer::setData(float data)
{
buffer.setSample(0, writeIndex, data);
}
void CircularBuffer::nextSample()
{
int bufferLength = buffer.getNumSamples();
readIndex = ((bufferLength + writeIndex) - delayLength) % bufferLength;
writeIndex = (writeIndex + 1) % bufferLength;
}