Commit d29bad44 authored by Max Kellermann's avatar Max Kellermann

mp3: make mp3_read() return bool

Its only caller in mp3_decode() just compared its value with DECODE_BREAK. Convert that to bool, and return false if the loop should be ended. Also eliminate some superfluous command checking code, which was already done in the preceding while loop.
parent f8722913
...@@ -984,7 +984,7 @@ mp3_synth_and_send(struct mp3_data *data, ReplayGainInfo *replay_gain_info) ...@@ -984,7 +984,7 @@ mp3_synth_and_send(struct mp3_data *data, ReplayGainInfo *replay_gain_info)
return DECODE_COMMAND_NONE; return DECODE_COMMAND_NONE;
} }
static enum mp3_action static bool
mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r) mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r)
{ {
struct decoder *decoder = data->decoder; struct decoder *decoder = data->decoder;
...@@ -1006,8 +1006,8 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r) ...@@ -1006,8 +1006,8 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r)
cmd = mp3_synth_and_send(data, cmd = mp3_synth_and_send(data,
replay_gain_info_r != NULL replay_gain_info_r != NULL
? *replay_gain_info_r : NULL); ? *replay_gain_info_r : NULL);
if (cmd == DECODE_COMMAND_STOP) if (cmd != DECODE_COMMAND_NONE)
return DECODE_BREAK; return false;
if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK) { if (decoder_get_command(decoder) == DECODE_COMMAND_SEEK) {
unsigned long j; unsigned long j;
...@@ -1037,7 +1037,7 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r) ...@@ -1037,7 +1037,7 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r)
replay_gain_info_r)) == DECODE_CONT replay_gain_info_r)) == DECODE_CONT
&& decoder_get_command(decoder) == DECODE_COMMAND_NONE) ; && decoder_get_command(decoder) == DECODE_COMMAND_NONE) ;
if (ret == DECODE_BREAK || decoder_get_command(decoder) != DECODE_COMMAND_NONE) if (ret == DECODE_BREAK || decoder_get_command(decoder) != DECODE_COMMAND_NONE)
break; return false;
else if (ret == DECODE_SKIP) else if (ret == DECODE_SKIP)
skip = 1; skip = 1;
if (data->mute_frame == MUTEFRAME_NONE) { if (data->mute_frame == MUTEFRAME_NONE) {
...@@ -1045,25 +1045,13 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r) ...@@ -1045,25 +1045,13 @@ mp3_read(struct mp3_data *data, ReplayGainInfo **replay_gain_info_r)
decoder_get_command(decoder) == DECODE_COMMAND_NONE) ; decoder_get_command(decoder) == DECODE_COMMAND_NONE) ;
if (ret == DECODE_BREAK || if (ret == DECODE_BREAK ||
decoder_get_command(decoder) != DECODE_COMMAND_NONE) decoder_get_command(decoder) != DECODE_COMMAND_NONE)
break; return false;
} }
if (!skip && ret == DECODE_OK) if (!skip && ret == DECODE_OK)
break; break;
} }
switch (decoder_get_command(decoder)) { return ret != DECODE_BREAK;
case DECODE_COMMAND_NONE:
case DECODE_COMMAND_START:
break;
case DECODE_COMMAND_STOP:
return DECODE_BREAK;
case DECODE_COMMAND_SEEK:
return DECODE_CONT;
}
return ret;
} }
static void mp3_audio_format(struct mp3_data *data, struct audio_format *af) static void mp3_audio_format(struct mp3_data *data, struct audio_format *af)
...@@ -1122,7 +1110,7 @@ mp3_decode(struct decoder *decoder, struct input_stream *input_stream) ...@@ -1122,7 +1110,7 @@ mp3_decode(struct decoder *decoder, struct input_stream *input_stream)
decoder_initialized(decoder, &audio_format, data.total_time); decoder_initialized(decoder, &audio_format, data.total_time);
while (mp3_read(&data, &replay_gain_info) != DECODE_BREAK) ; while (mp3_read(&data, &replay_gain_info)) ;
if (replay_gain_info) if (replay_gain_info)
freeReplayGainInfo(replay_gain_info); freeReplayGainInfo(replay_gain_info);
......
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