winamp/Src/nu/GaplessRingBuffer.h

20 lines
529 B
C++

#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;
};