player/Control: add method LockApplyBorderPause()

This commit is contained in:
Max Kellermann 2016-12-14 13:09:48 +01:00
parent baa2bc0c38
commit 03151310cf
2 changed files with 13 additions and 9 deletions

View File

@ -351,6 +351,17 @@ public:
*/ */
void LockSetBorderPause(bool border_pause); void LockSetBorderPause(bool border_pause);
bool ApplyBorderPause() {
if (border_pause)
state = PlayerState::PAUSE;
return border_pause;
}
bool LockApplyBorderPause() {
const ScopeLock lock(mutex);
return ApplyBorderPause();
}
void Kill(); void Kill();
gcc_pure gcc_pure

View File

@ -948,18 +948,11 @@ Player::SongBorder()
ActivateDecoder(); ActivateDecoder();
pc.Lock(); const bool border_pause = pc.LockApplyBorderPause();
const bool border_pause = pc.border_pause;
if (border_pause) { if (border_pause) {
paused = true; paused = true;
pc.state = PlayerState::PAUSE;
}
pc.Unlock();
if (border_pause)
idle_add(IDLE_PLAYER); idle_add(IDLE_PLAYER);
}
} }
inline void inline void