summaryrefslogtreecommitdiff
path: root/apps/wps.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/wps.c')
-rw-r--r--apps/wps.c166
1 files changed, 158 insertions, 8 deletions
diff --git a/apps/wps.c b/apps/wps.c
index 440a3e85bf..029ed44f55 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -49,7 +49,7 @@
49 /* 3% of 30min file == 54s step size */ 49 /* 3% of 30min file == 54s step size */
50 50
51#ifdef HAVE_RECORDER_KEYPAD 51#ifdef HAVE_RECORDER_KEYPAD
52#define RELEASE_MASK (BUTTON_F1 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP) 52#define RELEASE_MASK (BUTTON_F1 | BUTTON_F2 | BUTTON_F3 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP)
53#else 53#else
54#define RELEASE_MASK (BUTTON_MENU | BUTTON_STOP | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_PLAY) 54#define RELEASE_MASK (BUTTON_MENU | BUTTON_STOP | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_PLAY)
55#endif 55#endif
@@ -629,6 +629,153 @@ static bool menu(void)
629 return false; 629 return false;
630} 630}
631 631
632#ifdef HAVE_LCD_BITMAP
633bool f2_screen(void)
634{
635 bool exit = false;
636
637 lcd_stop_scroll();
638
639 while (!exit) {
640 int w,h;
641 char* ptr;
642
643 ptr = "Repeat";
644#ifdef LCD_PROPFONTS
645 lcd_getstringsize(ptr,0,&w,&h);
646#else
647 lcd_getfontsize(0,&w,&h);
648 w *= strlen(ptr);
649#endif
650
651 lcd_clear_display();
652
653 lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Shuffle", 0);
654 lcd_putsxy(0, LCD_HEIGHT/2 - h, "mode:", 0);
655 lcd_putsxy(0, LCD_HEIGHT/2,
656 global_settings.playlist_shuffle ? "on" : "off", 0);
657 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
658 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
659
660 /* commented out until we really can disable repeat
661 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, 0);
662 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, "mode:", 0);
663 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, "on", 0 );
664 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
665 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
666 */
667 lcd_update();
668
669 switch (button_get(true)) {
670 case BUTTON_LEFT:
671 case BUTTON_F2 | BUTTON_LEFT:
672 global_settings.playlist_shuffle =
673 !global_settings.playlist_shuffle;
674
675 if (global_settings.playlist_shuffle)
676 randomise_playlist(current_tick);
677 else
678 sort_playlist(true);
679 break;
680
681 case BUTTON_RIGHT:
682 case BUTTON_F2 | BUTTON_RIGHT:
683 /* toggle repeat */
684 break;
685
686#ifdef SIMULATOR
687 case BUTTON_F2:
688#else
689 case BUTTON_F2 | BUTTON_REL:
690#endif
691 exit = true;
692 break;
693
694#ifndef SIMULATOR
695 case SYS_USB_CONNECTED:
696 handle_usb();
697 return true;
698#endif
699 }
700 }
701
702 settings_save();
703
704 return false;
705}
706
707bool f3_screen(void)
708{
709 bool exit = false;
710
711 lcd_stop_scroll();
712
713 while (!exit) {
714 int w,h;
715 char* ptr;
716
717 ptr = "Status";
718#ifdef LCD_PROPFONTS
719 lcd_getstringsize(ptr,0,&w,&h);
720#else
721 lcd_getfontsize(0,&w,&h);
722 w *= strlen(ptr);
723#endif
724
725 lcd_clear_display();
726
727 lcd_putsxy(0, LCD_HEIGHT/2 - h*2, "Scroll", 0);
728 lcd_putsxy(0, LCD_HEIGHT/2 - h, "bar:", 0);
729 lcd_putsxy(0, LCD_HEIGHT/2,
730 global_settings.scrollbar ? "on" : "off", 0);
731 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
732 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true);
733
734 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, 0);
735 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, "bar:", 0);
736 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2,
737 global_settings.statusbar ? "on" : "off", 0 );
738 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
739 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true);
740 lcd_update();
741
742 switch (button_get(true)) {
743 case BUTTON_LEFT:
744 case BUTTON_F3 | BUTTON_LEFT:
745 global_settings.scrollbar = !global_settings.scrollbar;
746 break;
747
748 case BUTTON_RIGHT:
749 case BUTTON_F3 | BUTTON_RIGHT:
750 global_settings.statusbar = !global_settings.statusbar;
751 break;
752
753#ifdef SIMULATOR
754 case BUTTON_F3:
755#else
756 case BUTTON_F3 | BUTTON_REL:
757#endif
758 exit = true;
759 break;
760
761#ifndef SIMULATOR
762 case SYS_USB_CONNECTED:
763 handle_usb();
764 return true;
765#endif
766 }
767 }
768
769 settings_save();
770 if (global_settings.statusbar)
771 lcd_setmargins(0, STATUSBAR_HEIGHT);
772 else
773 lcd_setmargins(0, 0);
774
775 return false;
776}
777#endif
778
632/* demonstrates showing different formats from playtune */ 779/* demonstrates showing different formats from playtune */
633int wps_show(void) 780int wps_show(void)
634{ 781{
@@ -777,15 +924,18 @@ int wps_show(void)
777 restore = true; 924 restore = true;
778 break; 925 break;
779 926
780 /* toggle status bar */
781#ifdef HAVE_RECORDER_KEYPAD 927#ifdef HAVE_RECORDER_KEYPAD
928 /* play settings */
929 case BUTTON_F2:
930 if (f2_screen())
931 return SYS_USB_CONNECTED;
932 restore = true;
933 break;
934
935 /* screen settings */
782 case BUTTON_F3: 936 case BUTTON_F3:
783 global_settings.statusbar = !global_settings.statusbar; 937 if (f3_screen())
784 settings_save(); 938 return SYS_USB_CONNECTED;
785 if(global_settings.statusbar)
786 lcd_setmargins(0, STATUSBAR_HEIGHT);
787 else
788 lcd_setmargins(0, 0);
789 restore = true; 939 restore = true;
790 break; 940 break;
791#endif 941#endif