Commit 2e648b57 authored by Max Kellermann's avatar Max Kellermann Committed by Eric Wong

added outputBufferShift()

Hiding OutputBuffer internals, yet again. Two more assertions. git-svn-id: https://svn.musicpd.org/mpd/trunk@7274 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent 11a5728e
......@@ -557,10 +557,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
break;
pc->totalPlayTime +=
sizeToTime * beginChunk->chunkSize;
if ((unsigned)cb->begin + 1 >= buffered_chunks) {
cb->begin = 0;
} else
cb->begin++;
outputBufferShift(cb);
player_wakeup_decoder_nb();
} else if (!outputBufferEmpty(cb) && cb->begin == next) {
/* at the beginning of a new song */
......
......@@ -56,6 +56,16 @@ int outputBufferEmpty(const OutputBuffer * cb)
return cb->begin == cb->end;
}
void outputBufferShift(OutputBuffer * cb)
{
assert(cb->begin != cb->end);
assert(cb->begin < buffered_chunks);
++cb->begin;
if (cb->begin >= buffered_chunks)
cb->begin = 0;
}
unsigned int outputBufferRelative(const OutputBuffer * cb, unsigned i)
{
if (i >= cb->begin)
......
......@@ -65,6 +65,8 @@ void flushOutputBuffer(OutputBuffer * cb);
/** is the buffer empty? */
int outputBufferEmpty(const OutputBuffer * cb);
void outputBufferShift(OutputBuffer * cb);
/**
* what is the position of the specified chunk number, relative to
* the first chunk in use?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment