diff options
author | Max Kellermann <max@duempel.org> | 2010-11-18 22:36:58 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-11-18 23:02:30 +0100 |
commit | 1ab46472ab8fa38a87f18411820bb1dbd7f51990 (patch) | |
tree | 16a4e876c9b7a610d18a7d2e73bd622b18653bbf | |
parent | f6bbe1332f63560bd212a068e8fc9faf16455dc7 (diff) | |
download | mpd-1ab46472ab8fa38a87f18411820bb1dbd7f51990.tar.gz mpd-1ab46472ab8fa38a87f18411820bb1dbd7f51990.tar.xz mpd-1ab46472ab8fa38a87f18411820bb1dbd7f51990.zip |
decoder_thread: load APE replay gain from music files
-rw-r--r-- | src/decoder_thread.c | 15 |
1 files changed, 15 insertions, 0 deletions
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" @@ -298,6 +299,18 @@ decoder_run_stream(struct decoder *decoder, const char *uri) } /** + * 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. */ static bool @@ -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); |