aboutsummaryrefslogtreecommitdiffstats
path: root/src/decode.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-26 08:27:04 +0200
committerMax Kellermann <max@duempel.org>2008-08-26 08:27:04 +0200
commit9e0f7dcd1a9c000a78cf283af4fa593e808ed374 (patch)
tree44772658d158989ddf49b764e92d34e9135678b4 /src/decode.c
parent726c6e86d304163f0453de611ce03d656d99d1d8 (diff)
downloadmpd-9e0f7dcd1a9c000a78cf283af4fa593e808ed374.tar.gz
mpd-9e0f7dcd1a9c000a78cf283af4fa593e808ed374.tar.xz
mpd-9e0f7dcd1a9c000a78cf283af4fa593e808ed374.zip
added dc_command_finished()
dc_command_finished() is invoked by the decoder thread when it has finished a command (sent by the player thread). It resets dc.command and wakes up the player thread. This combination was used at a lot of places, and by introducing this function, the code will be more readable.
Diffstat (limited to '')
-rw-r--r--src/decode.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/decode.c b/src/decode.c
index 551f40caa..dff876296 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -70,6 +70,14 @@ static void dc_command(enum decoder_command cmd)
dc_command_wait();
}
+void dc_command_finished(void)
+{
+ assert(dc.command != DECODE_COMMAND_NONE);
+
+ dc.command = DECODE_COMMAND_NONE;
+ decoder_wakeup_player();
+}
+
static void stopDecode(void)
{
if (dc.command == DECODE_COMMAND_START ||
@@ -346,8 +354,7 @@ static void * decoder_task(mpd_unused void *arg)
dc.command == DECODE_COMMAND_SEEK) {
decodeStart();
} else if (dc.command == DECODE_COMMAND_STOP) {
- dc.command = DECODE_COMMAND_NONE;
- decoder_wakeup_player();
+ dc_command_finished();
} else {
decoder_sleep();
}