blob: ca4abd7d5fe57bc3e5841705fb3afac0e9f1c8ca (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#pragma once
#include "RingBuffer.h"
class GaplessRingBuffer
{
public:
GaplessRingBuffer();
~GaplessRingBuffer();
int Initialize(size_t samples, size_t bps, size_t channels, size_t pregap, size_t postgap);
size_t Read(void *destination, size_t destination_bytes);
bool Empty() const;
size_t Write(const void *input, size_t input_bytes);
void Reset();
private:
RingBuffer ring_buffer;
size_t frameBytes; // byte size of one frame (channels*bps/8)
size_t currentPregapBytes;
size_t pregapBytes;
size_t postgapBytes;
};
|