aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-04-12 04:13:11 +0000
committerEric Wong <normalperson@yhbt.net>2008-04-12 04:13:11 +0000
commit7a6c31ae069bb86e201d09525ef00ec265ca00f3 (patch)
treea8e648788f1034fc282f96ad654121d72a19cc31
parent71b24e095002267e6369eeae21c5139037fb0e93 (diff)
downloadmpd-7a6c31ae069bb86e201d09525ef00ec265ca00f3.tar.gz
mpd-7a6c31ae069bb86e201d09525ef00ec265ca00f3.tar.xz
mpd-7a6c31ae069bb86e201d09525ef00ec265ca00f3.zip
added outputBufferChunkData()
Hiding OutputBuffer internals, again. We get an extra assertion in return. git-svn-id: https://svn.musicpd.org/mpd/trunk@7267 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to '')
-rw-r--r--src/decode.c6
-rw-r--r--src/outputBuffer.c7
-rw-r--r--src/outputBuffer.h2
3 files changed, 11 insertions, 4 deletions
diff --git a/src/decode.c b/src/decode.c
index 3a73d9ef2..8650184c6 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -506,10 +506,8 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
}
nextChunk = outputBufferAbsolute(cb, crossFadeChunks);
if (nextChunk >= 0) {
- pcm_mix(cb->chunks +
- cb->begin * CHUNK_SIZE,
- cb->chunks +
- nextChunk * CHUNK_SIZE,
+ pcm_mix(outputBufferChunkData(cb, cb->begin),
+ outputBufferChunkData(cb, nextChunk),
cb->chunkSize[cb->begin],
cb->chunkSize[nextChunk],
&(cb->audioFormat),
diff --git a/src/outputBuffer.c b/src/outputBuffer.c
index aadd5e379..157e36374 100644
--- a/src/outputBuffer.c
+++ b/src/outputBuffer.c
@@ -92,6 +92,13 @@ int outputBufferAbsolute(const OutputBuffer * cb, unsigned relative)
return (int)i;
}
+char * outputBufferChunkData(const OutputBuffer * cb, unsigned i)
+{
+ assert(i < buffered_chunks);
+
+ return cb->chunks + i * CHUNK_SIZE;
+}
+
/**
* Return the tail chunk has room for additional data. If there is no
* room in the queue, this function blocks until the player thread has
diff --git a/src/outputBuffer.h b/src/outputBuffer.h
index 0af264c14..f2a1c8734 100644
--- a/src/outputBuffer.h
+++ b/src/outputBuffer.h
@@ -73,6 +73,8 @@ unsigned availableOutputBuffer(const OutputBuffer * cb);
*/
int outputBufferAbsolute(const OutputBuffer * cb, unsigned relative);
+char * outputBufferChunkData(const OutputBuffer * cb, unsigned i);
+
/* we send inStream for buffering the inputStream while waiting to
send the next chunk */
int sendDataToOutputBuffer(OutputBuffer * cb,