aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-04-17 22:45:10 +0200
committerMax Kellermann <max@duempel.org>2013-04-17 22:45:10 +0200
commitabaabe92d6485043fd1a5705818b3d4c74a4b08f (patch)
treef146451ba9b012ca152e85cdd348ff374d2bfc45
parent257b42b87f8a8ddb50618c43da7b58c50c68779f (diff)
downloadmpd-abaabe92d6485043fd1a5705818b3d4c74a4b08f.tar.gz
mpd-abaabe92d6485043fd1a5705818b3d4c74a4b08f.tar.xz
mpd-abaabe92d6485043fd1a5705818b3d4c74a4b08f.zip
decoder_buffer: convert to C++
-rw-r--r--Makefile.am3
-rw-r--r--src/DecoderBuffer.cxx (renamed from src/decoder_buffer.c)34
-rw-r--r--src/DecoderBuffer.hxx (renamed from src/decoder_buffer.h)25
-rw-r--r--src/decoder/FaadDecoderPlugin.cxx18
4 files changed, 38 insertions, 42 deletions
diff --git a/Makefile.am b/Makefile.am
index 8a78aa857..c0121dd00 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -60,7 +60,6 @@ mpd_headers = \
src/conf.h \
src/decoder_plugin.h \
src/decoder_command.h \
- src/decoder_buffer.h \
src/decoder_api.h \
src/decoder_plugin.h \
src/encoder_plugin.h \
@@ -455,7 +454,7 @@ libdecoder_plugins_a_SOURCES = \
src/decoder/dsf_decoder_plugin.h \
src/decoder/dsdlib.c \
src/decoder/dsdlib.h \
- src/decoder_buffer.c \
+ src/DecoderBuffer.cxx src/DecoderBuffer.hxx \
src/DecoderPlugin.cxx \
src/DecoderList.cxx src/DecoderList.hxx
libdecoder_plugins_a_CPPFLAGS = $(AM_CPPFLAGS) \
diff --git a/src/decoder_buffer.c b/src/DecoderBuffer.cxx
index fcb135976..8e7da859b 100644
--- a/src/decoder_buffer.c
+++ b/src/DecoderBuffer.cxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -18,14 +18,14 @@
*/
#include "config.h"
-#include "decoder_buffer.h"
+#include "DecoderBuffer.hxx"
#include "decoder_api.h"
#include <glib.h>
#include <assert.h>
-struct decoder_buffer {
+struct DecoderBuffer {
struct decoder *decoder;
struct input_stream *is;
@@ -43,14 +43,14 @@ struct decoder_buffer {
unsigned char data[sizeof(size_t)];
};
-struct decoder_buffer *
+DecoderBuffer *
decoder_buffer_new(struct decoder *decoder, struct input_stream *is,
size_t size)
{
- struct decoder_buffer *buffer =
+ DecoderBuffer *buffer = (DecoderBuffer *)
g_malloc(sizeof(*buffer) - sizeof(buffer->data) + size);
- assert(is != NULL);
+ assert(is != nullptr);
assert(size > 0);
buffer->decoder = decoder;
@@ -63,27 +63,27 @@ decoder_buffer_new(struct decoder *decoder, struct input_stream *is,
}
void
-decoder_buffer_free(struct decoder_buffer *buffer)
+decoder_buffer_free(DecoderBuffer *buffer)
{
- assert(buffer != NULL);
+ assert(buffer != nullptr);
g_free(buffer);
}
bool
-decoder_buffer_is_empty(const struct decoder_buffer *buffer)
+decoder_buffer_is_empty(const DecoderBuffer *buffer)
{
return buffer->consumed == buffer->length;
}
bool
-decoder_buffer_is_full(const struct decoder_buffer *buffer)
+decoder_buffer_is_full(const DecoderBuffer *buffer)
{
return buffer->consumed == 0 && buffer->length == buffer->size;
}
static void
-decoder_buffer_shift(struct decoder_buffer *buffer)
+decoder_buffer_shift(DecoderBuffer *buffer)
{
assert(buffer->consumed > 0);
@@ -93,7 +93,7 @@ decoder_buffer_shift(struct decoder_buffer *buffer)
}
bool
-decoder_buffer_fill(struct decoder_buffer *buffer)
+decoder_buffer_fill(DecoderBuffer *buffer)
{
size_t nbytes;
@@ -119,18 +119,18 @@ decoder_buffer_fill(struct decoder_buffer *buffer)
}
const void *
-decoder_buffer_read(const struct decoder_buffer *buffer, size_t *length_r)
+decoder_buffer_read(const DecoderBuffer *buffer, size_t *length_r)
{
if (buffer->consumed >= buffer->length)
/* buffer is empty */
- return NULL;
+ return nullptr;
*length_r = buffer->length - buffer->consumed;
return buffer->data + buffer->consumed;
}
void
-decoder_buffer_consume(struct decoder_buffer *buffer, size_t nbytes)
+decoder_buffer_consume(DecoderBuffer *buffer, size_t nbytes)
{
/* just move the "consumed" pointer - decoder_buffer_shift()
will do the real work later (called by
@@ -141,7 +141,7 @@ decoder_buffer_consume(struct decoder_buffer *buffer, size_t nbytes)
}
bool
-decoder_buffer_skip(struct decoder_buffer *buffer, size_t nbytes)
+decoder_buffer_skip(DecoderBuffer *buffer, size_t nbytes)
{
size_t length;
const void *data;
@@ -151,7 +151,7 @@ decoder_buffer_skip(struct decoder_buffer *buffer, size_t nbytes)
while (true) {
data = decoder_buffer_read(buffer, &length);
- if (data != NULL) {
+ if (data != nullptr) {
if (length > nbytes)
length = nbytes;
decoder_buffer_consume(buffer, length);
diff --git a/src/decoder_buffer.h b/src/DecoderBuffer.hxx
index 77eff5dd1..4f7efb29a 100644
--- a/src/decoder_buffer.h
+++ b/src/DecoderBuffer.hxx
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
* http://www.musicpd.org
*
* This program is free software; you can redistribute it and/or modify
@@ -17,10 +17,9 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef MPD_DECODER_BUFFER_H
-#define MPD_DECODER_BUFFER_H
+#ifndef MPD_DECODER_BUFFER_HXX
+#define MPD_DECODER_BUFFER_HXX
-#include <stdbool.h>
#include <stddef.h>
/**
@@ -28,7 +27,7 @@
* create a buffer object, and use its high-level methods to fill and
* read it. It will automatically handle shifting the buffer.
*/
-struct decoder_buffer;
+struct DecoderBuffer;
struct decoder;
struct input_stream;
@@ -41,7 +40,7 @@ struct input_stream;
* @param size the maximum size of the buffer
* @return the new decoder_buffer object
*/
-struct decoder_buffer *
+DecoderBuffer *
decoder_buffer_new(struct decoder *decoder, struct input_stream *is,
size_t size);
@@ -49,13 +48,13 @@ decoder_buffer_new(struct decoder *decoder, struct input_stream *is,
* Frees resources used by the decoder_buffer object.
*/
void
-decoder_buffer_free(struct decoder_buffer *buffer);
+decoder_buffer_free(DecoderBuffer *buffer);
bool
-decoder_buffer_is_empty(const struct decoder_buffer *buffer);
+decoder_buffer_is_empty(const DecoderBuffer *buffer);
bool
-decoder_buffer_is_full(const struct decoder_buffer *buffer);
+decoder_buffer_is_full(const DecoderBuffer *buffer);
/**
* Read data from the input_stream and append it to the buffer.
@@ -65,7 +64,7 @@ decoder_buffer_is_full(const struct decoder_buffer *buffer);
* received
*/
bool
-decoder_buffer_fill(struct decoder_buffer *buffer);
+decoder_buffer_fill(DecoderBuffer *buffer);
/**
* Reads data from the buffer. This data is not yet consumed, you
@@ -80,7 +79,7 @@ decoder_buffer_fill(struct decoder_buffer *buffer);
* available
*/
const void *
-decoder_buffer_read(const struct decoder_buffer *buffer, size_t *length_r);
+decoder_buffer_read(const DecoderBuffer *buffer, size_t *length_r);
/**
* Consume (delete, invalidate) a part of the buffer. The "nbytes"
@@ -91,7 +90,7 @@ decoder_buffer_read(const struct decoder_buffer *buffer, size_t *length_r);
* @param nbytes the number of bytes to consume
*/
void
-decoder_buffer_consume(struct decoder_buffer *buffer, size_t nbytes);
+decoder_buffer_consume(DecoderBuffer *buffer, size_t nbytes);
/**
* Skips the specified number of bytes, discarding its data.
@@ -101,6 +100,6 @@ decoder_buffer_consume(struct decoder_buffer *buffer, size_t nbytes);
* @return true on success, false on error
*/
bool
-decoder_buffer_skip(struct decoder_buffer *buffer, size_t nbytes);
+decoder_buffer_skip(DecoderBuffer *buffer, size_t nbytes);
#endif
diff --git a/src/decoder/FaadDecoderPlugin.cxx b/src/decoder/FaadDecoderPlugin.cxx
index c2e79b771..3e8a9b6bc 100644
--- a/src/decoder/FaadDecoderPlugin.cxx
+++ b/src/decoder/FaadDecoderPlugin.cxx
@@ -20,9 +20,7 @@
#include "config.h"
#include "FaadDecoderPlugin.hxx"
#include "decoder_api.h"
-extern "C" {
-#include "decoder_buffer.h"
-}
+#include "DecoderBuffer.hxx"
#include "audio_check.h"
#include "tag_handler.h"
@@ -73,7 +71,7 @@ adts_check_frame(const unsigned char *data)
* found or if not enough data is available.
*/
static size_t
-adts_find_frame(struct decoder_buffer *buffer)
+adts_find_frame(DecoderBuffer *buffer)
{
size_t length, frame_length;
bool ret;
@@ -138,7 +136,7 @@ adts_find_frame(struct decoder_buffer *buffer)
}
static float
-adts_song_duration(struct decoder_buffer *buffer)
+adts_song_duration(DecoderBuffer *buffer)
{
unsigned int frames, frame_length;
unsigned sample_rate = 0;
@@ -172,7 +170,7 @@ adts_song_duration(struct decoder_buffer *buffer)
}
static float
-faad_song_duration(struct decoder_buffer *buffer, struct input_stream *is)
+faad_song_duration(DecoderBuffer *buffer, struct input_stream *is)
{
size_t fileread;
size_t tagsize;
@@ -248,7 +246,7 @@ faad_song_duration(struct decoder_buffer *buffer, struct input_stream *is)
* inconsistencies in libfaad.
*/
static bool
-faad_decoder_init(NeAACDecHandle decoder, struct decoder_buffer *buffer,
+faad_decoder_init(NeAACDecHandle decoder, DecoderBuffer *buffer,
struct audio_format *audio_format, GError **error_r)
{
int32_t nbytes;
@@ -294,7 +292,7 @@ faad_decoder_init(NeAACDecHandle decoder, struct decoder_buffer *buffer,
* inconsistencies in libfaad.
*/
static const void *
-faad_decoder_decode(NeAACDecHandle decoder, struct decoder_buffer *buffer,
+faad_decoder_decode(NeAACDecHandle decoder, DecoderBuffer *buffer,
NeAACDecFrameInfo *frame_info)
{
size_t length;
@@ -317,7 +315,7 @@ faad_decoder_decode(NeAACDecHandle decoder, struct decoder_buffer *buffer,
static float
faad_get_file_time_float(struct input_stream *is)
{
- struct decoder_buffer *buffer;
+ DecoderBuffer *buffer;
float length;
buffer = decoder_buffer_new(nullptr, is,
@@ -374,7 +372,7 @@ faad_stream_decode(struct decoder *mpd_decoder, struct input_stream *is)
struct audio_format audio_format;
bool ret;
uint16_t bit_rate = 0;
- struct decoder_buffer *buffer;
+ DecoderBuffer *buffer;
enum decoder_command cmd;
buffer = decoder_buffer_new(mpd_decoder, is,