1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2002 Björn Stenberg
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
29 #ifdef HAVE_LCD_BITMAP
36 "%d.%d %s ", /* 1 decimal */
37 "%d.%02d %s " /* 2 decimals */
40 void set_sound(char* string
,
54 unit
= mpeg_sound_unit(setting
);
55 numdec
= mpeg_sound_numdecimals(setting
);
56 min
= mpeg_sound_min(setting
);
57 max
= mpeg_sound_max(setting
);
59 #ifdef HAVE_LCD_BITMAP
60 if(global_settings
.statusbar
)
61 lcd_setmargins(0, STATUSBAR_HEIGHT
);
66 lcd_puts_scroll(0,0,string
);
70 val
= mpeg_val2phys(setting
, *variable
);
73 integer
= val
/ (10 * numdec
);
74 dec
= val
% (10 * numdec
);
75 snprintf(str
,sizeof str
, fmt
[numdec
], integer
, dec
, unit
);
79 snprintf(str
,sizeof str
,"%d %s ", val
, unit
);
87 switch( button_get_w_tmo(HZ
/2) ) {
88 #ifdef HAVE_RECORDER_KEYPAD
90 case BUTTON_UP
| BUTTON_REPEAT
:
93 case BUTTON_RIGHT
| BUTTON_REPEAT
:
101 #ifdef HAVE_RECORDER_KEYPAD
103 case BUTTON_DOWN
| BUTTON_REPEAT
:
106 case BUTTON_LEFT
| BUTTON_REPEAT
:
114 #ifdef HAVE_RECORDER_KEYPAD
122 #ifdef HAVE_RECORDER_KEYPAD
124 #ifdef HAVE_LCD_BITMAP
125 global_settings
.statusbar
= !global_settings
.statusbar
;
127 if(global_settings
.statusbar
)
128 lcd_setmargins(0, STATUSBAR_HEIGHT
);
130 lcd_setmargins(0, 0);
132 lcd_puts_scroll(0, 0, string
);
138 mpeg_sound_set(setting
, *variable
);
140 if(setting
== SOUND_BALANCE
)
141 mpeg_sound_set(SOUND_VOLUME
, global_settings
.volume
);
148 static Menu
volume(void)
150 set_sound("Volume", &global_settings
.volume
, SOUND_VOLUME
);
154 static Menu
balance(void)
156 set_sound("Balance", &global_settings
.balance
, SOUND_BALANCE
);
160 static Menu
bass(void)
162 set_sound("Bass", &global_settings
.bass
, SOUND_BASS
);
166 static Menu
treble(void)
168 set_sound("Treble", &global_settings
.treble
, SOUND_TREBLE
);
173 static Menu
loudness(void)
175 set_sound("Loudness", &global_settings
.loudness
, SOUND_LOUDNESS
);
179 static Menu
bass_boost(void)
181 set_sound("Bass boost", &global_settings
.bass_boost
, SOUND_SUPERBASS
);
185 static Menu
avc(void)
187 char* names
[] = { "off", "2s ", "4s ", "8s " };
188 set_option("[AV decay time]", &global_settings
.avc
, names
, 4 );
189 mpeg_sound_set(SOUND_AVC
, global_settings
.avc
);
192 #endif /* ARCHOS_RECORDER */
194 Menu
sound_menu(void)
198 struct menu_items items
[] = {
199 { "Volume", volume
},
201 { "Treble", treble
},
202 { "Balance", balance
},
204 { "Loudness", loudness
},
205 { "Bass Boost", bass_boost
},
206 { "Auto Volume", avc
}
210 m
=menu_init( items
, sizeof items
/ sizeof(struct menu_items
) );
211 result
= menu_run(m
);