diff options
author | Antoine Cellerier <dionoea@videolan.org> | 2007-10-15 20:34:02 +0000 |
---|---|---|
committer | Antoine Cellerier <dionoea@videolan.org> | 2007-10-15 20:34:02 +0000 |
commit | 24907008678ae5d5e609c7d72d073886d7b0010f (patch) | |
tree | c76c2f9ebe31f9531d21fbb53a0f419683b72ba9 /apps | |
parent | 8714b75d2b4b4067370f1ea9520e0c48e7bfa63e (diff) | |
download | rockbox-24907008678ae5d5e609c7d72d073886d7b0010f.tar.gz rockbox-24907008678ae5d5e609c7d72d073886d7b0010f.zip |
Playlist viewer move live preview. Closes FS #7968.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15124 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/playlist_viewer.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index 8452f4369a..7769e683d5 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c | |||
@@ -524,11 +524,33 @@ bool playlist_viewer(void) | |||
524 | return playlist_viewer_ex(NULL); | 524 | return playlist_viewer_ex(NULL); |
525 | } | 525 | } |
526 | 526 | ||
527 | static int get_track_num( struct playlist_viewer * local_viewer, | ||
528 | int selected_item ) | ||
529 | { | ||
530 | if( local_viewer->move_track >= 0 ) | ||
531 | { | ||
532 | if( local_viewer->selected_track == selected_item ) | ||
533 | { | ||
534 | return local_viewer->move_track; | ||
535 | } | ||
536 | else if( local_viewer->selected_track > selected_item | ||
537 | && selected_item >= local_viewer->move_track ) | ||
538 | { | ||
539 | return selected_item+1; | ||
540 | } | ||
541 | else if( local_viewer->selected_track < selected_item | ||
542 | && selected_item <= local_viewer->move_track ) | ||
543 | { | ||
544 | return selected_item-1; | ||
545 | } | ||
546 | } | ||
547 | return selected_item; | ||
548 | } | ||
549 | |||
527 | static char *playlist_callback_name(int selected_item, void *data, char *buffer) | 550 | static char *playlist_callback_name(int selected_item, void *data, char *buffer) |
528 | { | 551 | { |
529 | struct playlist_viewer * local_viewer = (struct playlist_viewer *)data; | 552 | struct playlist_viewer * local_viewer = (struct playlist_viewer *)data; |
530 | struct playlist_entry *track= | 553 | struct playlist_entry *track = playlist_buffer_get_track(&(local_viewer->buffer), get_track_num(local_viewer,selected_item)); |
531 | playlist_buffer_get_track(&(local_viewer->buffer), selected_item); | ||
532 | format_line(track, buffer, MAX_PATH); | 554 | format_line(track, buffer, MAX_PATH); |
533 | return(buffer); | 555 | return(buffer); |
534 | } | 556 | } |
@@ -538,7 +560,8 @@ static int playlist_callback_icons(int selected_item, void *data) | |||
538 | { | 560 | { |
539 | struct playlist_viewer * local_viewer=(struct playlist_viewer *)data; | 561 | struct playlist_viewer * local_viewer=(struct playlist_viewer *)data; |
540 | struct playlist_entry *track= | 562 | struct playlist_entry *track= |
541 | playlist_buffer_get_track(&(local_viewer->buffer), selected_item); | 563 | playlist_buffer_get_track(&(local_viewer->buffer), |
564 | get_track_num(local_viewer, selected_item)); | ||
542 | if (track->index == local_viewer->current_playing_track) | 565 | if (track->index == local_viewer->current_playing_track) |
543 | { | 566 | { |
544 | /* Current playing track */ | 567 | /* Current playing track */ |
@@ -580,8 +603,6 @@ bool playlist_viewer_ex(char* filename) | |||
580 | while (!exit) | 603 | while (!exit) |
581 | { | 604 | { |
582 | int track; | 605 | int track; |
583 | if (viewer.move_track != -1) | ||
584 | gui_synclist_flash(&playlist_lists); | ||
585 | 606 | ||
586 | if (global_status.resume_index != -1 && !viewer.playlist) | 607 | if (global_status.resume_index != -1 && !viewer.playlist) |
587 | playlist_get_resume_info(&track); | 608 | playlist_get_resume_info(&track); |
@@ -616,6 +637,7 @@ bool playlist_viewer_ex(char* filename) | |||
616 | : | 637 | : |
617 | BACKWARD | 638 | BACKWARD |
618 | ); | 639 | ); |
640 | gui_synclist_draw(&playlist_lists); | ||
619 | } | 641 | } |
620 | switch (button) | 642 | switch (button) |
621 | { | 643 | { |