diff options
-rw-r--r-- | src/player/Control.cxx | 34 | ||||
-rw-r--r-- | src/player/Control.hxx | 21 |
2 files changed, 19 insertions, 36 deletions
diff --git a/src/player/Control.cxx b/src/player/Control.cxx index 290f61af8..4c30159ba 100644 --- a/src/player/Control.cxx +++ b/src/player/Control.cxx @@ -54,7 +54,7 @@ PlayerControl::Play(DetachedSong *song) { assert(song != nullptr); - Lock(); + const ScopeLock protect(mutex); if (state != PlayerState::STOP) SynchronousCommand(PlayerCommand::STOP); @@ -64,8 +64,6 @@ PlayerControl::Play(DetachedSong *song) EnqueueSongLocked(song); assert(next_song == nullptr); - - Unlock(); } void @@ -113,15 +111,14 @@ PlayerControl::PauseLocked() void PlayerControl::LockPause() { - Lock(); + const ScopeLock protect(mutex); PauseLocked(); - Unlock(); } void PlayerControl::LockSetPause(bool pause_flag) { - Lock(); + const ScopeLock protect(mutex); switch (state) { case PlayerState::STOP: @@ -137,16 +134,13 @@ PlayerControl::LockSetPause(bool pause_flag) PauseLocked(); break; } - - Unlock(); } void PlayerControl::LockSetBorderPause(bool _border_pause) { - Lock(); + const ScopeLock protect(mutex); border_pause = _border_pause; - Unlock(); } player_status @@ -154,7 +148,7 @@ PlayerControl::LockGetStatus() { player_status status; - Lock(); + const ScopeLock protect(mutex); SynchronousCommand(PlayerCommand::REFRESH); status.state = state; @@ -166,8 +160,6 @@ PlayerControl::LockGetStatus() status.elapsed_time = elapsed_time; } - Unlock(); - return status; } @@ -184,18 +176,16 @@ PlayerControl::SetError(PlayerError type, Error &&_error) void PlayerControl::LockClearError() { - Lock(); + const ScopeLock protect(mutex); ClearError(); - Unlock(); } void PlayerControl::LockSetTaggedSong(const DetachedSong &song) { - Lock(); + const ScopeLock protect(mutex); delete tagged_song; tagged_song = new DetachedSong(song); - Unlock(); } void @@ -210,9 +200,8 @@ PlayerControl::LockEnqueueSong(DetachedSong *song) { assert(song != nullptr); - Lock(); + const ScopeLock protect(mutex); EnqueueSongLocked(song); - Unlock(); } void @@ -237,9 +226,10 @@ PlayerControl::LockSeek(DetachedSong *song, SongTime t) { assert(song != nullptr); - Lock(); - SeekLocked(song, t); - Unlock(); + { + const ScopeLock protect(mutex); + SeekLocked(song, t); + } idle_add(IDLE_PLAYER); diff --git a/src/player/Control.hxx b/src/player/Control.hxx index edfde09fe..df2dc35be 100644 --- a/src/player/Control.hxx +++ b/src/player/Control.hxx @@ -210,9 +210,8 @@ struct PlayerControl { * this function. */ void LockSignal() { - Lock(); + const ScopeLock protect(mutex); Signal(); - Unlock(); } /** @@ -264,9 +263,8 @@ struct PlayerControl { } void LockCommandFinished() { - Lock(); + const ScopeLock protect(mutex); CommandFinished(); - Unlock(); } private: @@ -304,9 +302,8 @@ private: * object. */ void LockSynchronousCommand(PlayerCommand cmd) { - Lock(); + const ScopeLock protect(mutex); SynchronousCommand(cmd); - Unlock(); } public: @@ -377,10 +374,8 @@ public: */ gcc_pure Error LockGetError() const { - Lock(); - Error result = GetError(); - Unlock(); - return result; + const ScopeLock protect(mutex); + return GetError(); } void LockClearError(); @@ -412,10 +407,8 @@ public: * Like ReadTaggedSong(), but locks and unlocks the object. */ DetachedSong *LockReadTaggedSong() { - Lock(); - DetachedSong *result = ReadTaggedSong(); - Unlock(); - return result; + const ScopeLock protect(mutex); + return ReadTaggedSong(); } void LockStop(); |