summaryrefslogtreecommitdiff
path: root/apps/bookmark.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/bookmark.c')
-rw-r--r--apps/bookmark.c104
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/* ----------------------------------------------------------------------- */
1052bool bookmark_exist(void) 1002bool bookmark_exist(void)
1053{ 1003{