diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2007-02-17 13:36:44 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2007-02-17 13:36:44 +0000 |
commit | 14ba91eaa9a94411457cc396a4c7c5e39e63a00a (patch) | |
tree | a550e288bda8052a05feb5355df0a16f39897466 /apps/bookmark.c | |
parent | 471d881979e0027737a435fd03efea493ea696f3 (diff) | |
download | rockbox-14ba91eaa9a94411457cc396a4c7c5e39e63a00a.tar.gz rockbox-14ba91eaa9a94411457cc396a4c7c5e39e63a00a.zip |
A few more bookmark code tweaks. Also improves how the bookmark selection screen is displayed on Archos players.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12350 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/bookmark.c')
-rw-r--r-- | apps/bookmark.c | 104 |
1 files changed, 27 insertions, 77 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c index 0bcdb131ca..1352b2a708 100644 --- a/apps/bookmark.c +++ b/apps/bookmark.c | |||
@@ -225,10 +225,8 @@ static bool write_bookmark(bool create_bookmark_file) | |||
225 | } | 225 | } |
226 | } | 226 | } |
227 | 227 | ||
228 | if (success) | 228 | gui_syncsplash(HZ, true, str(success ? LANG_BOOKMARK_CREATE_SUCCESS |
229 | gui_syncsplash(HZ, true, str(LANG_BOOKMARK_CREATE_SUCCESS)); | 229 | : LANG_BOOKMARK_CREATE_FAILURE)); |
230 | else | ||
231 | gui_syncsplash(HZ, true, str(LANG_BOOKMARK_CREATE_FAILURE)); | ||
232 | 230 | ||
233 | return true; | 231 | return true; |
234 | } | 232 | } |
@@ -380,11 +378,6 @@ bool bookmark_autoload(const char* file) | |||
380 | fd = open(global_bookmark_file_name, O_RDONLY); | 378 | fd = open(global_bookmark_file_name, O_RDONLY); |
381 | if(fd<0) | 379 | if(fd<0) |
382 | return false; | 380 | return false; |
383 | if(-1 == lseek(fd, 0, SEEK_END)) | ||
384 | { | ||
385 | close(fd); | ||
386 | return false; | ||
387 | } | ||
388 | close(fd); | 381 | close(fd); |
389 | if(global_settings.autoloadbookmark == BOOKMARK_YES) | 382 | if(global_settings.autoloadbookmark == BOOKMARK_YES) |
390 | { | 383 | { |
@@ -555,16 +548,9 @@ static char* select_bookmark(const char* bookmark_file_name) | |||
555 | case ACTION_BMS_SELECT: | 548 | case ACTION_BMS_SELECT: |
556 | /* User wants to use this bookmark */ | 549 | /* User wants to use this bookmark */ |
557 | #ifdef HAVE_LCD_BITMAP | 550 | #ifdef HAVE_LCD_BITMAP |
558 | if (global_settings.statusbar) | 551 | FOR_NB_SCREENS(i) |
559 | { | 552 | screens[i].setmargins(0, global_settings.statusbar |
560 | FOR_NB_SCREENS(i) | 553 | ? STATUSBAR_HEIGHT : 0); |
561 | screens[i].setmargins(0, STATUSBAR_HEIGHT); | ||
562 | } | ||
563 | else | ||
564 | { | ||
565 | FOR_NB_SCREENS(i) | ||
566 | screens[i].setmargins(0, 0); | ||
567 | } | ||
568 | #endif | 554 | #endif |
569 | action_signalscreenchange(); | 555 | action_signalscreenchange(); |
570 | return bookmark; | 556 | return bookmark; |
@@ -674,8 +660,8 @@ static void display_bookmark(const char* bookmark, | |||
674 | long ms = 0; | 660 | long ms = 0; |
675 | int repeat_mode = 0; | 661 | int repeat_mode = 0; |
676 | bool playlist_shuffle = false; | 662 | bool playlist_shuffle = false; |
677 | int len; | ||
678 | char *dot; | 663 | char *dot; |
664 | char time_buf[32]; | ||
679 | int i; | 665 | int i; |
680 | 666 | ||
681 | /* getting the index and the time into the file */ | 667 | /* getting the index and the time into the file */ |
@@ -712,49 +698,34 @@ static void display_bookmark(const char* bookmark, | |||
712 | statusbar_icon_shuffle(); | 698 | statusbar_icon_shuffle(); |
713 | 699 | ||
714 | /* File Name */ | 700 | /* File Name */ |
715 | len=strlen(global_filename); | 701 | dot = strrchr(global_filename, '.'); |
716 | if (len>3) | 702 | |
717 | dot=strrchr(global_filename + len - 4, '.'); | ||
718 | else | ||
719 | dot=NULL; | ||
720 | if (dot) | 703 | if (dot) |
721 | *dot='\0'; | 704 | *dot='\0'; |
705 | |||
722 | FOR_NB_SCREENS(i) | 706 | FOR_NB_SCREENS(i) |
723 | screens[i].puts_scroll(0, 0, (unsigned char *)global_filename); | 707 | screens[i].puts_scroll(0, 0, (unsigned char *)global_filename); |
708 | |||
724 | if (dot) | 709 | if (dot) |
725 | *dot='.'; | 710 | *dot='.'; |
726 | 711 | ||
727 | /* bookmark number */ | 712 | /* bookmark number */ |
728 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %2d/%2d", | 713 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %d/%d", |
729 | str(LANG_BOOKMARK_SELECT_BOOKMARK_TEXT), | 714 | str(LANG_BOOKMARK_SELECT_BOOKMARK_TEXT), |
730 | bookmark_id + 1, bookmark_count); | 715 | bookmark_id + 1, bookmark_count); |
731 | FOR_NB_SCREENS(i) | 716 | FOR_NB_SCREENS(i) |
732 | screens[i].puts_scroll(0, 1, (unsigned char *)global_temp_buffer); | 717 | screens[i].puts_scroll(0, 1, (unsigned char *)global_temp_buffer); |
733 | 718 | ||
734 | /* bookmark resume index */ | 719 | /* bookmark resume index */ |
735 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %2d", | 720 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %d", |
736 | str(LANG_BOOKMARK_SELECT_INDEX_TEXT), resume_index+1); | 721 | str(LANG_BOOKMARK_SELECT_INDEX_TEXT), resume_index+1); |
737 | FOR_NB_SCREENS(i) | 722 | FOR_NB_SCREENS(i) |
738 | screens[i].puts_scroll(0, 2, (unsigned char *)global_temp_buffer); | 723 | screens[i].puts_scroll(0, 2, (unsigned char *)global_temp_buffer); |
739 | 724 | ||
740 | /* elapsed time*/ | 725 | /* elapsed time*/ |
741 | if ( ms < 3600000 ) | 726 | format_time(time_buf, sizeof(time_buf), ms); |
742 | { | 727 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %s", |
743 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), "%s: %ld:%02d", | 728 | str(LANG_BOOKMARK_SELECT_TIME_TEXT), time_buf); |
744 | str(LANG_BOOKMARK_SELECT_TIME_TEXT), | ||
745 | ms / 60000, | ||
746 | (unsigned int)(ms % 60000) / 1000); | ||
747 | /* unsigned int: hinting for 16bits archs */ | ||
748 | } | ||
749 | else | ||
750 | { | ||
751 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), | ||
752 | "%s: %ld:%02ld:%02d", | ||
753 | str(LANG_BOOKMARK_SELECT_TIME_TEXT), | ||
754 | ms / 3600000, | ||
755 | ms % 3600000 / 60000, | ||
756 | (unsigned int)(ms % 60000) / 1000); | ||
757 | } | ||
758 | FOR_NB_SCREENS(i) | 729 | FOR_NB_SCREENS(i) |
759 | screens[i].puts_scroll(0, 3, (unsigned char *)global_temp_buffer); | 730 | screens[i].puts_scroll(0, 3, (unsigned char *)global_temp_buffer); |
760 | 731 | ||
@@ -764,35 +735,21 @@ static void display_bookmark(const char* bookmark, | |||
764 | screens[i].puts_scroll(0, 4, str(LANG_BOOKMARK_SELECT_PLAY)); | 735 | screens[i].puts_scroll(0, 4, str(LANG_BOOKMARK_SELECT_PLAY)); |
765 | screens[i].puts_scroll(0, 5, str(LANG_BOOKMARK_SELECT_EXIT)); | 736 | screens[i].puts_scroll(0, 5, str(LANG_BOOKMARK_SELECT_EXIT)); |
766 | screens[i].puts_scroll(0, 6, str(LANG_BOOKMARK_SELECT_DELETE)); | 737 | screens[i].puts_scroll(0, 6, str(LANG_BOOKMARK_SELECT_DELETE)); |
738 | screens[i].update(); | ||
767 | } | 739 | } |
768 | #else | 740 | #else |
769 | (void)bookmark_id; | 741 | dot = strrchr(global_filename, '.'); |
770 | len=strlen(global_filename); | 742 | |
771 | if (len>3) | ||
772 | dot=strrchr(global_filename+len-4,'.'); | ||
773 | else | ||
774 | dot=NULL; | ||
775 | if (dot) | 743 | if (dot) |
776 | *dot='\0'; | 744 | *dot='\0'; |
777 | if ( ms < 3600000 ) | 745 | |
778 | { | 746 | format_time(time_buf, sizeof(time_buf), ms); |
779 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), | 747 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), |
780 | "%2d, %ld:%02ld, %s,", | 748 | "%d/%d, %s, %s", (bookmark_id + 1), bookmark_count, |
781 | (bookmark_count+1), | 749 | time_buf, global_filename); |
782 | ms / 60000, | 750 | |
783 | ms % 60000 / 1000, | 751 | if (dot) |
784 | global_filename); | 752 | *dot='.'; |
785 | } | ||
786 | else | ||
787 | { | ||
788 | snprintf(global_temp_buffer, sizeof(global_temp_buffer), | ||
789 | "%2d, %ld:%02ld:%02ld, %s,", | ||
790 | (bookmark_count+1), | ||
791 | ms / 60000, | ||
792 | ms % 3600000 / 60000, | ||
793 | ms % 60000 / 1000, | ||
794 | global_filename); | ||
795 | } | ||
796 | 753 | ||
797 | gui_syncstatusbar_draw(&statusbars, false); | 754 | gui_syncstatusbar_draw(&statusbars, false); |
798 | 755 | ||
@@ -801,13 +758,6 @@ static void display_bookmark(const char* bookmark, | |||
801 | screens[i].puts_scroll(0,0,global_temp_buffer); | 758 | screens[i].puts_scroll(0,0,global_temp_buffer); |
802 | screens[i].puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER)); | 759 | screens[i].puts(0,1,str(LANG_RESUME_CONFIRM_PLAYER)); |
803 | } | 760 | } |
804 | if (dot) | ||
805 | *dot='.'; | ||
806 | #endif | ||
807 | |||
808 | #ifdef HAVE_LCD_BITMAP | ||
809 | FOR_NB_SCREENS(i) | ||
810 | screens[i].update(); | ||
811 | #endif | 761 | #endif |
812 | } | 762 | } |
813 | 763 | ||
@@ -1047,7 +997,7 @@ static bool generate_bookmark_file_name(const char *in) | |||
1047 | } | 997 | } |
1048 | 998 | ||
1049 | /* ----------------------------------------------------------------------- */ | 999 | /* ----------------------------------------------------------------------- */ |
1050 | /* Returns the bookmark name for the current playlist */ | 1000 | /* Returns true if a bookmark file exists for the current playlist */ |
1051 | /* ----------------------------------------------------------------------- */ | 1001 | /* ----------------------------------------------------------------------- */ |
1052 | bool bookmark_exist(void) | 1002 | bool bookmark_exist(void) |
1053 | { | 1003 | { |