Index: apps/playlist.c =================================================================== --- apps/playlist.c (revision 19313) +++ apps/playlist.c (working copy) @@ -325,7 +325,6 @@ { update_control(playlist, PLAYLIST_COMMAND_PLAYLIST, PLAYLIST_CONTROL_FILE_VERSION, -1, dirused, fileused, NULL); - sync_control(playlist, false); } } @@ -622,9 +621,7 @@ else index = 0; -#if (CONFIG_CODEC != SWCODEC) playlist_start(index, 0); -#endif } /* we've overwritten the dircache when getting the next/previous dir, @@ -2421,7 +2418,8 @@ playlist->started = true; sync_control(playlist, false); - audio_play(offset); + if (audio_status() == 0) + audio_play(offset); return 0; } @@ -2531,20 +2529,19 @@ playlist->first_index = 0; sort_playlist(playlist, false, false); randomise_playlist(playlist, current_tick, false, true); -#if CONFIG_CODEC != SWCODEC playlist_start(0, 0); -#endif - playlist->index = 0; index = 0; } else if (playlist->in_ram && global_settings.next_folder) { index = create_and_play_dir(steps, true); - if (index >= 0) - { - playlist->index = index; - } + + if (index < 0) + return index; + + playlist->index = index; + sync_control(playlist, false); } return index;