aboutsummaryrefslogtreecommitdiff
path: root/Src/nu/GaplessRingBuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/nu/GaplessRingBuffer.h')
-rw-r--r--Src/nu/GaplessRingBuffer.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/Src/nu/GaplessRingBuffer.h b/Src/nu/GaplessRingBuffer.h
new file mode 100644
index 00000000..ca4abd7d
--- /dev/null
+++ b/Src/nu/GaplessRingBuffer.h
@@ -0,0 +1,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;
+}; \ No newline at end of file