aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/mpc_plugin.c
diff options
context:
space:
mode:
authorWarren Dukes <warren.dukes@gmail.com>2005-02-02 04:05:19 +0000
committerWarren Dukes <warren.dukes@gmail.com>2005-02-02 04:05:19 +0000
commitf134e2686a18eb7c9ef176e2322e7cede9843ea8 (patch)
tree597365d6493d8b4ad37295b92a85e3d6d811d4ba /src/inputPlugins/mpc_plugin.c
parent09a87803a150a4259139e8084c9d817cdb3b3c5c (diff)
downloadmpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.tar.gz
mpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.tar.xz
mpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.zip
todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@2926 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/inputPlugins/mpc_plugin.c')
-rw-r--r--src/inputPlugins/mpc_plugin.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/inputPlugins/mpc_plugin.c b/src/inputPlugins/mpc_plugin.c
index 5bccb3f3d..b0cf24ab3 100644
--- a/src/inputPlugins/mpc_plugin.c
+++ b/src/inputPlugins/mpc_plugin.c
@@ -132,6 +132,7 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
mpc_uint32_t vbrUpdateBits;
float time;
int i;
+ ReplayGainInfo * replayGainInfo = NULL;
data.inStream = inStream;
data.dc = dc;
@@ -174,11 +175,17 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
dc->totalTime = mpc_streaminfo_get_length(&info);
dc->audioFormat.bits = 16;
- dc->audioFormat.channels = 2;
+ dc->audioFormat.channels = info.channels;
dc->audioFormat.sampleRate = info.sample_freq;
getOutputAudioFormat(&(dc->audioFormat), &(cb->audioFormat));
+ replayGainInfo = newReplayGainInfo();
+ replayGainInfo->albumGain = info.gain_album;
+ replayGainInfo->albumPeak = info.peak_album;
+ replayGainInfo->trackGain = info.gain_title;
+ replayGainInfo->trackPeak = info.peak_title;
+
dc->state = DECODE_STATE_DECODE;
while(!eof) {
@@ -224,7 +231,8 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
chunk, chunkpos,
time,
bitRate,
- NULL);
+ replayGainInfo);
+
chunkpos = 0;
s16 = (mpd_sint16 *)chunk;
if(dc->stop) {
@@ -243,13 +251,15 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
sendDataToOutputBuffer(cb, NULL, dc, inStream->seekable,
chunk, chunkpos, time, bitRate,
- NULL);
+ replayGainInfo);
}
closeInputStream(inStream);
flushOutputBuffer(cb);
+ freeReplayGainInfo(replayGainInfo);
+
if(dc->stop) {
dc->state = DECODE_STATE_STOP;
dc->stop = 0;