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 ****************************************************************************/
30 #ifdef HAVE_LCD_BITMAP
39 "%d.%d %s ", /* 1 decimal */
40 "%d.%02d %s " /* 2 decimals */
43 bool set_sound(char* string
,
57 unit
= mpeg_sound_unit(setting
);
58 numdec
= mpeg_sound_numdecimals(setting
);
59 min
= mpeg_sound_min(setting
);
60 max
= mpeg_sound_max(setting
);
62 #ifdef HAVE_LCD_BITMAP
63 if(global_settings
.statusbar
)
64 lcd_setmargins(0, STATUSBAR_HEIGHT
);
69 lcd_puts_scroll(0,0,string
);
73 val
= mpeg_val2phys(setting
, *variable
);
76 integer
= val
/ (10 * numdec
);
77 dec
= val
% (10 * numdec
);
78 snprintf(str
,sizeof str
, fmt
[numdec
], integer
, dec
, unit
);
82 snprintf(str
,sizeof str
,"%d %s ", val
, unit
);
90 switch( button_get_w_tmo(HZ
/2) ) {
91 #ifdef HAVE_RECORDER_KEYPAD
93 case BUTTON_UP
| BUTTON_REPEAT
:
96 case BUTTON_RIGHT
| BUTTON_REPEAT
:
104 #ifdef HAVE_RECORDER_KEYPAD
106 case BUTTON_DOWN
| BUTTON_REPEAT
:
109 case BUTTON_LEFT
| BUTTON_REPEAT
:
117 #ifdef HAVE_RECORDER_KEYPAD
126 case SYS_USB_CONNECTED
:
131 mpeg_sound_set(setting
, *variable
);
133 if(setting
== SOUND_BALANCE
)
134 mpeg_sound_set(SOUND_VOLUME
, global_settings
.volume
);
142 static bool volume(void)
144 return set_sound(str(LANG_VOLUME
), &global_settings
.volume
, SOUND_VOLUME
);
147 static bool balance(void)
149 return set_sound(str(LANG_BALANCE
), &global_settings
.balance
,
153 static bool bass(void)
155 return set_sound(str(LANG_BASS
), &global_settings
.bass
, SOUND_BASS
);
158 static bool treble(void)
160 return set_sound(str(LANG_TREBLE
), &global_settings
.treble
, SOUND_TREBLE
);
164 static bool loudness(void)
166 return set_sound(str(LANG_LOUDNESS
), &global_settings
.loudness
,
170 static bool bass_boost(void)
172 return set_sound(str(LANG_BBOOST
), &global_settings
.bass_boost
,
176 static void set_avc(int val
)
178 mpeg_sound_set(SOUND_AVC
, val
);
181 static bool avc(void)
183 char* names
[] = { str(LANG_OFF
), "2s", "4s", "8s" };
184 return set_option(str(LANG_DECAY
), &global_settings
.avc
,
188 static bool recsource(void)
190 char *names
[] = {str(LANG_RECORDING_SRC_MIC
), str(LANG_RECORDING_SRC_LINE
),
191 str(LANG_RECORDING_SRC_DIGITAL
) };
192 return set_option(str(LANG_RECORDING_SOURCE
),
193 &global_settings
.rec_source
,
197 static bool recfrequency(void)
199 char *names
[] = {"44.1kHz", "48kHz", "32kHz",
200 "22.05kHz", "24kHz", "16kHz"};
202 return set_option(str(LANG_RECORDING_FREQUENCY
),
203 &global_settings
.rec_frequency
,
207 static bool recchannels(void)
209 char *names
[] = {str(LANG_CHANNEL_STEREO
), str(LANG_CHANNEL_MONO
)};
211 return set_option(str(LANG_RECORDING_CHANNELS
),
212 &global_settings
.rec_channels
,
216 static bool recquality(void)
218 return set_int(str(LANG_RECORDING_QUALITY
), "",
219 &global_settings
.rec_quality
,
223 static bool receditable(void)
225 return set_bool(str(LANG_RECORDING_EDITABLE
),
226 &global_settings
.rec_editable
);
228 #endif /* HAVE_MAS3587F */
230 static void set_chanconf(int val
)
232 mpeg_sound_set(SOUND_CHANNELS
, val
);
235 static bool chanconf(void)
237 char *names
[] = {str(LANG_CHANNEL_STEREO
),
238 #ifdef HAVE_LCD_CHARCELLS
239 str(LANG_CHANNEL_STEREO_NARROW_PLAYER
),
241 str(LANG_CHANNEL_STEREO_NARROW_RECORDER
),
243 str(LANG_CHANNEL_MONO
),
244 str(LANG_CHANNEL_LEFT
), str(LANG_CHANNEL_RIGHT
),
245 str(LANG_CHANNEL_KARAOKE
), str(LANG_CHANNEL_STEREO_WIDE
) };
246 return set_option(str(LANG_CHANNEL
), &global_settings
.channel_config
,
247 names
, 7, set_chanconf
);
250 bool sound_menu(void)
254 struct menu_items items
[] = {
255 { str(LANG_VOLUME
), volume
},
256 { str(LANG_BASS
), bass
},
257 { str(LANG_TREBLE
), treble
},
258 { str(LANG_BALANCE
), balance
},
259 { str(LANG_CHANNEL_MENU
), chanconf
},
261 { str(LANG_LOUDNESS
), loudness
},
262 { str(LANG_BBOOST
), bass_boost
},
263 { str(LANG_AUTOVOL
), avc
}
267 m
=menu_init( items
, sizeof items
/ sizeof(struct menu_items
) );
268 result
= menu_run(m
);
275 bool recording_menu(void)
279 struct menu_items items
[] = {
280 { str(LANG_RECORDING_QUALITY
), recquality
},
281 { str(LANG_RECORDING_FREQUENCY
), recfrequency
},
282 { str(LANG_RECORDING_SOURCE
), recsource
},
283 { str(LANG_RECORDING_CHANNELS
), recchannels
},
284 { str(LANG_RECORDING_EDITABLE
), receditable
},
287 m
=menu_init( items
, sizeof items
/ sizeof(struct menu_items
) );
288 result
= menu_run(m
);