forked from len0rd/rockbox
Adds random folder advance option. RESETS SETTINGS. Refer to random_folder_advance_config wiki page for more info
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11158 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
be2eb02d7a
commit
27ad51fb15
7 changed files with 371 additions and 4 deletions
|
|
@ -1313,6 +1313,29 @@ static int get_next_dir(char *dir, bool is_forward, bool recursion)
|
|||
struct tree_context* tc = tree_get_context();
|
||||
int dirfilter = *(tc->dirfilter);
|
||||
|
||||
if (global_settings.next_folder == FOLDER_ADVANCE_RANDOM)
|
||||
{
|
||||
int fd = open(ROCKBOX_DIR "/folder_advance_list.dat",O_RDONLY);
|
||||
char buffer[MAX_PATH];
|
||||
int folder_count = 0,i;
|
||||
srand(current_tick);
|
||||
if (fd >= 0)
|
||||
{
|
||||
read(fd,&folder_count,sizeof(int));
|
||||
while (!exit)
|
||||
{
|
||||
i = rand()%folder_count;
|
||||
lseek(fd,sizeof(int) + (MAX_PATH*i),SEEK_SET);
|
||||
read(fd,buffer,MAX_PATH);
|
||||
if (check_subdir_for_music(buffer,"") ==0)
|
||||
exit = true;
|
||||
}
|
||||
strcpy(dir,buffer);
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
/* not random folder advance */
|
||||
if (recursion){
|
||||
/* start with root */
|
||||
dir[0] = '\0';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue