aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/mp3_plugin.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/inputPlugins/mp3_plugin.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/inputPlugins/mp3_plugin.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c
index 30515f303..4288f85de 100644
--- a/src/inputPlugins/mp3_plugin.c
+++ b/src/inputPlugins/mp3_plugin.c
@@ -854,8 +854,7 @@ static int mp3Read(mp3DecodeData * data, ReplayGainInfo ** replayGainInfo)
data->outputPtr = data->outputBuffer;
ob_clear();
data->muteFrame = 0;
- dc.command = DECODE_COMMAND_NONE;
- decoder_wakeup_player();
+ dc_command_finished();
}
break;
default:
@@ -968,14 +967,12 @@ static int mp3Read(mp3DecodeData * data, ReplayGainInfo ** replayGainInfo)
} else
dc.seekError = 1;
data->muteFrame = 0;
- dc.command = DECODE_COMMAND_NONE;
- decoder_wakeup_player();
+ dc_command_finished();
}
} else if (dc.command == DECODE_COMMAND_SEEK &&
!data->inStream->seekable) {
- dc.command = DECODE_COMMAND_NONE;
dc.seekError = 1;
- decoder_wakeup_player();
+ dc_command_finished();
}
}
@@ -1084,8 +1081,7 @@ static int mp3_decode(InputStream * inStream)
if (dc.command == DECODE_COMMAND_SEEK &&
data.muteFrame == MUTEFRAME_SEEK) {
ob_clear();
- dc.command = DECODE_COMMAND_NONE;
- decoder_wakeup_player();
+ dc_command_finished();
}
ob_flush();