summaryrefslogtreecommitdiff
path: root/apps/tree.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-08-21 15:08:01 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-08-21 15:08:01 +0000
commit01bc8e682ad855ae74193dcfa4bb1e24ac0662b8 (patch)
treeea96479d3428da958c0d0c0be8c9a70dcb5e6443 /apps/tree.c
parent3b8ec06f0ef39427f7e3e43a41cefaaddcc7e29c (diff)
downloadrockbox-01bc8e682ad855ae74193dcfa4bb1e24ac0662b8.tar.gz
rockbox-01bc8e682ad855ae74193dcfa4bb1e24ac0662b8.zip
play_list() is now modified to accept a playlist index that is either
meant in the unshuffled list or in the shuffled. There's an extra parameter giving that info (which of course only makes sense when shuffle is enabled). This should make resume work with play-all-dir in shuffled mode. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1889 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/tree.c')
-rw-r--r--apps/tree.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/apps/tree.c b/apps/tree.c
index 90e978a0ab..7f0bf4362b 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -351,6 +351,7 @@ void start_resume(void)
351 play_list(global_settings.resume_file, 351 play_list(global_settings.resume_file,
352 slash+1, 352 slash+1,
353 global_settings.resume_index, 353 global_settings.resume_index,
354 true, /* the index is AFTER shuffle */
354 global_settings.resume_offset, 355 global_settings.resume_offset,
355 global_settings.resume_seed ); 356 global_settings.resume_seed );
356 *slash='/'; 357 *slash='/';
@@ -368,6 +369,7 @@ void start_resume(void)
368 play_list("/", 369 play_list("/",
369 global_settings.resume_file, 370 global_settings.resume_file,
370 global_settings.resume_index, 371 global_settings.resume_index,
372 true,
371 global_settings.resume_offset, 373 global_settings.resume_offset,
372 global_settings.resume_seed ); 374 global_settings.resume_seed );
373 } 375 }
@@ -381,7 +383,8 @@ void start_resume(void)
381 build_playlist(global_settings.resume_index); 383 build_playlist(global_settings.resume_index);
382 play_list(global_settings.resume_file, 384 play_list(global_settings.resume_file,
383 NULL, 385 NULL,
384 global_settings.resume_index, 386 global_settings.resume_index,
387 true,
385 global_settings.resume_offset, 388 global_settings.resume_offset,
386 global_settings.resume_seed); 389 global_settings.resume_seed);
387 } 390 }
@@ -505,8 +508,10 @@ bool dirbrowse(char *root)
505 currdir, 508 currdir,
506 dircache[dircursor+start].name); 509 dircache[dircursor+start].name);
507 play_list(currdir, 510 play_list(currdir,
508 dircache[dircursor+start].name, 511 dircache[dircursor+start].name,
509 0, 0, seed ); 512 0,
513 false,
514 0, seed );
510 start_index = 0; 515 start_index = 0;
511 } 516 }
512 else { 517 else {
@@ -514,10 +519,16 @@ bool dirbrowse(char *root)
514 strncpy(global_settings.resume_file, 519 strncpy(global_settings.resume_file,
515 currdir, MAX_PATH); 520 currdir, MAX_PATH);
516 start_index = build_playlist(dircursor+start); 521 start_index = build_playlist(dircursor+start);
517 play_list(currdir, NULL, start_index, 0, seed); 522
523 /* it is important that we get back the index in
524 the (shuffled) list and stor that */
525 start_index = play_list(currdir, NULL,
526 start_index, false, 0, seed);
518 } 527 }
519 528
520 if ( global_settings.resume ) { 529 if ( global_settings.resume ) {
530 /* the resume_index must always be the index in the
531 shuffled list in case shuffle is enabled */
521 global_settings.resume_index = start_index; 532 global_settings.resume_index = start_index;
522 global_settings.resume_offset = 0; 533 global_settings.resume_offset = 0;
523 global_settings.resume_seed = seed; 534 global_settings.resume_seed = seed;