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);
bool ApplyBorderPause() {
if (border_pause)
state = PlayerState::PAUSE;
return border_pause;
}
bool LockApplyBorderPause() {
const ScopeLock lock(mutex);
return ApplyBorderPause();
}
void Kill();
gcc_pure

View File

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