output/Multiple: move Wait() to struct PlayerControl

Eliminate a dependency from MultipleOutputs on PlayerControl.
This commit is contained in:
Max Kellermann
2016-12-14 12:54:19 +01:00
parent 7c6b0d5c31
commit ece5971027
5 changed files with 32 additions and 29 deletions

View File

@@ -280,6 +280,23 @@ struct PlayerControl {
CommandFinished();
}
/**
* Checks if the size of the #MusicPipe is below the #threshold. If
* not, it attempts to synchronize with all output threads, and waits
* until another #MusicChunk is finished.
*
* Caller must lock the mutex.
*
* @param threshold the maximum number of chunks in the pipe
* @return true if there are less than #threshold chunks in the pipe
*/
bool WaitOutputConsumed(unsigned threshold);
bool LockWaitOutputConsumed(unsigned threshold) {
const ScopeLock protect(mutex);
return WaitOutputConsumed(threshold);
}
private:
/**
* Wait for the command to be finished by the player thread.