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