added outputBufferRelative()

The cross-fade check is still very complicated whenever it uses
OutputBuffer internals.  Greatly simplify another check by introducing
outputBufferRelative().

git-svn-id: https://svn.musicpd.org/mpd/trunk@7264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
Max Kellermann
2008-04-12 04:12:53 +00:00
committed by Eric Wong
parent 50dc380f23
commit 4e60343e55
3 changed files with 17 additions and 10 deletions

View File

@@ -496,12 +496,8 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
else if (!outputBufferEmpty(cb) && cb->begin != next) {
unsigned int fadePosition;
if (doCrossFade == 1 && next >= 0 &&
((next > cb->begin &&
(fadePosition = next - cb->begin)
<= crossFadeChunks) ||
(cb->begin > next &&
(fadePosition = next - cb->begin +
buffered_chunks) <= crossFadeChunks))) {
(fadePosition = outputBufferRelative(cb, next))
<= crossFadeChunks) {
/* perform cross fade */
if (nextChunk < 0) {
/* beginning of the cross fade