diff options
Diffstat (limited to 'apps/sound_menu.c')
-rw-r--r-- | apps/sound_menu.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 6d7b6d1cf1..21b98ab7ef 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c | |||
@@ -31,15 +31,11 @@ | |||
31 | typedef void (*settingfunc)(int); | 31 | typedef void (*settingfunc)(int); |
32 | enum { Volume, Bass, Treble, numsettings }; | 32 | enum { Volume, Bass, Treble, numsettings }; |
33 | 33 | ||
34 | static void soundsetting(int setting) | 34 | static const char* names[] = { "Volume", "Bass", "Treble" }; |
35 | { | 35 | static settingfunc funcs[] = { mpeg_volume, mpeg_bass, mpeg_treble }; |
36 | static int savedsettings[numsettings] = { DEFAULT_VOLUME_SETTING, | ||
37 | DEFAULT_BASS_SETTING, | ||
38 | DEFAULT_TREBLE_SETTING}; | ||
39 | static const char* names[] = { "Volume", "Bass", "Treble" }; | ||
40 | static settingfunc funcs[] = { mpeg_volume, mpeg_bass, mpeg_treble }; | ||
41 | 36 | ||
42 | int value = savedsettings[setting]; | 37 | static void soundsetting(int setting, int *value) |
38 | { | ||
43 | char buf[32]; | 39 | char buf[32]; |
44 | bool done = false; | 40 | bool done = false; |
45 | 41 | ||
@@ -48,7 +44,7 @@ static void soundsetting(int setting) | |||
48 | lcd_puts(0,0,buf); | 44 | lcd_puts(0,0,buf); |
49 | 45 | ||
50 | while ( !done ) { | 46 | while ( !done ) { |
51 | snprintf(buf,sizeof buf,"%d %% ",value); | 47 | snprintf(buf,sizeof buf,"%d %% ", *value); |
52 | lcd_puts(0,1,buf); | 48 | lcd_puts(0,1,buf); |
53 | lcd_update(); | 49 | lcd_update(); |
54 | 50 | ||
@@ -58,10 +54,10 @@ static void soundsetting(int setting) | |||
58 | #else | 54 | #else |
59 | case BUTTON_RIGHT: | 55 | case BUTTON_RIGHT: |
60 | #endif | 56 | #endif |
61 | value += 2; | 57 | *value += 2; |
62 | if ( value >= 100 ) | 58 | if ( *value >= 100 ) |
63 | value = 100; | 59 | *value = 100; |
64 | (funcs[setting])(value); | 60 | (funcs[setting])(*value); |
65 | break; | 61 | break; |
66 | 62 | ||
67 | #ifdef HAVE_RECORDER_KEYPAD | 63 | #ifdef HAVE_RECORDER_KEYPAD |
@@ -69,10 +65,10 @@ static void soundsetting(int setting) | |||
69 | #else | 65 | #else |
70 | case BUTTON_LEFT: | 66 | case BUTTON_LEFT: |
71 | #endif | 67 | #endif |
72 | value -= 2; | 68 | *value -= 2; |
73 | if ( value <= 0 ) | 69 | if ( *value <= 0 ) |
74 | value = 0; | 70 | *value = 0; |
75 | (funcs[setting])(value); | 71 | (funcs[setting])(*value); |
76 | break; | 72 | break; |
77 | 73 | ||
78 | #ifdef HAVE_RECORDER_KEYPAD | 74 | #ifdef HAVE_RECORDER_KEYPAD |
@@ -81,7 +77,6 @@ static void soundsetting(int setting) | |||
81 | case BUTTON_STOP: | 77 | case BUTTON_STOP: |
82 | case BUTTON_MENU: | 78 | case BUTTON_MENU: |
83 | #endif | 79 | #endif |
84 | savedsettings[setting] = value; | ||
85 | done = true; | 80 | done = true; |
86 | break; | 81 | break; |
87 | } | 82 | } |
@@ -90,17 +85,17 @@ static void soundsetting(int setting) | |||
90 | 85 | ||
91 | static void volume(void) | 86 | static void volume(void) |
92 | { | 87 | { |
93 | soundsetting(Volume); | 88 | soundsetting(Volume, &global_settings.volume); |
94 | } | 89 | } |
95 | 90 | ||
96 | static void bass(void) | 91 | static void bass(void) |
97 | { | 92 | { |
98 | soundsetting(Bass); | 93 | soundsetting(Bass, &global_settings.bass); |
99 | }; | 94 | }; |
100 | 95 | ||
101 | static void treble(void) | 96 | static void treble(void) |
102 | { | 97 | { |
103 | soundsetting(Treble); | 98 | soundsetting(Treble, &global_settings.treble); |
104 | } | 99 | } |
105 | 100 | ||
106 | void sound_menu(void) | 101 | void sound_menu(void) |
@@ -116,4 +111,3 @@ void sound_menu(void) | |||
116 | menu_run(m); | 111 | menu_run(m); |
117 | menu_exit(m); | 112 | menu_exit(m); |
118 | } | 113 | } |
119 | |||