aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/DecoderBuffer.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-09-22 08:18:58 +0200
committerMax Kellermann <max@duempel.org>2014-09-22 08:18:58 +0200
commit3ae0d6f4210e370225cf0b9177f6c16d84d9255b (patch)
tree946d5a451428d070b9be905f8e900def60e1f0a3 /src/decoder/DecoderBuffer.hxx
parent13b66a77c73dbb5d00d439d42be82c004ac16ea1 (diff)
downloadmpd-3ae0d6f4210e370225cf0b9177f6c16d84d9255b.tar.gz
mpd-3ae0d6f4210e370225cf0b9177f6c16d84d9255b.tar.xz
mpd-3ae0d6f4210e370225cf0b9177f6c16d84d9255b.zip
DecoderBuffer: export the struct
Eliminates the functions _new() and _free().
Diffstat (limited to 'src/decoder/DecoderBuffer.hxx')
-rw-r--r--src/decoder/DecoderBuffer.hxx45
1 files changed, 22 insertions, 23 deletions
diff --git a/src/decoder/DecoderBuffer.hxx b/src/decoder/DecoderBuffer.hxx
index 4a482be75..79db7401d 100644
--- a/src/decoder/DecoderBuffer.hxx
+++ b/src/decoder/DecoderBuffer.hxx
@@ -21,38 +21,37 @@
#define MPD_DECODER_BUFFER_HXX
#include "Compiler.h"
+#include "util/DynamicFifoBuffer.hxx"
#include <stddef.h>
-/**
- * This objects handles buffered reads in decoder plugins easily. You
- * create a buffer object, and use its high-level methods to fill and
- * read it. It will automatically handle shifting the buffer.
- */
-struct DecoderBuffer;
-
struct Decoder;
class InputStream;
-
template<typename T> struct ConstBuffer;
/**
- * Creates a new buffer.
- *
- * @param decoder the decoder object, used for decoder_read(), may be nullptr
- * @param is the input stream object where we should read from
- * @param size the maximum size of the buffer
- * @return the new decoder_buffer object
- */
-DecoderBuffer *
-decoder_buffer_new(Decoder *decoder, InputStream &is,
- size_t size);
-
-/**
- * Frees resources used by the decoder_buffer object.
+ * This objects handles buffered reads in decoder plugins easily. You
+ * create a buffer object, and use its high-level methods to fill and
+ * read it. It will automatically handle shifting the buffer.
*/
-void
-decoder_buffer_free(DecoderBuffer *buffer);
+struct DecoderBuffer {
+ Decoder *const decoder;
+ InputStream &is;
+
+ DynamicFifoBuffer<uint8_t> buffer;
+
+ /**
+ * Creates a new buffer.
+ *
+ * @param _decoder the decoder object, used for decoder_read(),
+ * may be nullptr
+ * @param _is the input stream object where we should read from
+ * @param _size the maximum size of the buffer
+ */
+ DecoderBuffer(Decoder *_decoder, InputStream &_is,
+ size_t _size)
+ :decoder(_decoder), is(_is), buffer(_size) {}
+};
gcc_pure
const InputStream &