diff options
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | src/DecoderList.cxx | 2 | ||||
-rw-r--r-- | src/decoder/WildmidiDecoderPlugin.cxx (renamed from src/decoder/wildmidi_decoder_plugin.c) | 45 | ||||
-rw-r--r-- | src/decoder/WildmidiDecoderPlugin.hxx | 25 |
4 files changed, 54 insertions, 22 deletions
diff --git a/Makefile.am b/Makefile.am index fc2da2cef..a5b782037 100644 --- a/Makefile.am +++ b/Makefile.am @@ -594,7 +594,9 @@ libdecoder_plugins_a_SOURCES += src/decoder/fluidsynth_decoder_plugin.c endif if ENABLE_WILDMIDI -libdecoder_plugins_a_SOURCES += src/decoder/wildmidi_decoder_plugin.c +libdecoder_plugins_a_SOURCES += \ + src/decoder/WildmidiDecoderPlugin.cxx \ + src/decoder/WildmidiDecoderPlugin.hxx endif if HAVE_FFMPEG diff --git a/src/DecoderList.cxx b/src/DecoderList.cxx index e607b685d..f6b029f7a 100644 --- a/src/DecoderList.cxx +++ b/src/DecoderList.cxx @@ -37,6 +37,7 @@ #include "decoder/MadDecoderPlugin.hxx" #include "decoder/SndfileDecoderPlugin.hxx" #include "decoder/Mpg123DecoderPlugin.hxx" +#include "decoder/WildmidiDecoderPlugin.hxx" #include <glib.h> @@ -46,7 +47,6 @@ extern const struct decoder_plugin mpcdec_decoder_plugin; extern const struct decoder_plugin modplug_decoder_plugin; extern const struct decoder_plugin mikmod_decoder_plugin; extern const struct decoder_plugin sidplay_decoder_plugin; -extern const struct decoder_plugin wildmidi_decoder_plugin; extern const struct decoder_plugin fluidsynth_decoder_plugin; const struct decoder_plugin *const decoder_plugins[] = { diff --git a/src/decoder/wildmidi_decoder_plugin.c b/src/decoder/WildmidiDecoderPlugin.cxx index 2cdb30a9c..28602e38a 100644 --- a/src/decoder/wildmidi_decoder_plugin.c +++ b/src/decoder/WildmidiDecoderPlugin.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,20 +18,21 @@ */ #include "config.h" +#include "WildmidiDecoderPlugin.hxx" #include "decoder_api.h" #include "tag_handler.h" #include "glib_compat.h" #include <glib.h> +extern "C" { #include <wildmidi_lib.h> +} #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "wildmidi" -enum { - WILDMIDI_SAMPLE_RATE = 48000, -}; +static constexpr unsigned WILDMIDI_SAMPLE_RATE = 48000; static bool wildmidi_init(const struct config_param *param) @@ -60,20 +61,20 @@ static void wildmidi_file_decode(struct decoder *decoder, const char *path_fs) { static const struct audio_format audio_format = { - .sample_rate = WILDMIDI_SAMPLE_RATE, - .format = SAMPLE_FORMAT_S16, - .channels = 2, + WILDMIDI_SAMPLE_RATE, + SAMPLE_FORMAT_S16, + 2, }; midi *wm; const struct _WM_Info *info; enum decoder_command cmd; wm = WildMidi_Open(path_fs); - if (wm == NULL) + if (wm == nullptr) return; info = WildMidi_GetInfo(wm); - if (info == NULL) { + if (info == nullptr) { WildMidi_Close(wm); return; } @@ -86,14 +87,14 @@ wildmidi_file_decode(struct decoder *decoder, const char *path_fs) int len; info = WildMidi_GetInfo(wm); - if (info == NULL) + if (info == nullptr) break; len = WildMidi_GetOutput(wm, buffer, sizeof(buffer)); if (len <= 0) break; - cmd = decoder_data(decoder, NULL, buffer, len, 0); + cmd = decoder_data(decoder, nullptr, buffer, len, 0); if (cmd == DECODE_COMMAND_SEEK) { unsigned long seek_where = WILDMIDI_SAMPLE_RATE * @@ -118,11 +119,11 @@ wildmidi_scan_file(const char *path_fs, const struct tag_handler *handler, void *handler_ctx) { midi *wm = WildMidi_Open(path_fs); - if (wm == NULL) + if (wm == nullptr) return false; const struct _WM_Info *info = WildMidi_GetInfo(wm); - if (info == NULL) { + if (info == nullptr) { WildMidi_Close(wm); return false; } @@ -137,14 +138,18 @@ wildmidi_scan_file(const char *path_fs, static const char *const wildmidi_suffixes[] = { "mid", - NULL + nullptr }; const struct decoder_plugin wildmidi_decoder_plugin = { - .name = "wildmidi", - .init = wildmidi_init, - .finish = wildmidi_finish, - .file_decode = wildmidi_file_decode, - .scan_file = wildmidi_scan_file, - .suffixes = wildmidi_suffixes, + "wildmidi", + wildmidi_init, + wildmidi_finish, + nullptr, + wildmidi_file_decode, + wildmidi_scan_file, + nullptr, + nullptr, + wildmidi_suffixes, + nullptr, }; diff --git a/src/decoder/WildmidiDecoderPlugin.hxx b/src/decoder/WildmidiDecoderPlugin.hxx new file mode 100644 index 000000000..956b72299 --- /dev/null +++ b/src/decoder/WildmidiDecoderPlugin.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_WILDMIDI_HXX +#define MPD_DECODER_WILDMIDI_HXX + +extern const struct decoder_plugin wildmidi_decoder_plugin; + +#endif |