diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-07-15 22:35:28 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-07-15 22:35:28 +0200 |
commit | 43b2df5cfbeb2f6434557fb6af0ae07f34149f24 (patch) | |
tree | 18a460d0969a55bf2d0b0f8bbe44dd2cd539677e | |
parent | 179702871911a1aa9e30776e141392c50064b3da (diff) |
streamer streamer_start_playback race condition (HACK)
-rw-r--r-- | main.c | 3 | ||||
-rw-r--r-- | streamer.c | 4 | ||||
-rw-r--r-- | streamer.h | 1 |
3 files changed, 6 insertions, 2 deletions
@@ -574,9 +574,8 @@ player_mainloop (void) { streamer_play_current_track (); break; case DB_EV_PLAY_NUM: - output->stop (); pl_playqueue_clear (); - streamer_set_nextsong (p1, 1); + streamer_set_nextsong (p1, 4); if (pl_get_order () == PLAYBACK_ORDER_SHUFFLE_ALBUMS) { int pl = streamer_get_current_playlist (); playlist_t *plt = plt_get_for_idx (pl); @@ -1326,6 +1326,10 @@ streamer_set_nextsong (int song, int pstate) { static void streamer_set_nextsong_real (int song, int pstate) { DB_output_t *output = plug_get_output (); + if (pstate == 4) { + pstate = 1; + output->stop (); + } trace ("streamer_set_nextsong %d %d\n", song, pstate); streamer_abort_files (); streamer_lock (); @@ -66,6 +66,7 @@ streamer_unlock (void); // 1 switch to current (gui) playlist, play if not playing // 2 pause // 3 play if not playing, don't switch playlist +// 4 same as 1, but stops playback before proceeding void streamer_set_nextsong (int song, int pstate); |