Commit 06e0741a authored by Max Kellermann's avatar Max Kellermann

PlayerControl: switch to the Mutex/Cond classes

parent 0b934453
...@@ -37,8 +37,6 @@ player_control::player_control(unsigned _buffer_chunks, ...@@ -37,8 +37,6 @@ player_control::player_control(unsigned _buffer_chunks,
:buffer_chunks(_buffer_chunks), :buffer_chunks(_buffer_chunks),
buffered_before_play(_buffered_before_play), buffered_before_play(_buffered_before_play),
thread(nullptr), thread(nullptr),
mutex(g_mutex_new()),
cond(g_cond_new()),
command(PLAYER_COMMAND_NONE), command(PLAYER_COMMAND_NONE),
state(PLAYER_STATE_STOP), state(PLAYER_STATE_STOP),
error_type(PLAYER_ERROR_NONE), error_type(PLAYER_ERROR_NONE),
...@@ -55,9 +53,6 @@ player_control::~player_control() ...@@ -55,9 +53,6 @@ player_control::~player_control()
{ {
if (next_song != nullptr) if (next_song != nullptr)
song_free(next_song); song_free(next_song);
g_cond_free(cond);
g_mutex_free(mutex);
} }
void void
...@@ -76,7 +71,7 @@ static void ...@@ -76,7 +71,7 @@ static void
player_command_wait_locked(struct player_control *pc) player_command_wait_locked(struct player_control *pc)
{ {
while (pc->command != PLAYER_COMMAND_NONE) while (pc->command != PLAYER_COMMAND_NONE)
g_cond_wait(pc->cond, pc->mutex); pc->cond.wait(pc->mutex);
} }
static void static void
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#define MPD_PLAYER_H #define MPD_PLAYER_H
#include "audio_format.h" #include "audio_format.h"
#include "thread/Mutex.hxx"
#include "thread/Cond.hxx"
#include <glib.h> #include <glib.h>
...@@ -99,12 +101,12 @@ struct player_control { ...@@ -99,12 +101,12 @@ struct player_control {
/** /**
* This lock protects #command, #state, #error. * This lock protects #command, #state, #error.
*/ */
GMutex *mutex; Mutex mutex;
/** /**
* Trigger this object after you have modified #command. * Trigger this object after you have modified #command.
*/ */
GCond *cond; Cond cond;
enum player_command command; enum player_command command;
enum player_state state; enum player_state state;
...@@ -158,7 +160,7 @@ struct player_control { ...@@ -158,7 +160,7 @@ struct player_control {
static inline void static inline void
player_lock(struct player_control *pc) player_lock(struct player_control *pc)
{ {
g_mutex_lock(pc->mutex); pc->mutex.lock();
} }
/** /**
...@@ -167,7 +169,7 @@ player_lock(struct player_control *pc) ...@@ -167,7 +169,7 @@ player_lock(struct player_control *pc)
static inline void static inline void
player_unlock(struct player_control *pc) player_unlock(struct player_control *pc)
{ {
g_mutex_unlock(pc->mutex); pc->mutex.unlock();
} }
/** /**
...@@ -178,7 +180,7 @@ player_unlock(struct player_control *pc) ...@@ -178,7 +180,7 @@ player_unlock(struct player_control *pc)
static inline void static inline void
player_wait(struct player_control *pc) 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); ...@@ -198,7 +200,7 @@ player_wait_decoder(struct player_control *pc, struct decoder_control *dc);
static inline void static inline void
player_signal(struct player_control *pc) player_signal(struct player_control *pc)
{ {
g_cond_signal(pc->cond); pc->cond.signal();
} }
/** /**
......
...@@ -147,7 +147,7 @@ player_command_finished_locked(struct player_control *pc) ...@@ -147,7 +147,7 @@ player_command_finished_locked(struct player_control *pc)
assert(pc->command != PLAYER_COMMAND_NONE); assert(pc->command != PLAYER_COMMAND_NONE);
pc->command = PLAYER_COMMAND_NONE; pc->command = PLAYER_COMMAND_NONE;
g_cond_signal(pc->cond); pc->cond.signal();
} }
static void static void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment