diff options
-rw-r--r-- | apps/menu.c | 47 | ||||
-rw-r--r-- | apps/settings.c | 133 | ||||
-rw-r--r-- | apps/sound_menu.c | 62 |
3 files changed, 205 insertions, 37 deletions
diff --git a/apps/menu.c b/apps/menu.c index 4be4e78e87..93e8394011 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -23,13 +23,15 @@ | |||
23 | #include "kernel.h" | 23 | #include "kernel.h" |
24 | #include "debug.h" | 24 | #include "debug.h" |
25 | #include "panic.h" | 25 | #include "panic.h" |
26 | 26 | #include "settings.h" | |
27 | #include "status.h" | ||
27 | #ifdef HAVE_LCD_BITMAP | 28 | #ifdef HAVE_LCD_BITMAP |
28 | #include "icons.h" | 29 | #include "icons.h" |
29 | #endif | 30 | #endif |
30 | #ifdef LOADABLE_FONTS | 31 | #ifdef LOADABLE_FONTS |
31 | #include "ajf.h" | 32 | #include "ajf.h" |
32 | #endif | 33 | #endif |
34 | |||
33 | struct menu { | 35 | struct menu { |
34 | int top; | 36 | int top; |
35 | int cursor; | 37 | int cursor; |
@@ -40,7 +42,9 @@ struct menu { | |||
40 | #define MAX_MENUS 4 | 42 | #define MAX_MENUS 4 |
41 | 43 | ||
42 | #ifdef HAVE_LCD_BITMAP | 44 | #ifdef HAVE_LCD_BITMAP |
43 | #define MENU_LINES 8 | 45 | #define LINE_Y (global_settings.statusbar ? 1 : 0) /* Y position the entry-list starts at */ |
46 | #define LINE_HEIGTH 8 /* pixels for each text line */ | ||
47 | #define MENU_LINES (LCD_HEIGHT / LINE_HEIGTH - LINE_Y) | ||
44 | #else | 48 | #else |
45 | #define MENU_LINES 2 | 49 | #define MENU_LINES 2 |
46 | #endif | 50 | #endif |
@@ -71,7 +75,7 @@ void put_cursorxy(int x, int y, bool on) | |||
71 | if(on) { | 75 | if(on) { |
72 | #ifdef HAVE_LCD_BITMAP | 76 | #ifdef HAVE_LCD_BITMAP |
73 | lcd_bitmap ( bitmap_icons_6x8[Cursor], | 77 | lcd_bitmap ( bitmap_icons_6x8[Cursor], |
74 | x*6, y*fh, 4, 8, true); | 78 | x*6, y*fh + lcd_getymargin(), 4, 8, true); |
75 | #elif defined(SIMULATOR) | 79 | #elif defined(SIMULATOR) |
76 | /* player simulator */ | 80 | /* player simulator */ |
77 | unsigned char cursor[] = { 0x7f, 0x3e, 0x1c, 0x08 }; | 81 | unsigned char cursor[] = { 0x7f, 0x3e, 0x1c, 0x08 }; |
@@ -83,7 +87,7 @@ void put_cursorxy(int x, int y, bool on) | |||
83 | else { | 87 | else { |
84 | #if defined(HAVE_LCD_BITMAP) | 88 | #if defined(HAVE_LCD_BITMAP) |
85 | /* I use xy here since it needs to disregard the margins */ | 89 | /* I use xy here since it needs to disregard the margins */ |
86 | lcd_clearrect (x*6, y*fh, 4, 8); | 90 | lcd_clearrect (x*6, y*fh + lcd_getymargin(), 4, 8); |
87 | #elif defined(SIMULATOR) | 91 | #elif defined(SIMULATOR) |
88 | /* player simulator in action */ | 92 | /* player simulator in action */ |
89 | lcd_clearrect (x*6, 12+y*16, 4, 8); | 93 | lcd_clearrect (x*6, 12+y*16, 4, 8); |
@@ -101,7 +105,10 @@ static void menu_draw(int m) | |||
101 | int fh; | 105 | int fh; |
102 | unsigned char* font = lcd_getcurrentldfont(); | 106 | unsigned char* font = lcd_getcurrentldfont(); |
103 | fh = ajf_get_fontheight(font); | 107 | fh = ajf_get_fontheight(font); |
104 | menu_lines = LCD_HEIGHT/fh; | 108 | if (global_settings.statusbar) |
109 | menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh; | ||
110 | else | ||
111 | menu_lines = LCD_HEIGHT/fh; | ||
105 | #else | 112 | #else |
106 | int menu_lines = MENU_LINES; | 113 | int menu_lines = MENU_LINES; |
107 | #endif | 114 | #endif |
@@ -109,9 +116,16 @@ static void menu_draw(int m) | |||
109 | lcd_clear_display(); | 116 | lcd_clear_display(); |
110 | lcd_stop_scroll(); | 117 | lcd_stop_scroll(); |
111 | #ifdef HAVE_LCD_BITMAP | 118 | #ifdef HAVE_LCD_BITMAP |
112 | lcd_setmargins(0,0); | 119 | if(global_settings.statusbar) |
120 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
121 | else | ||
122 | lcd_setmargins(0, 0); | ||
113 | lcd_setfont(0); | 123 | lcd_setfont(0); |
114 | #endif | 124 | #endif |
125 | /* correct cursor pos if out of screen */ | ||
126 | if (menus[m].cursor - menus[m].top >= menu_lines) | ||
127 | menus[m].top++; | ||
128 | |||
115 | for (i = menus[m].top; | 129 | for (i = menus[m].top; |
116 | (i < menus[m].itemcount) && (i<menus[m].top+menu_lines); | 130 | (i < menus[m].itemcount) && (i<menus[m].top+menu_lines); |
117 | i++) { | 131 | i++) { |
@@ -123,6 +137,9 @@ static void menu_draw(int m) | |||
123 | 137 | ||
124 | /* place the cursor */ | 138 | /* place the cursor */ |
125 | put_cursorxy(0, menus[m].cursor - menus[m].top, true); | 139 | put_cursorxy(0, menus[m].cursor - menus[m].top, true); |
140 | #ifdef HAVE_LCD_BITMAP | ||
141 | status_draw(); | ||
142 | #endif | ||
126 | lcd_update(); | 143 | lcd_update(); |
127 | } | 144 | } |
128 | 145 | ||
@@ -138,7 +155,10 @@ static void put_cursor(int m, int target) | |||
138 | int fh; | 155 | int fh; |
139 | unsigned char* font = lcd_getcurrentldfont(); | 156 | unsigned char* font = lcd_getcurrentldfont(); |
140 | fh = ajf_get_fontheight(font); | 157 | fh = ajf_get_fontheight(font); |
141 | menu_lines = LCD_HEIGHT/fh; | 158 | if (global_settings.statusbar) |
159 | menu_lines = (LCD_HEIGHT-STATUSBAR_HEIGHT)/fh; | ||
160 | else | ||
161 | menu_lines = LCD_HEIGHT/fh; | ||
142 | #else | 162 | #else |
143 | int menu_lines = MENU_LINES; | 163 | int menu_lines = MENU_LINES; |
144 | #endif | 164 | #endif |
@@ -196,7 +216,7 @@ void menu_run(int m) | |||
196 | menu_draw(m); | 216 | menu_draw(m); |
197 | 217 | ||
198 | while(1) { | 218 | while(1) { |
199 | switch( button_get(true) ) { | 219 | switch( button_get_w_tmo(HZ/2) ) { |
200 | #ifdef HAVE_RECORDER_KEYPAD | 220 | #ifdef HAVE_RECORDER_KEYPAD |
201 | case BUTTON_UP: | 221 | case BUTTON_UP: |
202 | case BUTTON_UP | BUTTON_REPEAT: | 222 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -247,10 +267,21 @@ void menu_run(int m) | |||
247 | lcd_stop_scroll(); | 267 | lcd_stop_scroll(); |
248 | return; | 268 | return; |
249 | 269 | ||
270 | #ifdef HAVE_RECORDER_KEYPAD | ||
271 | case BUTTON_F3: | ||
272 | #ifdef HAVE_LCD_BITMAP | ||
273 | global_settings.statusbar = !global_settings.statusbar; | ||
274 | settings_save(); | ||
275 | menu_draw(m); | ||
276 | #endif | ||
277 | break; | ||
278 | #endif | ||
279 | |||
250 | default: | 280 | default: |
251 | break; | 281 | break; |
252 | } | 282 | } |
253 | 283 | ||
284 | status_draw(); | ||
254 | lcd_update(); | 285 | lcd_update(); |
255 | } | 286 | } |
256 | } | 287 | } |
diff --git a/apps/settings.c b/apps/settings.c index 00510a9204..74843fe20d 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -34,6 +34,10 @@ | |||
34 | #include "power.h" | 34 | #include "power.h" |
35 | #include "backlight.h" | 35 | #include "backlight.h" |
36 | #include "powermgmt.h" | 36 | #include "powermgmt.h" |
37 | #include "status.h" | ||
38 | #ifdef HAVE_LCD_BITMAP | ||
39 | #include "icons.h" | ||
40 | #endif | ||
37 | 41 | ||
38 | struct user_settings global_settings; | 42 | struct user_settings global_settings; |
39 | 43 | ||
@@ -440,14 +444,23 @@ void set_bool(char* string, bool* variable ) | |||
440 | bool done = false; | 444 | bool done = false; |
441 | int button; | 445 | int button; |
442 | 446 | ||
447 | #ifdef HAVE_LCD_BITMAP | ||
448 | if(global_settings.statusbar) | ||
449 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
450 | else | ||
451 | lcd_setmargins(0, 0); | ||
452 | #endif | ||
443 | lcd_clear_display(); | 453 | lcd_clear_display(); |
444 | lcd_puts_scroll(0,0,string); | 454 | lcd_puts_scroll(0, 0, string); |
445 | 455 | ||
446 | while ( !done ) { | 456 | while ( !done ) { |
447 | lcd_puts(0, 1, *variable ? "on " : "off"); | 457 | lcd_puts(0, 1, *variable ? "on " : "off"); |
458 | #ifdef HAVE_LCD_BITMAP | ||
459 | status_draw(); | ||
460 | #endif | ||
448 | lcd_update(); | 461 | lcd_update(); |
449 | 462 | ||
450 | button = button_get(true); | 463 | button = button_get_w_tmo(HZ/2); |
451 | switch ( button ) { | 464 | switch ( button ) { |
452 | #ifdef HAVE_RECORDER_KEYPAD | 465 | #ifdef HAVE_RECORDER_KEYPAD |
453 | case BUTTON_LEFT: | 466 | case BUTTON_LEFT: |
@@ -458,10 +471,31 @@ void set_bool(char* string, bool* variable ) | |||
458 | done = true; | 471 | done = true; |
459 | break; | 472 | break; |
460 | 473 | ||
461 | default: | 474 | #ifdef HAVE_RECORDER_KEYPAD |
475 | case BUTTON_UP: | ||
476 | case BUTTON_DOWN: | ||
477 | #else | ||
478 | case BUTTON_LEFT: | ||
479 | case BUTTON_RIGHT: | ||
480 | #endif | ||
462 | if(!(button & BUTTON_REL)) | 481 | if(!(button & BUTTON_REL)) |
463 | *variable = !*variable; | 482 | *variable = !*variable; |
464 | break; | 483 | break; |
484 | |||
485 | #ifdef HAVE_RECORDER_KEYPAD | ||
486 | case BUTTON_F3: | ||
487 | #ifdef HAVE_LCD_BITMAP | ||
488 | global_settings.statusbar = !global_settings.statusbar; | ||
489 | settings_save(); | ||
490 | if(global_settings.statusbar) | ||
491 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
492 | else | ||
493 | lcd_setmargins(0, 0); | ||
494 | lcd_clear_display(); | ||
495 | lcd_puts_scroll(0, 0, string); | ||
496 | #endif | ||
497 | break; | ||
498 | #endif | ||
465 | } | 499 | } |
466 | } | 500 | } |
467 | lcd_stop_scroll(); | 501 | lcd_stop_scroll(); |
@@ -477,16 +511,25 @@ void set_int(char* string, | |||
477 | { | 511 | { |
478 | bool done = false; | 512 | bool done = false; |
479 | 513 | ||
514 | #ifdef HAVE_LCD_BITMAP | ||
515 | if(global_settings.statusbar) | ||
516 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
517 | else | ||
518 | lcd_setmargins(0, 0); | ||
519 | #endif | ||
480 | lcd_clear_display(); | 520 | lcd_clear_display(); |
481 | lcd_puts_scroll(0,0,string); | 521 | lcd_puts_scroll(0, 0, string); |
482 | 522 | ||
483 | while (!done) { | 523 | while (!done) { |
484 | char str[32]; | 524 | char str[32]; |
485 | snprintf(str,sizeof str,"%d %s ", *variable, unit); | 525 | snprintf(str,sizeof str,"%d %s ", *variable, unit); |
486 | lcd_puts(0,1,str); | 526 | lcd_puts(0, 1, str); |
527 | #ifdef HAVE_LCD_BITMAP | ||
528 | status_draw(); | ||
529 | #endif | ||
487 | lcd_update(); | 530 | lcd_update(); |
488 | 531 | ||
489 | switch( button_get(true) ) { | 532 | switch( button_get_w_tmo(HZ/2) ) { |
490 | #ifdef HAVE_RECORDER_KEYPAD | 533 | #ifdef HAVE_RECORDER_KEYPAD |
491 | case BUTTON_UP: | 534 | case BUTTON_UP: |
492 | case BUTTON_UP | BUTTON_REPEAT: | 535 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -519,6 +562,21 @@ void set_int(char* string, | |||
519 | #endif | 562 | #endif |
520 | done = true; | 563 | done = true; |
521 | break; | 564 | break; |
565 | |||
566 | #ifdef HAVE_RECORDER_KEYPAD | ||
567 | case BUTTON_F3: | ||
568 | #ifdef HAVE_LCD_BITMAP | ||
569 | global_settings.statusbar = !global_settings.statusbar; | ||
570 | settings_save(); | ||
571 | if(global_settings.statusbar) | ||
572 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
573 | else | ||
574 | lcd_setmargins(0, 0); | ||
575 | lcd_clear_display(); | ||
576 | lcd_puts_scroll(0, 0, string); | ||
577 | #endif | ||
578 | break; | ||
579 | #endif | ||
522 | } | 580 | } |
523 | if ( function ) | 581 | if ( function ) |
524 | function(*variable); | 582 | function(*variable); |
@@ -530,14 +588,23 @@ void set_option(char* string, int* variable, char* options[], int numoptions ) | |||
530 | { | 588 | { |
531 | bool done = false; | 589 | bool done = false; |
532 | 590 | ||
591 | #ifdef HAVE_LCD_BITMAP | ||
592 | if(global_settings.statusbar) | ||
593 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
594 | else | ||
595 | lcd_setmargins(0, 0); | ||
596 | #endif | ||
533 | lcd_clear_display(); | 597 | lcd_clear_display(); |
534 | lcd_puts_scroll(0,0,string); | 598 | lcd_puts_scroll(0, 0, string); |
535 | 599 | ||
536 | while ( !done ) { | 600 | while ( !done ) { |
537 | lcd_puts(0, 1, options[*variable]); | 601 | lcd_puts(0, 1, options[*variable]); |
602 | #ifdef HAVE_LCD_BITMAP | ||
603 | status_draw(); | ||
604 | #endif | ||
538 | lcd_update(); | 605 | lcd_update(); |
539 | 606 | ||
540 | switch ( button_get(true) ) { | 607 | switch ( button_get_w_tmo(HZ/2) ) { |
541 | #ifdef HAVE_RECORDER_KEYPAD | 608 | #ifdef HAVE_RECORDER_KEYPAD |
542 | case BUTTON_UP: | 609 | case BUTTON_UP: |
543 | case BUTTON_UP | BUTTON_REPEAT: | 610 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -568,6 +635,21 @@ void set_option(char* string, int* variable, char* options[], int numoptions ) | |||
568 | #endif | 635 | #endif |
569 | done = true; | 636 | done = true; |
570 | break; | 637 | break; |
638 | |||
639 | #ifdef HAVE_RECORDER_KEYPAD | ||
640 | case BUTTON_F3: | ||
641 | #ifdef HAVE_LCD_BITMAP | ||
642 | global_settings.statusbar = !global_settings.statusbar; | ||
643 | settings_save(); | ||
644 | if(global_settings.statusbar) | ||
645 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
646 | else | ||
647 | lcd_setmargins(0, 0); | ||
648 | lcd_clear_display(); | ||
649 | lcd_puts_scroll(0, 0, string); | ||
650 | #endif | ||
651 | break; | ||
652 | #endif | ||
571 | } | 653 | } |
572 | } | 654 | } |
573 | lcd_stop_scroll(); | 655 | lcd_stop_scroll(); |
@@ -605,6 +687,12 @@ void set_time(char* string, int timedate[]) | |||
605 | #endif | 687 | #endif |
606 | #endif | 688 | #endif |
607 | 689 | ||
690 | #ifdef HAVE_LCD_BITMAP | ||
691 | if(global_settings.statusbar) | ||
692 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
693 | else | ||
694 | lcd_setmargins(0, 0); | ||
695 | #endif | ||
608 | lcd_clear_display(); | 696 | lcd_clear_display(); |
609 | lcd_puts_scroll(0, 0, string); | 697 | lcd_puts_scroll(0, 0, string); |
610 | 698 | ||
@@ -734,7 +822,7 @@ void set_time(char* string, int timedate[]) | |||
734 | cursor[5][INDEX_WIDTH] = width + strlen(reffub) - 1; | 822 | cursor[5][INDEX_WIDTH] = width + strlen(reffub) - 1; |
735 | 823 | ||
736 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 824 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
737 | cursor[cursorpos][INDEX_Y], | 825 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
738 | cursor[cursorpos][INDEX_WIDTH], | 826 | cursor[cursorpos][INDEX_WIDTH], |
739 | line_height); | 827 | line_height); |
740 | #elif defined(LOADABLE_FONTS) | 828 | #elif defined(LOADABLE_FONTS) |
@@ -770,17 +858,20 @@ void set_time(char* string, int timedate[]) | |||
770 | cursor[5][INDEX_WIDTH] = width; | 858 | cursor[5][INDEX_WIDTH] = width; |
771 | 859 | ||
772 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 860 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
773 | cursor[cursorpos][INDEX_Y], | 861 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
774 | cursor[cursorpos][INDEX_WIDTH], | 862 | cursor[cursorpos][INDEX_WIDTH], |
775 | line_height); | 863 | line_height); |
776 | #else | 864 | #else |
777 | lcd_invertrect(cursor[cursorpos][INDEX_X], | 865 | lcd_invertrect(cursor[cursorpos][INDEX_X], |
778 | cursor[cursorpos][INDEX_Y], | 866 | cursor[cursorpos][INDEX_Y] + lcd_getymargin(), |
779 | cursor[cursorpos][INDEX_WIDTH], | 867 | cursor[cursorpos][INDEX_WIDTH], |
780 | 8); | 868 | 8); |
781 | #endif | 869 | #endif |
782 | lcd_puts(0,4,"ON to set"); | 870 | lcd_puts(0, 4, "ON to set"); |
783 | lcd_puts(0,5,"OFF to revert"); | 871 | lcd_puts(0, 5, "OFF to revert"); |
872 | #ifdef HAVE_LCD_BITMAP | ||
873 | status_draw(); | ||
874 | #endif | ||
784 | lcd_update(); | 875 | lcd_update(); |
785 | 876 | ||
786 | /* calculate the minimum and maximum for the number under cursor */ | 877 | /* calculate the minimum and maximum for the number under cursor */ |
@@ -811,7 +902,7 @@ void set_time(char* string, int timedate[]) | |||
811 | } | 902 | } |
812 | } | 903 | } |
813 | 904 | ||
814 | button = button_get(true); | 905 | button = button_get_w_tmo(HZ/2); |
815 | switch ( button ) { | 906 | switch ( button ) { |
816 | case BUTTON_LEFT: | 907 | case BUTTON_LEFT: |
817 | cursorpos = (cursorpos + 6 - 1) % 6; | 908 | cursorpos = (cursorpos + 6 - 1) % 6; |
@@ -838,6 +929,20 @@ void set_time(char* string, int timedate[]) | |||
838 | done = true; | 929 | done = true; |
839 | timedate[0] = -1; | 930 | timedate[0] = -1; |
840 | break; | 931 | break; |
932 | #ifdef HAVE_RECORDER_KEYPAD | ||
933 | case BUTTON_F3: | ||
934 | #ifdef HAVE_LCD_BITMAP | ||
935 | global_settings.statusbar = !global_settings.statusbar; | ||
936 | settings_save(); | ||
937 | if(global_settings.statusbar) | ||
938 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
939 | else | ||
940 | lcd_setmargins(0, 0); | ||
941 | lcd_clear_display(); | ||
942 | lcd_puts_scroll(0, 0, string); | ||
943 | #endif | ||
944 | break; | ||
945 | #endif | ||
841 | default: | 946 | default: |
842 | break; | 947 | break; |
843 | } | 948 | } |
diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 1b44859a2b..606fc8f3f5 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c | |||
@@ -19,12 +19,16 @@ | |||
19 | #include "config.h" | 19 | #include "config.h" |
20 | #include <stdio.h> | 20 | #include <stdio.h> |
21 | #include <stdbool.h> | 21 | #include <stdbool.h> |
22 | #include "kernel.h" | ||
22 | #include "lcd.h" | 23 | #include "lcd.h" |
23 | #include "menu.h" | 24 | #include "menu.h" |
24 | #include "button.h" | 25 | #include "button.h" |
25 | #include "mpeg.h" | 26 | #include "mpeg.h" |
26 | #include "settings.h" | 27 | #include "settings.h" |
27 | #include "status.h" | 28 | #include "status.h" |
29 | #ifdef HAVE_LCD_BITMAP | ||
30 | #include "icons.h" | ||
31 | #endif | ||
28 | 32 | ||
29 | static char *fmt[] = | 33 | static char *fmt[] = |
30 | { | 34 | { |
@@ -38,6 +42,7 @@ void set_sound(char* string, | |||
38 | int setting) | 42 | int setting) |
39 | { | 43 | { |
40 | bool done = false; | 44 | bool done = false; |
45 | bool changed = false; | ||
41 | int min, max; | 46 | int min, max; |
42 | int val; | 47 | int val; |
43 | int numdec; | 48 | int numdec; |
@@ -51,26 +56,35 @@ void set_sound(char* string, | |||
51 | min = mpeg_sound_min(setting); | 56 | min = mpeg_sound_min(setting); |
52 | max = mpeg_sound_max(setting); | 57 | max = mpeg_sound_max(setting); |
53 | 58 | ||
59 | #ifdef HAVE_LCD_BITMAP | ||
60 | if(global_settings.statusbar) | ||
61 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
62 | else | ||
63 | lcd_setmargins(0, 0); | ||
64 | #endif | ||
54 | lcd_clear_display(); | 65 | lcd_clear_display(); |
55 | lcd_puts_scroll(0,0,string); | 66 | lcd_puts_scroll(0,0,string); |
56 | 67 | ||
57 | while (!done) { | 68 | while (!done) { |
58 | val = mpeg_val2phys(setting, *variable); | 69 | if (changed) { |
59 | if(numdec) | 70 | val = mpeg_val2phys(setting, *variable); |
60 | { | 71 | if(numdec) |
61 | integer = val / (10 * numdec); | 72 | { |
62 | dec = val % (10 * numdec); | 73 | integer = val / (10 * numdec); |
63 | snprintf(str,sizeof str, fmt[numdec], integer, dec, unit); | 74 | dec = val % (10 * numdec); |
64 | } | 75 | snprintf(str,sizeof str, fmt[numdec], integer, dec, unit); |
65 | else | 76 | } |
66 | { | 77 | else |
67 | snprintf(str,sizeof str,"%d %s ", val, unit); | 78 | { |
79 | snprintf(str,sizeof str,"%d %s ", val, unit); | ||
80 | } | ||
68 | } | 81 | } |
69 | lcd_puts(0,1,str); | 82 | lcd_puts(0,1,str); |
70 | lcd_update(); | ||
71 | status_draw(); | 83 | status_draw(); |
84 | lcd_update(); | ||
72 | 85 | ||
73 | switch( button_get(true) ) { | 86 | changed = false; |
87 | switch( button_get_w_tmo(HZ/2) ) { | ||
74 | #ifdef HAVE_RECORDER_KEYPAD | 88 | #ifdef HAVE_RECORDER_KEYPAD |
75 | case BUTTON_UP: | 89 | case BUTTON_UP: |
76 | case BUTTON_UP | BUTTON_REPEAT: | 90 | case BUTTON_UP | BUTTON_REPEAT: |
@@ -81,6 +95,7 @@ void set_sound(char* string, | |||
81 | (*variable)++; | 95 | (*variable)++; |
82 | if(*variable > max ) | 96 | if(*variable > max ) |
83 | *variable = max; | 97 | *variable = max; |
98 | changed = true; | ||
84 | break; | 99 | break; |
85 | 100 | ||
86 | #ifdef HAVE_RECORDER_KEYPAD | 101 | #ifdef HAVE_RECORDER_KEYPAD |
@@ -93,6 +108,7 @@ void set_sound(char* string, | |||
93 | (*variable)--; | 108 | (*variable)--; |
94 | if(*variable < min ) | 109 | if(*variable < min ) |
95 | *variable = min; | 110 | *variable = min; |
111 | changed = true; | ||
96 | break; | 112 | break; |
97 | 113 | ||
98 | #ifdef HAVE_RECORDER_KEYPAD | 114 | #ifdef HAVE_RECORDER_KEYPAD |
@@ -103,12 +119,28 @@ void set_sound(char* string, | |||
103 | #endif | 119 | #endif |
104 | done = true; | 120 | done = true; |
105 | break; | 121 | break; |
122 | #ifdef HAVE_RECORDER_KEYPAD | ||
123 | case BUTTON_F3: | ||
124 | #ifdef HAVE_LCD_BITMAP | ||
125 | global_settings.statusbar = !global_settings.statusbar; | ||
126 | settings_save(); | ||
127 | if(global_settings.statusbar) | ||
128 | lcd_setmargins(0, STATUSBAR_HEIGHT); | ||
129 | else | ||
130 | lcd_setmargins(0, 0); | ||
131 | lcd_clear_display(); | ||
132 | lcd_puts_scroll(0, 0, string); | ||
133 | #endif | ||
134 | break; | ||
135 | #endif | ||
106 | } | 136 | } |
107 | mpeg_sound_set(setting, *variable); | 137 | if (changed) { |
138 | mpeg_sound_set(setting, *variable); | ||
108 | #ifdef HAVE_MAS3507D | 139 | #ifdef HAVE_MAS3507D |
109 | if(setting == SOUND_BALANCE) | 140 | if(setting == SOUND_BALANCE) |
110 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 141 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
111 | #endif | 142 | #endif |
143 | } | ||
112 | } | 144 | } |
113 | lcd_stop_scroll(); | 145 | lcd_stop_scroll(); |
114 | } | 146 | } |