Commit 39c5af5d authored by Max Kellermann's avatar Max Kellermann

decoder_thread: move code to decoder_command_finished_locked()

parent acca6a79
......@@ -55,6 +55,22 @@ decoder_lock_get_command(struct decoder_control *dc)
}
/**
* Marks the current decoder command as "finished" and notifies the
* player thread.
*
* @param dc the #decoder_control object; must be locked
*/
static void
decoder_command_finished_locked(struct decoder_control *dc)
{
assert(dc->command != DECODE_COMMAND_NONE);
dc->command = DECODE_COMMAND_NONE;
player_signal(dc->player_control);
}
/**
* Opens the input stream with input_stream_open(), and waits until
* the stream gets ready. If a decoder STOP command is received
* during that, it cancels the operation (but does not close the
......@@ -381,9 +397,8 @@ decoder_run_song(struct decoder_control *dc,
decoder.chunk = NULL;
dc->state = DECODE_STATE_START;
dc->command = DECODE_COMMAND_NONE;
player_signal(dc->player_control);
decoder_command_finished_locked(dc);
pcm_convert_init(&decoder.conv_state);
......@@ -462,15 +477,11 @@ decoder_task(gpointer arg)
case DECODE_COMMAND_SEEK:
decoder_run(dc);
dc->command = DECODE_COMMAND_NONE;
player_signal(dc->player_control);
decoder_command_finished_locked(dc);
break;
case DECODE_COMMAND_STOP:
dc->command = DECODE_COMMAND_NONE;
player_signal(dc->player_control);
decoder_command_finished_locked(dc);
break;
case DECODE_COMMAND_NONE:
......
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