output/Thread: move code to BeginPause(), IteratePause()
This commit is contained in:
parent
2a831fa547
commit
59181ac5fb
@ -516,6 +516,9 @@ private:
|
|||||||
*/
|
*/
|
||||||
bool Play();
|
bool Play();
|
||||||
|
|
||||||
|
void BeginPause();
|
||||||
|
bool IteratePause();
|
||||||
|
|
||||||
void Pause();
|
void Pause();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -365,7 +365,7 @@ AudioOutput::Play()
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
AudioOutput::Pause()
|
AudioOutput::BeginPause()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const ScopeUnlock unlock(mutex);
|
const ScopeUnlock unlock(mutex);
|
||||||
@ -373,13 +373,13 @@ AudioOutput::Pause()
|
|||||||
}
|
}
|
||||||
|
|
||||||
pause = true;
|
pause = true;
|
||||||
CommandFinished();
|
}
|
||||||
|
|
||||||
do {
|
|
||||||
if (!WaitForDelay())
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
inline bool
|
||||||
|
AudioOutput::IteratePause()
|
||||||
|
{
|
||||||
bool success;
|
bool success;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const ScopeUnlock unlock(mutex);
|
const ScopeUnlock unlock(mutex);
|
||||||
success = ao_plugin_pause(*this);
|
success = ao_plugin_pause(*this);
|
||||||
@ -389,10 +389,24 @@ AudioOutput::Pause()
|
|||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success)
|
||||||
Close(false);
|
Close(false);
|
||||||
break;
|
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void
|
||||||
|
AudioOutput::Pause()
|
||||||
|
{
|
||||||
|
BeginPause();
|
||||||
|
CommandFinished();
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (!WaitForDelay())
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!IteratePause())
|
||||||
|
break;
|
||||||
} while (command == Command::NONE);
|
} while (command == Command::NONE);
|
||||||
|
|
||||||
pause = false;
|
pause = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user