Revert r30030 "Remove unused code path from playlist_create_ex()."
It breaks playlist viewing when playback is stopped (the code path wasn't so unused). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30150 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
6f392693b8
commit
5eb2f60afb
1 changed files with 19 additions and 12 deletions
|
@ -2693,10 +2693,8 @@ void playlist_set_last_shuffled_start(void)
|
|||
/*
|
||||
* Create a new playlist If playlist is not NULL then we're loading a
|
||||
* playlist off disk for viewing/editing. The index_buffer is used to store
|
||||
* playlist indices (required for and only used if playlist != NULL). The
|
||||
* temp_buffer is used as a scratchpad when loading indices.
|
||||
*
|
||||
* returns <0 on failure
|
||||
* playlist indices (required for and only used if !current playlist). The
|
||||
* temp_buffer (if not NULL) is used as a scratchpad when loading indices.
|
||||
*/
|
||||
int playlist_create_ex(struct playlist_info* playlist,
|
||||
const char* dir, const char* file,
|
||||
|
@ -2707,8 +2705,6 @@ int playlist_create_ex(struct playlist_info* playlist,
|
|||
playlist = ¤t_playlist;
|
||||
else
|
||||
{
|
||||
if (!index_buffer)
|
||||
return -1;
|
||||
/* Initialize playlist structure */
|
||||
int r = rand() % 10;
|
||||
playlist->current = false;
|
||||
|
@ -2719,19 +2715,30 @@ int playlist_create_ex(struct playlist_info* playlist,
|
|||
playlist->fd = -1;
|
||||
playlist->control_fd = -1;
|
||||
|
||||
int num_indices = index_buffer_size / sizeof(int);
|
||||
if (index_buffer)
|
||||
{
|
||||
int num_indices = index_buffer_size / sizeof(int);
|
||||
|
||||
#ifdef HAVE_DIRCACHE
|
||||
num_indices /= 2;
|
||||
num_indices /= 2;
|
||||
#endif
|
||||
if (num_indices > global_settings.max_files_in_playlist)
|
||||
num_indices = global_settings.max_files_in_playlist;
|
||||
if (num_indices > global_settings.max_files_in_playlist)
|
||||
num_indices = global_settings.max_files_in_playlist;
|
||||
|
||||
playlist->max_playlist_size = num_indices;
|
||||
playlist->indices = index_buffer;
|
||||
playlist->max_playlist_size = num_indices;
|
||||
playlist->indices = index_buffer;
|
||||
#ifdef HAVE_DIRCACHE
|
||||
playlist->filenames = (int*)&playlist->indices[num_indices];
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
playlist->max_playlist_size = current_playlist.max_playlist_size;
|
||||
playlist->indices = current_playlist.indices;
|
||||
#ifdef HAVE_DIRCACHE
|
||||
playlist->filenames = current_playlist.filenames;
|
||||
#endif
|
||||
}
|
||||
|
||||
playlist->buffer_size = 0;
|
||||
playlist->buffer = NULL;
|
||||
|
|
Loading…
Reference in a new issue