player_thread: use bool instead of int
Make player_wait_for_decoder() and play_chunk() return a bool instead of 0/-1.
This commit is contained in:
parent
5541015ac6
commit
38a9ad011a
@ -94,7 +94,8 @@ static void player_stop_decoder(void)
|
|||||||
event_pipe_emit(PIPE_EVENT_PLAYLIST);
|
event_pipe_emit(PIPE_EVENT_PLAYLIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int player_wait_for_decoder(struct player *player)
|
static bool
|
||||||
|
player_wait_for_decoder(struct player *player)
|
||||||
{
|
{
|
||||||
dc_command_wait(&pc.notify);
|
dc_command_wait(&pc.notify);
|
||||||
|
|
||||||
@ -102,7 +103,7 @@ static int player_wait_for_decoder(struct player *player)
|
|||||||
assert(dc.next_song == NULL || dc.next_song->url != NULL);
|
assert(dc.next_song == NULL || dc.next_song->url != NULL);
|
||||||
pc.errored_song = dc.next_song;
|
pc.errored_song = dc.next_song;
|
||||||
pc.error = PLAYER_ERROR_FILE;
|
pc.error = PLAYER_ERROR_FILE;
|
||||||
return -1;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
pc.total_time = pc.next_song->tag != NULL
|
pc.total_time = pc.next_song->tag != NULL
|
||||||
@ -119,7 +120,7 @@ static int player_wait_for_decoder(struct player *player)
|
|||||||
/* call syncPlaylistWithQueue() in the main thread */
|
/* call syncPlaylistWithQueue() in the main thread */
|
||||||
event_pipe_emit(PIPE_EVENT_PLAYLIST);
|
event_pipe_emit(PIPE_EVENT_PLAYLIST);
|
||||||
|
|
||||||
return 0;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool player_seek_decoder(struct player *player)
|
static bool player_seek_decoder(struct player *player)
|
||||||
@ -228,7 +229,7 @@ static void player_process_command(struct player *player)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static bool
|
||||||
play_chunk(struct song *song, struct music_chunk *chunk,
|
play_chunk(struct song *song, struct music_chunk *chunk,
|
||||||
const struct audio_format *format, double sizeToTime)
|
const struct audio_format *format, double sizeToTime)
|
||||||
{
|
{
|
||||||
@ -258,16 +259,16 @@ play_chunk(struct song *song, struct music_chunk *chunk,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chunk->length == 0)
|
if (chunk->length == 0)
|
||||||
return 0;
|
return true;
|
||||||
|
|
||||||
pcm_volume(chunk->data, chunk->length,
|
pcm_volume(chunk->data, chunk->length,
|
||||||
format, pc.software_volume);
|
format, pc.software_volume);
|
||||||
|
|
||||||
if (!playAudio(chunk->data, chunk->length))
|
if (!playAudio(chunk->data, chunk->length))
|
||||||
return -1;
|
return false;
|
||||||
|
|
||||||
pc.total_play_time += sizeToTime * chunk->length;
|
pc.total_play_time += sizeToTime * chunk->length;
|
||||||
return 0;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_play(void)
|
static void do_play(void)
|
||||||
@ -293,7 +294,7 @@ static void do_play(void)
|
|||||||
music_pipe_set_lazy(false);
|
music_pipe_set_lazy(false);
|
||||||
|
|
||||||
dc_start(&pc.notify, pc.next_song);
|
dc_start(&pc.notify, pc.next_song);
|
||||||
if (player_wait_for_decoder(&player) < 0) {
|
if (!player_wait_for_decoder(&player)) {
|
||||||
player_stop_decoder();
|
player_stop_decoder();
|
||||||
player_command_finished();
|
player_command_finished();
|
||||||
return;
|
return;
|
||||||
@ -303,7 +304,7 @@ static void do_play(void)
|
|||||||
pc.state = PLAYER_STATE_PLAY;
|
pc.state = PLAYER_STATE_PLAY;
|
||||||
player_command_finished();
|
player_command_finished();
|
||||||
|
|
||||||
while (1) {
|
while (true) {
|
||||||
player_process_command(&player);
|
player_process_command(&player);
|
||||||
if (pc.command == PLAYER_COMMAND_STOP ||
|
if (pc.command == PLAYER_COMMAND_STOP ||
|
||||||
pc.command == PLAYER_COMMAND_EXIT ||
|
pc.command == PLAYER_COMMAND_EXIT ||
|
||||||
@ -457,8 +458,8 @@ static void do_play(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* play the current chunk */
|
/* play the current chunk */
|
||||||
if (play_chunk(player.song, beginChunk,
|
if (!play_chunk(player.song, beginChunk,
|
||||||
&play_audio_format, sizeToTime) < 0)
|
&play_audio_format, sizeToTime))
|
||||||
break;
|
break;
|
||||||
music_pipe_shift();
|
music_pipe_shift();
|
||||||
|
|
||||||
@ -481,7 +482,7 @@ static void do_play(void)
|
|||||||
player.xfade = XFADE_UNKNOWN;
|
player.xfade = XFADE_UNKNOWN;
|
||||||
|
|
||||||
player.next_song_chunk = -1;
|
player.next_song_chunk = -1;
|
||||||
if (player_wait_for_decoder(&player) < 0)
|
if (!player_wait_for_decoder(&player))
|
||||||
return;
|
return;
|
||||||
} else if (decoder_is_idle()) {
|
} else if (decoder_is_idle()) {
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user