mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-01 03:57:16 +01:00
23 lines
544 B
C
23 lines
544 B
C
|
#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;
|
||
|
};
|