From 1ab46472ab8fa38a87f18411820bb1dbd7f51990 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 18 Nov 2010 22:36:58 +0100 Subject: decoder_thread: load APE replay gain from music files --- src/decoder_thread.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/decoder_thread.c') diff --git a/src/decoder_thread.c b/src/decoder_thread.c index 1a91b6566..10a796967 100644 --- a/src/decoder_thread.c +++ b/src/decoder_thread.c @@ -24,6 +24,7 @@ #include "decoder_list.h" #include "decoder_plugin.h" #include "decoder_api.h" +#include "replay_gain_ape.h" #include "input_stream.h" #include "player_control.h" #include "pipe.h" @@ -297,6 +298,18 @@ decoder_run_stream(struct decoder *decoder, const char *uri) return success; } +/** + * Attempt to load replay gain data, and pass it to + * decoder_replay_gain(). + */ +static void +decoder_load_replay_gain(struct decoder *decoder, const char *path_fs) +{ + struct replay_gain_info info; + if (replay_gain_ape_read(path_fs, &info)) + decoder_replay_gain(decoder, &info); +} + /** * Try decoding a file. */ @@ -312,6 +325,8 @@ decoder_run_file(struct decoder *decoder, const char *path_fs) decoder_unlock(dc); + decoder_load_replay_gain(decoder, path_fs); + while ((plugin = decoder_plugin_from_suffix(suffix, plugin)) != NULL) { if (plugin->file_decode != NULL) { decoder_lock(dc); -- cgit v1.2.3