winamp/Src/nu/SpillBuffer.h

23 lines
544 B
C
Raw Normal View History

2024-09-24 13:54:57 +01:00
#pragma once
class SpillBuffer
{
public:
SpillBuffer();
~SpillBuffer();
bool reserve(size_t bytes);
void clear();
void reset();
size_t write(const void *src, size_t len);
bool get(void **buffer, size_t *len);
bool full() const;
bool empty() const;
void remove(size_t len); // removes len bytes from the start of the spill buffer
size_t remaining() const; // how many bytes to fill it up
size_t length() const; /* buffer length when full */
private:
volatile size_t spillBufferUsed;
size_t spillBufferSize;
char *spillBuffer;
};