summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-09-03 15:58:47 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-09-03 15:58:47 +0000
commitabe11fd910f979f95454e3b44aba5a57570c6543 (patch)
tree295747d156f9ff4f579a126fb4bd4617e248752a /apps
parent27c739277773c960ca9b385eacf77c40523dab5c (diff)
downloadrockbox-abe11fd910f979f95454e3b44aba5a57570c6543.tar.gz
rockbox-abe11fd910f979f95454e3b44aba5a57570c6543.zip
Added quick-set screens to F2 (play modes) and F3 (screen settings) in dir browser and wps. Fixed minor propfont issues in lcd.c. Exported icons outside of icons.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2154 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/recorder/icons.c16
-rw-r--r--apps/recorder/icons.h46
-rw-r--r--apps/settings_menu.c4
-rw-r--r--apps/tree.c37
-rw-r--r--apps/wps.c166
-rw-r--r--apps/wps.h5
6 files changed, 222 insertions, 52 deletions
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index 2019a1728a..440902a83a 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -36,7 +36,7 @@ unsigned char slider_bar[] =
36 0x7c, 0x28, 0x28, 0x28, 0x28, 0x38 36 0x7c, 0x28, 0x28, 0x28, 0x28, 0x38
37}; 37};
38 38
39static unsigned char bitmap_icon_5x8[][5] = 39unsigned char bitmap_icons_5x8[][5] =
40{ 40{
41 /* Lock */ 41 /* Lock */
42 {0x78,0x7f,0x49,0x7f,0x78} 42 {0x78,0x7f,0x49,0x7f,0x78}
@@ -70,7 +70,7 @@ unsigned char bitmap_icons_6x8[LastIcon][6] =
70 { 0x63, 0x7f, 0x3a, 0x7f, 0x63, 0x00 }, 70 { 0x63, 0x7f, 0x3a, 0x7f, 0x63, 0x00 },
71}; 71};
72 72
73static unsigned char bitmap_icon_7x8[][7] = 73unsigned char bitmap_icons_7x8[][7] =
74{ 74{
75 /* Power plug */ 75 /* Power plug */
76 {0x08,0x1c,0x3e,0x3e,0x3e,0x14,0x14}, 76 {0x08,0x1c,0x3e,0x3e,0x3e,0x14,0x14},
@@ -190,7 +190,7 @@ void statusbar_icon_battery(int percent, bool charging)
190 190
191 /* draw power plug if charging */ 191 /* draw power plug if charging */
192 if (charging) 192 if (charging)
193 lcd_bitmap(bitmap_icon_7x8[Icon_Plug], ICON_PLUG_X_POS, 193 lcd_bitmap(bitmap_icons_7x8[Icon_Plug], ICON_PLUG_X_POS,
194 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT, false); 194 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT, false);
195}; 195};
196 196
@@ -217,7 +217,7 @@ void statusbar_icon_volume(int percent)
217 volume = 100; 217 volume = 100;
218 218
219 if (volume==0) { 219 if (volume==0) {
220 lcd_bitmap(bitmap_icon_7x8[Icon_Mute], 220 lcd_bitmap(bitmap_icons_7x8[Icon_Mute],
221 ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 4, 221 ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 4,
222 STATUSBAR_Y_POS, 7, STATUSBAR_HEIGHT, false); 222 STATUSBAR_Y_POS, 7, STATUSBAR_HEIGHT, false);
223 } 223 }
@@ -259,7 +259,7 @@ void statusbar_icon_volume(int percent)
259 */ 259 */
260void statusbar_icon_play_state(int state) 260void statusbar_icon_play_state(int state)
261{ 261{
262 lcd_bitmap(bitmap_icon_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS, 262 lcd_bitmap(bitmap_icons_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS,
263 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 263 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false);
264} 264}
265 265
@@ -268,7 +268,7 @@ void statusbar_icon_play_state(int state)
268 */ 268 */
269void statusbar_icon_play_mode(int mode) 269void statusbar_icon_play_mode(int mode)
270{ 270{
271 lcd_bitmap(bitmap_icon_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS, 271 lcd_bitmap(bitmap_icons_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS,
272 ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT, false); 272 ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT, false);
273} 273}
274 274
@@ -277,7 +277,7 @@ void statusbar_icon_play_mode(int mode)
277 */ 277 */
278void statusbar_icon_shuffle(void) 278void statusbar_icon_shuffle(void)
279{ 279{
280 lcd_bitmap(bitmap_icon_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS, 280 lcd_bitmap(bitmap_icons_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS,
281 STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT, false); 281 STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT, false);
282} 282}
283 283
@@ -286,7 +286,7 @@ void statusbar_icon_shuffle(void)
286 */ 286 */
287void statusbar_icon_lock(void) 287void statusbar_icon_lock(void)
288{ 288{
289 lcd_bitmap(bitmap_icon_5x8[Icon_Lock], LOCK_X_POS, 289 lcd_bitmap(bitmap_icons_5x8[Icon_Lock], LOCK_X_POS,
290 STATUSBAR_Y_POS, 5, 8, false); 290 STATUSBAR_Y_POS, 5, 8, false);
291} 291}
292 292
diff --git a/apps/recorder/icons.h b/apps/recorder/icons.h
index 5017ed5b49..46b7c3d2d9 100644
--- a/apps/recorder/icons.h
+++ b/apps/recorder/icons.h
@@ -31,7 +31,31 @@ enum icons_6x8 {
31 LastIcon 31 LastIcon
32}; 32};
33 33
34/* Symbolic names for icons */
35enum icons_5x8 {
36 Icon_Lock
37};
38
39enum icons_7x8 {
40 Icon_Plug,
41 Icon_Speaker,
42 Icon_Mute,
43 Icon_Play,
44 Icon_Stop,
45 Icon_Pause,
46 Icon_FastForward,
47 Icon_FastBackward,
48 Icon_Record,
49 Icon_RecPause,
50 Icon_Normal,
51 Icon_Repeat,
52 Icon_Shuffle,
53 Icon_Last
54};
55
56extern unsigned char bitmap_icons_5x8[1][5];
34extern unsigned char bitmap_icons_6x8[LastIcon][6]; 57extern unsigned char bitmap_icons_6x8[LastIcon][6];
58extern unsigned char bitmap_icons_7x8[Icon_Last][7];
35 59
36extern unsigned char rockbox112x37[]; 60extern unsigned char rockbox112x37[];
37 61
@@ -57,28 +81,6 @@ extern unsigned char slider_bar[];
57#define LOCK_WIDTH 5 81#define LOCK_WIDTH 5
58#define TIME_X_END STATUSBAR_WIDTH-1 82#define TIME_X_END STATUSBAR_WIDTH-1
59 83
60/* Symbolic names for icons */
61enum
62{
63 Icon_Lock = 0
64};
65enum
66{
67 Icon_Plug = 0,
68 Icon_Speaker,
69 Icon_Mute,
70 Icon_Play,
71 Icon_Stop,
72 Icon_Pause,
73 Icon_FastForward,
74 Icon_FastBackward,
75 Icon_Record,
76 Icon_RecPause,
77 Icon_Normal,
78 Icon_Repeat,
79 Icon_Shuffle
80};
81
82extern void statusbar_wipe(void); 84extern void statusbar_wipe(void);
83extern void statusbar_icon_battery(int percent, bool charging); 85extern void statusbar_icon_battery(int percent, bool charging);
84extern void statusbar_icon_volume(int percent); 86extern void statusbar_icon_volume(int percent);
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index eeb6af8e71..da2098e921 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -50,11 +50,13 @@ static Menu contrast(void)
50 return MENU_OK; 50 return MENU_OK;
51} 51}
52 52
53#ifndef HAVE_RECORDER_KEYPAD
53static Menu shuffle(void) 54static Menu shuffle(void)
54{ 55{
55 set_bool( "[Shuffle]", &global_settings.playlist_shuffle ); 56 set_bool( "[Shuffle]", &global_settings.playlist_shuffle );
56 return MENU_OK; 57 return MENU_OK;
57} 58}
59#endif
58 60
59static Menu mp3_filter(void) 61static Menu mp3_filter(void)
60{ 62{
@@ -169,7 +171,9 @@ Menu settings_menu(void)
169 Menu result; 171 Menu result;
170 172
171 struct menu_items items[] = { 173 struct menu_items items[] = {
174#ifndef HAVE_RECORDER_KEYPAD
172 { "Shuffle", shuffle }, 175 { "Shuffle", shuffle },
176#endif
173 { "MP3/M3U filter", mp3_filter }, 177 { "MP3/M3U filter", mp3_filter },
174 { "Sort mode", sort_case }, 178 { "Sort mode", sort_case },
175 { "Backlight Timer", backlight_timer }, 179 { "Backlight Timer", backlight_timer },
diff --git a/apps/tree.c b/apps/tree.c
index e5fb3c152d..36ce52cad3 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -117,7 +117,7 @@ extern unsigned char bitmap_icons_6x8[LastIcon][6];
117#define TREE_EXIT BUTTON_LEFT 117#define TREE_EXIT BUTTON_LEFT
118#define TREE_ENTER BUTTON_RIGHT 118#define TREE_ENTER BUTTON_RIGHT
119#define TREE_MENU BUTTON_F1 119#define TREE_MENU BUTTON_F1
120#define RELEASE_MASK (BUTTON_OFF) 120#define RELEASE_MASK (BUTTON_OFF | BUTTON_F2 | BUTTON_F3)
121#else 121#else
122#define TREE_NEXT BUTTON_RIGHT 122#define TREE_NEXT BUTTON_RIGHT
123#define TREE_PREV BUTTON_LEFT 123#define TREE_PREV BUTTON_LEFT
@@ -760,22 +760,31 @@ bool dirbrowse(char *root)
760 break; 760 break;
761 761
762#ifdef HAVE_RECORDER_KEYPAD 762#ifdef HAVE_RECORDER_KEYPAD
763 case BUTTON_F3: { 763 case BUTTON_F2:
764#ifdef HAVE_LCD_BITMAP 764 if (f2_screen()) {
765 unsigned char state; 765 /* reread root dir */
766 state = global_settings.statusbar << 1 | global_settings.scrollbar; 766 strcpy(currdir, "/");
767 state = (state + 1) % 4; 767 lastdir[0] = 0;
768 global_settings.statusbar = state >> 1; 768 dirlevel = 0;
769 global_settings.scrollbar = state & 0x1; 769 dircursor = 0;
770 settings_save(); 770 }
771 restore = true;
772 break;
773
774 case BUTTON_F3:
775 if (f3_screen()) {
776 /* reread root dir */
777 strcpy(currdir, "/");
778 lastdir[0] = 0;
779 dirlevel = 0;
780 dircursor = 0;
781 }
771#ifdef LOADABLE_FONTS 782#ifdef LOADABLE_FONTS
772 tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; 783 tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
773#else 784#else
774 tree_max_on_screen = TREE_MAX_ON_SCREEN; 785 tree_max_on_screen = TREE_MAX_ON_SCREEN;
775#endif
776 restore = true;
777#endif 786#endif
778 } 787 restore = true;
779 break; 788 break;
780#endif 789#endif
781 790
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
diff --git a/apps/wps.h b/apps/wps.h
index 81435b532f..46ec7243d1 100644
--- a/apps/wps.h
+++ b/apps/wps.h
@@ -30,4 +30,9 @@ bool load_custom_wps(void);
30bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string); 30bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string);
31bool refresh_wps(bool refresh_scroll); 31bool refresh_wps(bool refresh_scroll);
32 32
33#ifdef HAVE_RECORDER_KEYPAD
34bool f2_screen(void);
35bool f3_screen(void);
36#endif
37
33#endif 38#endif