output/Internal: move the "pause" flag to struct AudioOutputControl

This commit is contained in:
Max Kellermann 2017-05-23 00:00:00 +02:00
parent dd29e6e475
commit 1fa1790da5
4 changed files with 13 additions and 15 deletions

View File

@ -181,9 +181,9 @@ AudioOutputControl::Open(const AudioFormat audio_format,
fail_timer.Reset();
if (output->open && audio_format == request.audio_format) {
assert(request.pipe == &mp || (always_on && output->pause));
assert(request.pipe == &mp || (always_on && pause));
if (!output->pause)
if (!pause)
/* already open, already the right parameters
- nothing needs to be done */
return true;

View File

@ -143,6 +143,12 @@ class AudioOutputControl {
*/
bool enabled = true;
/**
* Is the device paused? i.e. the output thread is in the
* ao_pause() loop.
*/
bool pause = false;
/**
* When this flag is set, the output thread will not do any
* playback. It will wait until the flag is cleared.

View File

@ -69,12 +69,6 @@ struct AudioOutput {
*/
bool open = false;
/**
* Is the device paused? i.e. the output thread is in the
* ao_pause() loop.
*/
bool pause = false;
/**
* The configured audio format.
*/
@ -234,7 +228,6 @@ public:
bool IteratePause() noexcept;
void EndPause() noexcept{
pause = false;
}
};

View File

@ -385,12 +385,8 @@ AudioOutputControl::InternalPlay() noexcept
inline void
AudioOutput::BeginPause() noexcept
{
{
const ScopeUnlock unlock(mutex);
ao_plugin_cancel(*this);
}
pause = true;
const ScopeUnlock unlock(mutex);
ao_plugin_cancel(*this);
}
inline bool
@ -417,6 +413,8 @@ inline void
AudioOutputControl::InternalPause() noexcept
{
output->BeginPause();
pause = true;
CommandFinished();
do {
@ -427,6 +425,7 @@ AudioOutputControl::InternalPause() noexcept
break;
} while (command == Command::NONE);
pause = false;
output->EndPause();
skip_delay = true;