aac, mod: moved decoder command check into loop condition

Avoid while(true) loops, and convert them to a loop with a proper
condition.
This commit is contained in:
Max Kellermann
2008-11-02 17:02:23 +01:00
parent 3f6fcfd38e
commit 5b13f067cd
2 changed files with 9 additions and 18 deletions

View File

@@ -179,6 +179,7 @@ mod_decode(struct decoder *decoder, const char *path)
float total_time = 0.0;
int ret;
float secPerByte;
enum decoder_command cmd = DECODE_COMMAND_NONE;
if (!mod_initMikMod())
return false;
@@ -199,18 +200,12 @@ mod_decode(struct decoder *decoder, const char *path)
decoder_initialized(decoder, &audio_format, false, 0);
while (true) {
if (decoder_get_command(decoder) == DECODE_COMMAND_STOP)
break;
if (!Player_Active())
break;
while (cmd == DECODE_COMMAND_NONE && Player_Active()) {
ret = VC_WriteBytes(data->audio_buffer, MIKMOD_FRAME_SIZE);
total_time += ret * secPerByte;
decoder_data(decoder, NULL,
(char *)data->audio_buffer, ret,
total_time, 0, NULL);
cmd = decoder_data(decoder, NULL,
data->audio_buffer, ret,
total_time, 0, NULL);
}
mod_close(data);