diff options
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | src/DecoderList.cxx | 2 | ||||
-rw-r--r-- | src/decoder/AudiofileDecoderPlugin.cxx (renamed from src/decoder/audiofile_decoder_plugin.c) | 44 | ||||
-rw-r--r-- | src/decoder/AudiofileDecoderPlugin.hxx | 25 |
4 files changed, 54 insertions, 21 deletions
diff --git a/Makefile.am b/Makefile.am index 67c159cb3..2c399c207 100644 --- a/Makefile.am +++ b/Makefile.am @@ -566,7 +566,9 @@ libdecoder_plugins_a_SOURCES += \ endif if HAVE_AUDIOFILE -libdecoder_plugins_a_SOURCES += src/decoder/audiofile_decoder_plugin.c +libdecoder_plugins_a_SOURCES += \ + src/decoder/AudiofileDecoderPlugin.cxx \ + src/decoder/AudiofileDecoderPlugin.hxx endif if ENABLE_MIKMOD_DECODER diff --git a/src/DecoderList.cxx b/src/DecoderList.cxx index d8035a737..920d42748 100644 --- a/src/DecoderList.cxx +++ b/src/DecoderList.cxx @@ -22,6 +22,7 @@ #include "decoder_plugin.h" #include "conf.h" #include "mpd_error.h" +#include "decoder/AudiofileDecoderPlugin.hxx" #include "decoder/pcm_decoder_plugin.h" #include "decoder/DsdiffDecoderPlugin.hxx" #include "decoder/DsfDecoderPlugin.hxx" @@ -41,7 +42,6 @@ extern const struct decoder_plugin mpg123_decoder_plugin; extern const struct decoder_plugin sndfile_decoder_plugin; -extern const struct decoder_plugin audiofile_decoder_plugin; extern const struct decoder_plugin mpcdec_decoder_plugin; extern const struct decoder_plugin modplug_decoder_plugin; extern const struct decoder_plugin mikmod_decoder_plugin; diff --git a/src/decoder/audiofile_decoder_plugin.c b/src/decoder/AudiofileDecoderPlugin.cxx index d2ceee8ae..e42cfc66e 100644 --- a/src/decoder/audiofile_decoder_plugin.c +++ b/src/decoder/AudiofileDecoderPlugin.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,6 +18,7 @@ */ #include "config.h" +#include "AudiofileDecoderPlugin.hxx" #include "decoder_api.h" #include "audio_check.h" #include "tag_handler.h" @@ -37,7 +38,7 @@ static int audiofile_get_duration(const char *file) { int total_time; - AFfilehandle af_fp = afOpenFile(file, "r", NULL); + AFfilehandle af_fp = afOpenFile(file, "r", nullptr); if (af_fp == AF_NULL_FILEHANDLE) { return -1; } @@ -52,11 +53,11 @@ static ssize_t audiofile_file_read(AFvirtualfile *vfile, void *data, size_t length) { struct input_stream *is = (struct input_stream *) vfile->closure; - GError *error = NULL; + GError *error = nullptr; size_t nbytes; nbytes = input_stream_lock_read(is, data, length, &error); - if (nbytes == 0 && error != NULL) { + if (nbytes == 0 && error != nullptr) { g_warning("%s", error->message); g_error_free(error); return -1; @@ -82,9 +83,9 @@ audiofile_file_tell(AFvirtualfile *vfile) static void audiofile_file_destroy(AFvirtualfile *vfile) { - assert(vfile->closure != NULL); + assert(vfile->closure != nullptr); - vfile->closure = NULL; + vfile->closure = nullptr; } static AFfileoffset @@ -92,7 +93,7 @@ audiofile_file_seek(AFvirtualfile *vfile, AFfileoffset offset, int is_relative) { struct input_stream *is = (struct input_stream *) vfile->closure; int whence = (is_relative ? SEEK_CUR : SEEK_SET); - if (input_stream_lock_seek(is, offset, whence, NULL)) { + if (input_stream_lock_seek(is, offset, whence, nullptr)) { return input_stream_get_offset(is); } else { return -1; @@ -102,9 +103,9 @@ audiofile_file_seek(AFvirtualfile *vfile, AFfileoffset offset, int is_relative) static AFvirtualfile * setup_virtual_fops(struct input_stream *stream) { - AFvirtualfile *vf = g_malloc(sizeof(AFvirtualfile)); + AFvirtualfile *vf = new AFvirtualfile(); vf->closure = stream; - vf->write = NULL; + vf->write = nullptr; vf->read = audiofile_file_read; vf->length = audiofile_file_length; vf->destroy = audiofile_file_destroy; @@ -155,7 +156,7 @@ audiofile_setup_sample_format(AFfilehandle af_fp) static void audiofile_stream_decode(struct decoder *decoder, struct input_stream *is) { - GError *error = NULL; + GError *error = nullptr; AFvirtualfile *vf; int fs, frame_count; AFfilehandle af_fp; @@ -173,7 +174,7 @@ audiofile_stream_decode(struct decoder *decoder, struct input_stream *is) vf = setup_virtual_fops(is); - af_fp = afOpenVirtualFile(vf, "r", NULL); + af_fp = afOpenVirtualFile(vf, "r", nullptr); if (af_fp == AF_NULL_FILEHANDLE) { g_warning("failed to input stream\n"); return; @@ -206,7 +207,7 @@ audiofile_stream_decode(struct decoder *decoder, struct input_stream *is) if (ret <= 0) break; - cmd = decoder_data(decoder, NULL, + cmd = decoder_data(decoder, nullptr, chunk, ret * fs, bit_rate); @@ -240,19 +241,24 @@ audiofile_scan_file(const char *file, } static const char *const audiofile_suffixes[] = { - "wav", "au", "aiff", "aif", NULL + "wav", "au", "aiff", "aif", nullptr }; static const char *const audiofile_mime_types[] = { "audio/x-wav", "audio/x-aiff", - NULL + nullptr }; const struct decoder_plugin audiofile_decoder_plugin = { - .name = "audiofile", - .stream_decode = audiofile_stream_decode, - .scan_file = audiofile_scan_file, - .suffixes = audiofile_suffixes, - .mime_types = audiofile_mime_types, + "audiofile", + nullptr, + nullptr, + audiofile_stream_decode, + nullptr, + audiofile_scan_file, + nullptr, + nullptr, + audiofile_suffixes, + audiofile_mime_types, }; diff --git a/src/decoder/AudiofileDecoderPlugin.hxx b/src/decoder/AudiofileDecoderPlugin.hxx new file mode 100644 index 000000000..59c09c006 --- /dev/null +++ b/src/decoder/AudiofileDecoderPlugin.hxx @@ -0,0 +1,25 @@ +/* + * 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 + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_DECODER_AUDIOFILE_HXX +#define MPD_DECODER_AUDIOFILE_HXX + +extern const struct decoder_plugin audiofile_decoder_plugin; + +#endif |