diff options
author | Max Kellermann <max@duempel.org> | 2011-01-10 21:27:43 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-01-10 21:27:43 +0100 |
commit | a0ad96a787d5df3f0cbd0c40252312700320a849 (patch) | |
tree | 1d9c66b3880180ae6c7453515aaad7942a8b474a /src/decoder_control.c | |
parent | 39c5af5dbc1ccf0b103daaaed642c2d8af3210a8 (diff) | |
download | mpd-a0ad96a787d5df3f0cbd0c40252312700320a849.tar.gz mpd-a0ad96a787d5df3f0cbd0c40252312700320a849.tar.xz mpd-a0ad96a787d5df3f0cbd0c40252312700320a849.zip |
decoder_control: store GCond object, not a player_control
Remove the decoder dependency on player_control. All player_control
was needed for is to signal the player thread, and we can do that with
a simple GCond as well.
Diffstat (limited to '')
-rw-r--r-- | src/decoder_control.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/decoder_control.c b/src/decoder_control.c index a570b2441..15f60790f 100644 --- a/src/decoder_control.c +++ b/src/decoder_control.c @@ -19,7 +19,6 @@ #include "config.h" #include "decoder_control.h" -#include "player_control.h" #include "pipe.h" #include <assert.h> @@ -28,15 +27,15 @@ #define G_LOG_DOMAIN "decoder_control" struct decoder_control * -dc_new(struct player_control *pc) +dc_new(GCond *client_cond) { struct decoder_control *dc = g_new(struct decoder_control, 1); - dc->player_control = pc; dc->thread = NULL; dc->mutex = g_mutex_new(); dc->cond = g_cond_new(); + dc->client_cond = client_cond; dc->state = DECODE_STATE_STOP; dc->command = DECODE_COMMAND_NONE; @@ -65,7 +64,7 @@ static void dc_command_wait_locked(struct decoder_control *dc) { while (dc->command != DECODE_COMMAND_NONE) - player_wait_decoder(dc->player_control, dc); + g_cond_wait(dc->client_cond, dc->mutex); } static void |