diff options
Diffstat (limited to 'apps/sound_menu.c')
-rw-r--r-- | apps/sound_menu.c | 66 |
1 files changed, 63 insertions, 3 deletions
diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 183c3439a3..50ba26582d 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c | |||
@@ -19,23 +19,83 @@ | |||
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 "lcd.h" | ||
22 | #include "menu.h" | 23 | #include "menu.h" |
24 | #include "button.h" | ||
23 | #include "mpeg.h" | 25 | #include "mpeg.h" |
24 | #include "settings.h" | 26 | #include "settings.h" |
25 | 27 | ||
28 | void set_sound(char* string, | ||
29 | int* variable, | ||
30 | int setting) | ||
31 | { | ||
32 | bool done = false; | ||
33 | int min, max; | ||
34 | int val; | ||
35 | char* unit; | ||
36 | char str[32]; | ||
37 | |||
38 | unit = mpeg_sound_unit(setting); | ||
39 | min = mpeg_sound_min(setting); | ||
40 | max = mpeg_sound_max(setting); | ||
41 | |||
42 | lcd_clear_display(); | ||
43 | lcd_puts_scroll(0,0,string); | ||
44 | |||
45 | while (!done) { | ||
46 | val = mpeg_val2phys(setting, *variable); | ||
47 | snprintf(str,sizeof str,"%d %s ", val, unit); | ||
48 | lcd_puts(0,1,str); | ||
49 | lcd_update(); | ||
50 | |||
51 | switch( button_get(true) ) { | ||
52 | #ifdef HAVE_RECORDER_KEYPAD | ||
53 | case BUTTON_UP: | ||
54 | #else | ||
55 | case BUTTON_RIGHT: | ||
56 | #endif | ||
57 | (*variable)++; | ||
58 | if(*variable > max ) | ||
59 | *variable = max; | ||
60 | break; | ||
61 | |||
62 | #ifdef HAVE_RECORDER_KEYPAD | ||
63 | case BUTTON_DOWN: | ||
64 | #else | ||
65 | case BUTTON_LEFT: | ||
66 | #endif | ||
67 | (*variable)--; | ||
68 | if(*variable < min ) | ||
69 | *variable = min; | ||
70 | break; | ||
71 | |||
72 | #ifdef HAVE_RECORDER_KEYPAD | ||
73 | case BUTTON_LEFT: | ||
74 | #else | ||
75 | case BUTTON_STOP: | ||
76 | case BUTTON_MENU: | ||
77 | #endif | ||
78 | done = true; | ||
79 | break; | ||
80 | } | ||
81 | mpeg_sound_set(setting, *variable); | ||
82 | } | ||
83 | lcd_stop_scroll(); | ||
84 | } | ||
85 | |||
26 | static void volume(void) | 86 | static void volume(void) |
27 | { | 87 | { |
28 | set_int("Volume","%", &global_settings.volume, mpeg_volume, 2, 0, 100); | 88 | set_sound("Volume", &global_settings.volume, SOUND_VOLUME); |
29 | } | 89 | } |
30 | 90 | ||
31 | static void bass(void) | 91 | static void bass(void) |
32 | { | 92 | { |
33 | set_int("Bass","%", &global_settings.bass, mpeg_bass, 2, 0, 100); | 93 | set_sound("Bass", &global_settings.bass, SOUND_BASS); |
34 | }; | 94 | }; |
35 | 95 | ||
36 | static void treble(void) | 96 | static void treble(void) |
37 | { | 97 | { |
38 | set_int("Treble","%", &global_settings.treble, mpeg_treble, 2, 0, 100); | 98 | set_sound("Treble", &global_settings.treble, SOUND_TREBLE); |
39 | } | 99 | } |
40 | 100 | ||
41 | void sound_menu(void) | 101 | void sound_menu(void) |