1
0
Fork 0
forked from len0rd/rockbox

When toggling shuffle from on to off while a playlist is playing, update the current playlist index to the new index of the current song

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1977 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Hardeep Sidhu 2002-08-26 08:25:52 +00:00
parent 56fc041976
commit f8c87e6c50
3 changed files with 21 additions and 4 deletions

View file

@ -416,14 +416,31 @@ static int compare(const void* p1, const void* p2)
}
/*
* sort the array of indices for the playlist
* Sort the array of indices for the playlist. If start_current is true then
* set the index to the new index of the current song.
*/
void sort_playlist(void)
void sort_playlist(bool start_current)
{
int i;
int current = playlist.indices[playlist.index];
if (playlist.amount > 0)
{
qsort(&playlist.indices, playlist.amount, sizeof(playlist.indices[0]), compare);
}
if (start_current)
{
/* Set the index to the current song */
for (i=0; i<playlist.amount; i++)
{
if (playlist.indices[i] == current)
{
playlist.index = i;
break;
}
}
}
}
/* -----------------------------------------------------------------

View file

@ -44,7 +44,7 @@ int play_list(char *dir, char *file, int start_index,
bool shuffled_index, int start_offset, int random_seed );
char* playlist_next(int steps, int* id);
void randomise_playlist( unsigned int seed );
void sort_playlist(void);
void sort_playlist(bool start_current);
void empty_playlist(void);
void add_indices_to_playlist(void);
void playlist_clear(void);

View file

@ -208,7 +208,7 @@ Menu settings_menu(void)
}
else
{
sort_playlist();
sort_playlist(true);
}
}
return result;