summaryrefslogtreecommitdiff
path: root/apps/sound_menu.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-06-28 11:48:53 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-06-28 11:48:53 +0000
commit667fb7c6e94060294dd1a9f95934b841f7df9f71 (patch)
treef261846271d84633598e03afe8f68c5b73b396af /apps/sound_menu.c
parentb983d1b4a1126356462863364c9cc8d3f9471a03 (diff)
downloadrockbox-667fb7c6e94060294dd1a9f95934b841f7df9f71.tar.gz
rockbox-667fb7c6e94060294dd1a9f95934b841f7df9f71.zip
First step towards a better sound setting API
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1243 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/sound_menu.c')
-rw-r--r--apps/sound_menu.c66
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
28void 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
26static void volume(void) 86static 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
31static void bass(void) 91static 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
36static void treble(void) 96static 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
41void sound_menu(void) 101void sound_menu(void)