diff options
author | Max Kellermann <max@duempel.org> | 2012-10-02 10:56:44 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-10-02 10:59:56 +0200 |
commit | cbdd042adc8131c4ef890195447760d229eb1f87 (patch) | |
tree | f32b528e955b7bdf468168b8c490052bd33a702a | |
parent | a9419da09c27986708002fcb6a9032371eb1ce2b (diff) | |
download | mpd-cbdd042adc8131c4ef890195447760d229eb1f87.tar.gz mpd-cbdd042adc8131c4ef890195447760d229eb1f87.tar.xz mpd-cbdd042adc8131c4ef890195447760d229eb1f87.zip |
decoder/flac: use C++ compiler
-rw-r--r-- | Makefile.am | 13 | ||||
-rw-r--r-- | src/decoder/FLACCommon.cxx (renamed from src/decoder/flac_common.c) | 25 | ||||
-rw-r--r-- | src/decoder/FLACCommon.hxx (renamed from src/decoder/flac_common.h) | 8 | ||||
-rw-r--r-- | src/decoder/FLACDecoderPlugin.cxx (renamed from src/decoder/flac_decoder_plugin.c) | 67 | ||||
-rw-r--r-- | src/decoder/FLACDecoderPlugin.h | 26 | ||||
-rw-r--r-- | src/decoder/FLACMetaData.cxx (renamed from src/decoder/flac_metadata.c) | 31 | ||||
-rw-r--r-- | src/decoder/FLACMetaData.hxx (renamed from src/decoder/flac_metadata.h) | 2 | ||||
-rw-r--r-- | src/decoder/FLAC_PCM.cxx (renamed from src/decoder/flac_pcm.c) | 4 | ||||
-rw-r--r-- | src/decoder/FLAC_PCM.hxx (renamed from src/decoder/flac_pcm.h) | 6 | ||||
-rw-r--r-- | src/decoder_list.c | 3 |
10 files changed, 116 insertions, 69 deletions
diff --git a/Makefile.am b/Makefile.am index f917a2330..d0c8b48e4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -98,8 +98,6 @@ mpd_headers = \ src/gcc.h \ src/decoder_list.h \ src/decoder_print.h \ - src/decoder/flac_metadata.h \ - src/decoder/flac_pcm.h \ src/decoder/pcm_decoder_plugin.h \ src/input_init.h \ src/input_plugin.h \ @@ -620,10 +618,11 @@ endif if HAVE_FLAC libdecoder_plugins_a_SOURCES += \ - src/decoder/flac_metadata.c \ - src/decoder/flac_pcm.c \ - src/decoder/flac_common.c src/decoder/flac_common.h \ - src/decoder/flac_decoder_plugin.c + src/decoder/FLACMetaData.cxx src/decoder/FLACMetaData.hxx \ + src/decoder/FLAC_PCM.cxx src/decoder/FLAC_PCM.hxx \ + src/decoder/FLACCommon.cxx src/decoder/FLACCommon.hxx \ + src/decoder/FLACDecoderPlugin.cxx \ + src/decoder/FLACDecoderPlugin.h endif if HAVE_AUDIOFILE @@ -1145,7 +1144,7 @@ test_dump_playlist_SOURCES = test/dump_playlist.c \ if HAVE_FLAC test_dump_playlist_SOURCES += \ src/replay_gain_info.c \ - src/decoder/flac_metadata.c + src/decoder/FLACMetaData.cxx endif test_run_decoder_LDADD = \ diff --git a/src/decoder/flac_common.c b/src/decoder/FLACCommon.cxx index 1508ac123..8e86b6ae4 100644 --- a/src/decoder/flac_common.c +++ b/src/decoder/FLACCommon.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -22,10 +22,13 @@ */ #include "config.h" -#include "flac_common.h" -#include "flac_metadata.h" -#include "flac_pcm.h" +#include "FLACCommon.hxx" +#include "FLACMetaData.hxx" +#include "FLAC_PCM.hxx" + +extern "C" { #include "audio_check.h" +} #include <glib.h> @@ -46,7 +49,7 @@ flac_data_init(struct flac_data *data, struct decoder * decoder, data->position = 0; data->decoder = decoder; data->input_stream = input_stream; - data->tag = NULL; + data->tag = nullptr; } void @@ -54,7 +57,7 @@ flac_data_deinit(struct flac_data *data) { pcm_buffer_deinit(&data->buffer); - if (data->tag != NULL) + if (data->tag != nullptr) tag_free(data->tag); } @@ -86,7 +89,7 @@ flac_got_stream_info(struct flac_data *data, if (data->initialized || data->unsupported) return; - GError *error = NULL; + GError *error = nullptr; if (!audio_format_init_checked(&data->audio_format, stream_info->sample_rate, flac_sample_format(stream_info->bits_per_sample), @@ -129,8 +132,8 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, decoder_mixramp(data->decoder, replay_gain_db, mixramp_start, mixramp_end); - if (data->tag != NULL) - flac_vorbis_comments_to_tag(data->tag, NULL, + if (data->tag != nullptr) + flac_vorbis_comments_to_tag(data->tag, nullptr, &block->data.vorbis_comment); default: @@ -160,7 +163,7 @@ flac_got_first_frame(struct flac_data *data, const FLAC__FrameHeader *header) if (data->unsupported) return false; - GError *error = NULL; + GError *error = nullptr; if (!audio_format_init_checked(&data->audio_format, header->sample_rate, flac_sample_format(header->bits_per_sample), @@ -199,7 +202,7 @@ flac_common_write(struct flac_data *data, const FLAC__Frame * frame, buffer = pcm_buffer_get(&data->buffer, buffer_size); flac_convert(buffer, frame->header.channels, - data->audio_format.format, buf, + (enum sample_format)data->audio_format.format, buf, 0, frame->header.blocksize); if (nbytes > 0) diff --git a/src/decoder/flac_common.h b/src/decoder/FLACCommon.hxx index c898a47cf..3d280cc49 100644 --- a/src/decoder/flac_common.h +++ b/src/decoder/FLACCommon.hxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -21,11 +21,13 @@ * Common data structures and functions used by FLAC and OggFLAC */ -#ifndef MPD_FLAC_COMMON_H -#define MPD_FLAC_COMMON_H +#ifndef MPD_FLAC_COMMON_HXX +#define MPD_FLAC_COMMON_HXX +extern "C" { #include "decoder_api.h" #include "pcm_buffer.h" +} #include <FLAC/stream_decoder.h> #include <FLAC/metadata.h> diff --git a/src/decoder/flac_decoder_plugin.c b/src/decoder/FLACDecoderPlugin.cxx index baaa9613f..0b543ea65 100644 --- a/src/decoder/flac_decoder_plugin.c +++ b/src/decoder/FLACDecoderPlugin.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -18,9 +18,13 @@ */ #include "config.h" /* must be first for large file support */ -#include "flac_common.h" -#include "flac_metadata.h" +#include "FLACDecoderPlugin.h" +#include "FLACCommon.hxx" +#include "FLACMetaData.hxx" + +extern "C" { #include "ogg_codec.h" +} #include <glib.h> @@ -41,7 +45,7 @@ flac_read_cb(G_GNUC_UNUSED const FLAC__StreamDecoder *fd, FLAC__byte buf[], size_t *bytes, void *fdata) { - struct flac_data *data = fdata; + struct flac_data *data = (struct flac_data *)fdata; size_t r; r = decoder_read(data->decoder, data->input_stream, @@ -69,7 +73,7 @@ flac_seek_cb(G_GNUC_UNUSED const FLAC__StreamDecoder *fd, return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED; if (!input_stream_lock_seek(data->input_stream, offset, SEEK_SET, - NULL)) + nullptr)) return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; return FLAC__STREAM_DECODER_SEEK_STATUS_OK; @@ -172,7 +176,7 @@ static bool flac_scan_file(const char *file, const struct tag_handler *handler, void *handler_ctx) { - return flac_scan_file2(file, NULL, handler, handler_ctx); + return flac_scan_file2(file, nullptr, handler, handler_ctx); } /** @@ -182,9 +186,9 @@ static FLAC__StreamDecoder * flac_decoder_new(void) { FLAC__StreamDecoder *sd = FLAC__stream_decoder_new(); - if (sd == NULL) { + if (sd == nullptr) { g_warning("FLAC__stream_decoder_new() failed"); - return NULL; + return nullptr; } if(!FLAC__stream_decoder_set_metadata_respond(sd, FLAC__METADATA_TYPE_VORBIS_COMMENT)) @@ -234,7 +238,7 @@ flac_decoder_loop(struct flac_data *data, FLAC__StreamDecoder *flac_dec, data->first_frame = t_start; while (true) { - if (data->tag != NULL && !tag_is_empty(data->tag)) { + if (data->tag != nullptr && !tag_is_empty(data->tag)) { cmd = decoder_tag(data->decoder, data->input_stream, data->tag); tag_free(data->tag); @@ -316,7 +320,7 @@ flac_decode_internal(struct decoder * decoder, struct flac_data data; flac_dec = flac_decoder_new(); - if (flac_dec == NULL) + if (flac_dec == nullptr) return; flac_data_init(&data, decoder, input_stream); @@ -378,7 +382,7 @@ oggflac_scan_file(const char *file, if (!(block = FLAC__metadata_iterator_get_block(it))) break; - flac_scan_metadata(NULL, block, + flac_scan_metadata(nullptr, block, handler, handler_ctx); } while (FLAC__metadata_iterator_next(it)); FLAC__metadata_iterator_delete(it); @@ -395,43 +399,52 @@ oggflac_decode(struct decoder *decoder, struct input_stream *input_stream) /* rewind the stream, because ogg_codec_detect() has moved it */ - input_stream_lock_seek(input_stream, 0, SEEK_SET, NULL); + input_stream_lock_seek(input_stream, 0, SEEK_SET, nullptr); flac_decode_internal(decoder, input_stream, true); } -static const char *const oggflac_suffixes[] = { "ogg", "oga", NULL }; +static const char *const oggflac_suffixes[] = { "ogg", "oga", nullptr }; static const char *const oggflac_mime_types[] = { "application/ogg", "application/x-ogg", "audio/ogg", "audio/x-flac+ogg", "audio/x-ogg", - NULL + nullptr }; const struct decoder_plugin oggflac_decoder_plugin = { - .name = "oggflac", - .init = oggflac_init, - .stream_decode = oggflac_decode, - .scan_file = oggflac_scan_file, - .suffixes = oggflac_suffixes, - .mime_types = oggflac_mime_types + "oggflac", + oggflac_init, + nullptr, + oggflac_decode, + nullptr, + oggflac_scan_file, + nullptr, + nullptr, + oggflac_suffixes, + oggflac_mime_types, }; -static const char *const flac_suffixes[] = { "flac", NULL }; +static const char *const flac_suffixes[] = { "flac", nullptr }; static const char *const flac_mime_types[] = { "application/flac", "application/x-flac", "audio/flac", "audio/x-flac", - NULL + nullptr }; const struct decoder_plugin flac_decoder_plugin = { - .name = "flac", - .stream_decode = flac_decode, - .scan_file = flac_scan_file, - .suffixes = flac_suffixes, - .mime_types = flac_mime_types, + "flac", + nullptr, + nullptr, + flac_decode, + nullptr, + flac_scan_file, + nullptr, + nullptr, + flac_suffixes, + flac_mime_types, }; diff --git a/src/decoder/FLACDecoderPlugin.h b/src/decoder/FLACDecoderPlugin.h new file mode 100644 index 000000000..c99deeef7 --- /dev/null +++ b/src/decoder/FLACDecoderPlugin.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2003-2012 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_FLAC_H +#define MPD_DECODER_FLAC_H + +extern const struct decoder_plugin flac_decoder_plugin; +extern const struct decoder_plugin oggflac_decoder_plugin; + +#endif diff --git a/src/decoder/flac_metadata.c b/src/decoder/FLACMetaData.cxx index a2eaafdfa..d6ddb6cb0 100644 --- a/src/decoder/flac_metadata.c +++ b/src/decoder/FLACMetaData.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -18,10 +18,14 @@ */ #include "config.h" -#include "flac_metadata.h" +#include "FLACMetaData.hxx" + +extern "C" { #include "XiphTags.h" #include "replay_gain_info.h" #include "tag.h" +} + #include "tag_handler.h" #include "tag_table.h" @@ -92,7 +96,7 @@ flac_find_string_comment(const FLAC__StreamMetadata *block, int len; const unsigned char *p; - *str = NULL; + *str = nullptr; offset = FLAC__metadata_object_vorbiscomment_find_entry_from(block, 0, cmnt); if (offset < 0) @@ -137,9 +141,9 @@ flac_comment_value(const FLAC__StreamMetadata_VorbisComment_Entry *entry, if (entry->length <= name_length || g_ascii_strncasecmp(comment, name, name_length) != 0) - return NULL; + return nullptr; - if (char_tnum != NULL) { + if (char_tnum != nullptr) { char_tnum_length = strlen(char_tnum); if (entry->length > name_length + char_tnum_length + 2 && comment[name_length] == '[' && @@ -158,7 +162,7 @@ flac_comment_value(const FLAC__StreamMetadata_VorbisComment_Entry *entry, return comment + name_length + 1; } - return NULL; + return nullptr; } /** @@ -175,7 +179,7 @@ flac_copy_comment(const FLAC__StreamMetadata_VorbisComment_Entry *entry, size_t value_length; value = flac_comment_value(entry, name, char_tnum, &value_length); - if (value != NULL) { + if (value != nullptr) { char *p = g_strndup(value, value_length); tag_handler_invoke_tag(handler, handler_ctx, tag_type, p); g_free(p); @@ -190,11 +194,11 @@ flac_scan_comment(const char *char_tnum, const FLAC__StreamMetadata_VorbisComment_Entry *entry, const struct tag_handler *handler, void *handler_ctx) { - if (handler->pair != NULL) { + if (handler->pair != nullptr) { char *name = g_strdup((const char*)entry->entry); char *value = strchr(name, '='); - if (value != NULL && value > name) { + if (value != nullptr && value > name) { *value++ = 0; tag_handler_invoke_pair(handler, handler_ctx, name, value); @@ -203,14 +207,15 @@ flac_scan_comment(const char *char_tnum, g_free(name); } - for (const struct tag_table *i = xiph_tags; i->name != NULL; ++i) + for (const struct tag_table *i = xiph_tags; i->name != nullptr; ++i) if (flac_copy_comment(entry, i->name, i->type, char_tnum, handler, handler_ctx)) return; for (unsigned i = 0; i < TAG_NUM_OF_ITEM_TYPES; ++i) if (flac_copy_comment(entry, - tag_item_names[i], i, char_tnum, + tag_item_names[i], (enum tag_type)i, + char_tnum, handler, handler_ctx)) return; } @@ -260,7 +265,7 @@ flac_scan_file2(const char *file, const char *char_tnum, const struct tag_handler *handler, void *handler_ctx) { FLAC__Metadata_SimpleIterator *it; - FLAC__StreamMetadata *block = NULL; + FLAC__StreamMetadata *block = nullptr; it = FLAC__metadata_simple_iterator_new(); if (!FLAC__metadata_simple_iterator_init(it, file, 1, 0)) { @@ -310,7 +315,7 @@ flac_tag_load(const char *file, const char *char_tnum) if (!flac_scan_file2(file, char_tnum, &add_tag_handler, tag) || tag_is_empty(tag)) { tag_free(tag); - tag = NULL; + tag = nullptr; } return tag; diff --git a/src/decoder/flac_metadata.h b/src/decoder/FLACMetaData.hxx index 3c463d5d6..ac75a4af8 100644 --- a/src/decoder/flac_metadata.h +++ b/src/decoder/FLACMetaData.hxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify diff --git a/src/decoder/flac_pcm.c b/src/decoder/FLAC_PCM.cxx index 6964d8ac6..303530aa7 100644 --- a/src/decoder/flac_pcm.c +++ b/src/decoder/FLAC_PCM.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ */ #include "config.h" -#include "flac_pcm.h" +#include "FLAC_PCM.hxx" #include <assert.h> diff --git a/src/decoder/flac_pcm.h b/src/decoder/FLAC_PCM.hxx index a931998c1..97d214c17 100644 --- a/src/decoder/flac_pcm.h +++ b/src/decoder/FLAC_PCM.hxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2012 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -17,8 +17,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MPD_FLAC_PCM_H -#define MPD_FLAC_PCM_H +#ifndef MPD_FLAC_PCM_HXX +#define MPD_FLAC_PCM_HXX #include "audio_format.h" diff --git a/src/decoder_list.c b/src/decoder_list.c index 81098e394..575346c98 100644 --- a/src/decoder_list.c +++ b/src/decoder_list.c @@ -26,6 +26,7 @@ #include "decoder/pcm_decoder_plugin.h" #include "decoder/dsdiff_decoder_plugin.h" #include "decoder/dsf_decoder_plugin.h" +#include "decoder/FLACDecoderPlugin.h" #include "decoder/OpusDecoderPlugin.h" #include "decoder/AdPlugDecoderPlugin.h" @@ -36,8 +37,6 @@ extern const struct decoder_plugin mad_decoder_plugin; extern const struct decoder_plugin mpg123_decoder_plugin; extern const struct decoder_plugin vorbis_decoder_plugin; -extern const struct decoder_plugin flac_decoder_plugin; -extern const struct decoder_plugin oggflac_decoder_plugin; extern const struct decoder_plugin sndfile_decoder_plugin; extern const struct decoder_plugin audiofile_decoder_plugin; extern const struct decoder_plugin mp4ff_decoder_plugin; |