diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/PlayerControl.cxx | 7 | ||||
-rw-r--r-- | src/PlayerControl.hxx | 14 | ||||
-rw-r--r-- | src/PlayerThread.cxx | 2 |
3 files changed, 10 insertions, 13 deletions
diff --git a/src/PlayerControl.cxx b/src/PlayerControl.cxx index 857322c50..6246e0233 100644 --- a/src/PlayerControl.cxx +++ b/src/PlayerControl.cxx @@ -37,8 +37,6 @@ player_control::player_control(unsigned _buffer_chunks, :buffer_chunks(_buffer_chunks), buffered_before_play(_buffered_before_play), thread(nullptr), - mutex(g_mutex_new()), - cond(g_cond_new()), command(PLAYER_COMMAND_NONE), state(PLAYER_STATE_STOP), error_type(PLAYER_ERROR_NONE), @@ -55,9 +53,6 @@ player_control::~player_control() { if (next_song != nullptr) song_free(next_song); - - g_cond_free(cond); - g_mutex_free(mutex); } void @@ -76,7 +71,7 @@ static void player_command_wait_locked(struct player_control *pc) { while (pc->command != PLAYER_COMMAND_NONE) - g_cond_wait(pc->cond, pc->mutex); + pc->cond.wait(pc->mutex); } static void diff --git a/src/PlayerControl.hxx b/src/PlayerControl.hxx index 1a0503209..322b95c84 100644 --- a/src/PlayerControl.hxx +++ b/src/PlayerControl.hxx @@ -21,6 +21,8 @@ #define MPD_PLAYER_H #include "audio_format.h" +#include "thread/Mutex.hxx" +#include "thread/Cond.hxx" #include <glib.h> @@ -99,12 +101,12 @@ struct player_control { /** * This lock protects #command, #state, #error. */ - GMutex *mutex; + Mutex mutex; /** * Trigger this object after you have modified #command. */ - GCond *cond; + Cond cond; enum player_command command; enum player_state state; @@ -158,7 +160,7 @@ struct player_control { static inline void player_lock(struct player_control *pc) { - g_mutex_lock(pc->mutex); + pc->mutex.lock(); } /** @@ -167,7 +169,7 @@ player_lock(struct player_control *pc) static inline void player_unlock(struct player_control *pc) { - g_mutex_unlock(pc->mutex); + pc->mutex.unlock(); } /** @@ -178,7 +180,7 @@ player_unlock(struct player_control *pc) static inline void player_wait(struct player_control *pc) { - g_cond_wait(pc->cond, pc->mutex); + pc->cond.wait(pc->mutex); } /** @@ -198,7 +200,7 @@ player_wait_decoder(struct player_control *pc, struct decoder_control *dc); static inline void player_signal(struct player_control *pc) { - g_cond_signal(pc->cond); + pc->cond.signal(); } /** diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx index 775e53ef7..fb7432368 100644 --- a/src/PlayerThread.cxx +++ b/src/PlayerThread.cxx @@ -147,7 +147,7 @@ player_command_finished_locked(struct player_control *pc) assert(pc->command != PLAYER_COMMAND_NONE); pc->command = PLAYER_COMMAND_NONE; - g_cond_signal(pc->cond); + pc->cond.signal(); } static void |