aboutsummaryrefslogtreecommitdiff
path: root/Src/nu/GaplessRingBuffer.h
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;
};