diff options
author | Max Kellermann <max@duempel.org> | 2010-11-05 17:42:08 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-11-05 19:18:44 +0100 |
commit | cc261872c25be3a5792be8ae160e070d1bbedf0b (patch) | |
tree | 6261d4dc29ad8c8e7b189585c4d0583f1727b664 /src/player_thread.c | |
parent | 5223261f1907a642ebe741518b7981830c094924 (diff) | |
download | mpd-cc261872c25be3a5792be8ae160e070d1bbedf0b.tar.gz mpd-cc261872c25be3a5792be8ae160e070d1bbedf0b.tar.xz mpd-cc261872c25be3a5792be8ae160e070d1bbedf0b.zip |
decoder_control: pass music_pipe to dc_start()
More abstraction for decoder_control.pipe.
Diffstat (limited to '')
-rw-r--r-- | src/player_thread.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/player_thread.c b/src/player_thread.c index a827e7505..3d2ebcb42 100644 --- a/src/player_thread.c +++ b/src/player_thread.c @@ -324,10 +324,9 @@ static bool player_seek_decoder(struct player *player) /* clear music chunks which might still reside in the pipe */ music_pipe_clear(player->pipe, player_buffer); - dc.pipe = player->pipe; /* re-start the decoder */ - dc_start_async(pc.next_song); + dc_start_async(pc.next_song, player->pipe); ret = player_wait_for_decoder(player); if (!ret) { /* decoder failure */ @@ -665,8 +664,7 @@ static void do_play(void) player.pipe = music_pipe_new(); dc.buffer = player_buffer; - dc.pipe = player.pipe; - dc_start(&pc.notify, pc.next_song); + dc_start(&pc.notify, pc.next_song, player.pipe); if (!player_wait_for_decoder(&player)) { player_dc_stop(&player); player_command_finished(); @@ -735,9 +733,10 @@ static void do_play(void) assert(pc.next_song != NULL); assert(!player_dc_at_next_song(&player)); + dc.pipe = NULL; + player.queued = false; - dc.pipe = music_pipe_new(); - dc_start_async(pc.next_song); + dc_start_async(pc.next_song, music_pipe_new()); } if (player_dc_at_next_song(&player) && |