From 46ed91b53d4ee6df3f9b98bcfb4e36a97420b885 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 5 Jan 2013 02:05:50 +0100 Subject: DecoderAPI: _replay_gain() returns void Let the function decoder_replay_gain() update decoder_control::replay_gain_db instead of letting each decoder plugin take care for that. --- src/DecoderAPI.cxx | 10 +++------- src/decoder/FLACCommon.cxx | 5 ++--- src/decoder/mad_decoder_plugin.c | 5 ++--- src/decoder_api.h | 6 ++---- 4 files changed, 9 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/DecoderAPI.cxx b/src/DecoderAPI.cxx index 9ea222005..c703faa6c 100644 --- a/src/DecoderAPI.cxx +++ b/src/DecoderAPI.cxx @@ -519,11 +519,10 @@ decoder_tag(G_GNUC_UNUSED struct decoder *decoder, struct input_stream *is, return cmd; } -float +void decoder_replay_gain(struct decoder *decoder, const struct replay_gain_info *replay_gain_info) { - float return_db = 0; assert(decoder != NULL); if (replay_gain_info != NULL) { @@ -532,7 +531,7 @@ decoder_replay_gain(struct decoder *decoder, serial = 1; if (REPLAY_GAIN_OFF != replay_gain_mode) { - return_db = 20.0 * log10f( + decoder->dc->replay_gain_db = 20.0 * log10f( replay_gain_tuple_scale( &replay_gain_info->tuples[replay_gain_get_real_mode()], replay_gain_preamp, replay_gain_missing_preamp, @@ -551,19 +550,16 @@ decoder_replay_gain(struct decoder *decoder, } } else decoder->replay_gain_serial = 0; - - return return_db; } void -decoder_mixramp(struct decoder *decoder, float replay_gain_db, +decoder_mixramp(struct decoder *decoder, char *mixramp_start, char *mixramp_end) { assert(decoder != NULL); struct decoder_control *dc = decoder->dc; assert(dc != NULL); - dc->replay_gain_db = replay_gain_db; dc_mixramp_start(dc, mixramp_start); dc_mixramp_end(dc, mixramp_end); } diff --git a/src/decoder/FLACCommon.cxx b/src/decoder/FLACCommon.cxx index 97743f332..25fd1f964 100644 --- a/src/decoder/FLACCommon.cxx +++ b/src/decoder/FLACCommon.cxx @@ -109,7 +109,6 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, struct replay_gain_info rgi; char *mixramp_start; char *mixramp_end; - float replay_gain_db = 0; switch (block->type) { case FLAC__METADATA_TYPE_STREAMINFO: @@ -118,10 +117,10 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, case FLAC__METADATA_TYPE_VORBIS_COMMENT: if (flac_parse_replay_gain(&rgi, block)) - replay_gain_db = decoder_replay_gain(data->decoder, &rgi); + decoder_replay_gain(data->decoder, &rgi); if (flac_parse_mixramp(&mixramp_start, &mixramp_end, block)) - decoder_mixramp(data->decoder, replay_gain_db, + decoder_mixramp(data->decoder, mixramp_start, mixramp_end); if (data->tag != nullptr) diff --git a/src/decoder/mad_decoder_plugin.c b/src/decoder/mad_decoder_plugin.c index c1a0c4b0f..0c27ac119 100644 --- a/src/decoder/mad_decoder_plugin.c +++ b/src/decoder/mad_decoder_plugin.c @@ -359,15 +359,14 @@ static void mp3_parse_id3(struct mp3_data *data, size_t tagsize, struct replay_gain_info rgi; char *mixramp_start; char *mixramp_end; - float replay_gain_db = 0; if (parse_id3_replay_gain_info(&rgi, id3_tag)) { - replay_gain_db = decoder_replay_gain(data->decoder, &rgi); + decoder_replay_gain(data->decoder, &rgi); data->found_replay_gain = true; } if (parse_id3_mixramp(&mixramp_start, &mixramp_end, id3_tag)) - decoder_mixramp(data->decoder, replay_gain_db, + decoder_mixramp(data->decoder, mixramp_start, mixramp_end); } diff --git a/src/decoder_api.h b/src/decoder_api.h index 6e011c395..76cf03920 100644 --- a/src/decoder_api.h +++ b/src/decoder_api.h @@ -152,9 +152,8 @@ decoder_tag(struct decoder *decoder, struct input_stream *is, * @param decoder the decoder object * @param rgi the replay_gain_info object; may be NULL to invalidate * the previous replay gain values - * @return the replay gain adjustment used */ -float +void decoder_replay_gain(struct decoder *decoder, const struct replay_gain_info *replay_gain_info); @@ -162,12 +161,11 @@ decoder_replay_gain(struct decoder *decoder, * Store MixRamp tags. * * @param decoder the decoder object - * @param replay_gain_db the ReplayGain adjustment used for this song * @param mixramp_start the mixramp_start tag; may be NULL to invalidate * @param mixramp_end the mixramp_end tag; may be NULL to invalidate */ void -decoder_mixramp(struct decoder *decoder, float replay_gain_db, +decoder_mixramp(struct decoder *decoder, char *mixramp_start, char *mixramp_end); #endif -- cgit v1.2.3