1
0
Fork 0
forked from len0rd/rockbox

Code police and cleanup

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17469 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Peter D'Hoye 2008-05-11 23:13:59 +00:00
parent 248194164d
commit 5c3d5916da

View file

@ -64,7 +64,7 @@
/* in all the following macros the args are:
- flags: bitwise | or the F_ bits in settings_list.h
- var: pointer to the variable being changed (usually in global_settings)
- lang_ig: LANG_* id to display in menus and setting screens for the settings
- lang_id: LANG_* id to display in menus and setting screens for the setting
- default: the default value for the variable, set if settings are reset
- name: the name of the setting in config files
- cfg_vals: comma seperated list of legal values in cfg files.
@ -78,7 +78,7 @@
lang_id, NODEFAULT,name,NULL, \
{.sound_setting=(struct sound_setting[]){{setting}}} }
/* Use for bool variables which don't use LANG_SET_BOOL_YES and LANG_SET_BOOL_NO,
/* Use for bool variables which don't use LANG_SET_BOOL_YES and LANG_SET_BOOL_NO
or dont save as "off" or "on" in the cfg */
#define BOOL_SETTING(flags,var,lang_id,default,name,cfgvals,yes,no,cb) \
{flags|F_BOOL_SETTING, &global_settings.var, \
@ -99,7 +99,7 @@
NULL, NULL, UNUSED}
/* setting which stores as a filename in the .cfgvals
prefix: The absolute path to not save in the variable, e.g /.rockbox/wps_file
prefix: The absolute path to not save in the variable, ex /.rockbox/wps_file
suffx: The file extention (usually...) e.g .wps_file */
#define FILENAME_SETTING(flags,var,name,default,prefix,suffix,len) \
{flags|F_T_UCHARPTR, &global_settings.var,-1, \
@ -108,17 +108,19 @@
(struct filename_setting[]){{prefix,suffix,len}}} }
/* Used for settings which use the set_option() setting screen.
the ... arg is a list of pointers to strings to display in the setting screen.
These can either be literal strings, or ID2P(LANG_*) */
The ... arg is a list of pointers to strings to display in the setting
screen. These can either be literal strings, or ID2P(LANG_*) */
#define CHOICE_SETTING(flags,var,lang_id,default,name,cfg_vals,cb,count,...) \
{flags|F_CHOICE_SETTING|F_T_INT, &global_settings.var, lang_id, \
INT(default), name, cfg_vals, \
{.choice_setting = (struct choice_setting[]){ \
{cb, count, {.desc = (const unsigned char*[]){__VA_ARGS__}}}}}}
{cb, count, {.desc = (const unsigned char*[]) \
{__VA_ARGS__}}}}}}
/* Similar to above, except the strings to display are taken from cfg_vals,
the ... arg is a list of ID's to talk for the strings... can use TALK_ID()'s */
#define STRINGCHOICE_SETTING(flags,var,lang_id,default,name,cfg_vals,cb,count,...) \
the ... arg is a list of ID's to talk for the strings, can use TALK_ID()'s */
#define STRINGCHOICE_SETTING(flags,var,lang_id,default,name,cfg_vals, \
cb,count,...) \
{flags|F_CHOICE_SETTING|F_T_INT|F_CHOICETALKS, \
&global_settings.var, lang_id, \
INT(default), name, cfg_vals, \
@ -371,7 +373,6 @@ static int32_t jumpscroll_getlang(int value, int unit)
}
#endif /* HAVE_LCD_CHARCELLS */
const struct settings_list settings[] = {
/* sound settings */
SOUND_SETTING(F_NO_WRAP,volume, LANG_VOLUME, "volume", SOUND_VOLUME),
@ -385,14 +386,15 @@ const struct settings_list settings[] = {
"off,20ms,2,4,8,", sound_set_avc, 5,
LANG_OFF,TALK_ID(20, UNIT_MS),TALK_ID(2, UNIT_SEC),
TALK_ID(4, UNIT_SEC),TALK_ID(8, UNIT_SEC)),
OFFON_SETTING(F_SOUNDSETTING, superbass, LANG_SUPERBASS, false, "superbass", set_superbass),
OFFON_SETTING(F_SOUNDSETTING, superbass, LANG_SUPERBASS, false, "superbass",
set_superbass),
#endif
CHOICE_SETTING(F_SOUNDSETTING, channel_config, LANG_CHANNEL_CONFIGURATION,
0,"channels",
"stereo,mono,custom,mono left,mono right,karaoke",
sound_set_channels,
6, ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO),
sound_set_channels, 6,
ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO),
ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT),
ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE)),
SOUND_SETTING(F_SOUNDSETTING, stereo_width, LANG_STEREO_WIDTH,
@ -414,7 +416,8 @@ const struct settings_list settings[] = {
#else
4,
#endif
ID2P(LANG_OFF), ID2P(LANG_ALL), ID2P(LANG_REPEAT_ONE), ID2P(LANG_SHUFFLE)
ID2P(LANG_OFF), ID2P(LANG_ALL), ID2P(LANG_REPEAT_ONE),
ID2P(LANG_SHUFFLE)
#ifdef AB_REPEAT_ENABLE
,ID2P(LANG_REPEAT_AB)
#endif
@ -423,8 +426,8 @@ const struct settings_list settings[] = {
#ifdef HAVE_LCD_CONTRAST
/* its easier to leave this one un-macro()ed for the time being */
{ F_T_INT|F_DEF_ISFUNC|F_INT_SETTING, &global_settings.contrast,
LANG_CONTRAST, FUNCTYPE(lcd_default_contrast),
"contrast", NULL , {.int_setting = (struct int_setting[]){
LANG_CONTRAST, FUNCTYPE(lcd_default_contrast), "contrast", NULL , {
.int_setting = (struct int_setting[]) {
{ lcd_set_contrast, UNIT_INT, MIN_CONTRAST_SETTING,
MAX_CONTRAST_SETTING, 1, NULL, NULL }}}},
#endif
@ -448,18 +451,22 @@ const struct settings_list settings[] = {
LANG_INVERT_LCD_INVERSE, LANG_NORMAL, lcd_set_invert_display),
#endif
#ifdef HAVE_LCD_FLIP
OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL),
OFFON_SETTING(0, flip_display, LANG_FLIP_DISPLAY, false, "flip display",
NULL),
#endif
/* display */
CHOICE_SETTING(F_TEMPVAR|F_THEMESETTING, cursor_style, LANG_INVERT_CURSOR,
#ifdef HAVE_LCD_COLOR
3, "selector type", "pointer,bar (inverse),bar (color),bar (gradient)",
NULL, 4,
ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR),
ID2P(LANG_INVERT_CURSOR_COLOR), ID2P(LANG_INVERT_CURSOR_GRADIENT)),
3, "selector type",
"pointer,bar (inverse),bar (color),bar (gradient)", NULL, 4,
ID2P(LANG_INVERT_CURSOR_POINTER),
ID2P(LANG_INVERT_CURSOR_BAR),
ID2P(LANG_INVERT_CURSOR_COLOR),
ID2P(LANG_INVERT_CURSOR_GRADIENT)),
#else
1, "selector type", "pointer,bar (inverse)", NULL, 2,
ID2P(LANG_INVERT_CURSOR_POINTER), ID2P(LANG_INVERT_CURSOR_BAR)),
ID2P(LANG_INVERT_CURSOR_POINTER),
ID2P(LANG_INVERT_CURSOR_BAR)),
#endif
OFFON_SETTING(F_THEMESETTING|F_TEMPVAR, statusbar,
LANG_STATUS_BAR, true,"statusbar", NULL),
@ -469,7 +476,8 @@ const struct settings_list settings[] = {
#endif
CHOICE_SETTING(0, volume_type, LANG_VOLUME_DISPLAY, 0,
"volume display", graphic_numeric, NULL, 2,
ID2P(LANG_DISPLAY_GRAPHIC), ID2P(LANG_DISPLAY_NUMERIC)),
ID2P(LANG_DISPLAY_GRAPHIC),
ID2P(LANG_DISPLAY_NUMERIC)),
CHOICE_SETTING(0, battery_display, LANG_BATTERY_DISPLAY, 0,
"battery display", graphic_numeric, NULL, 2,
ID2P(LANG_DISPLAY_GRAPHIC), ID2P(LANG_DISPLAY_NUMERIC)),
@ -487,26 +495,28 @@ const struct settings_list settings[] = {
0,1,2,3,4,5,6,7,8,9,10,15,30,45,60),
SYSTEM_SETTING(NVRAM(4), runtime, 0),
SYSTEM_SETTING(NVRAM(4), topruntime, 0),
INT_SETTING(0,max_files_in_playlist,LANG_MAX_FILES_IN_PLAYLIST,
INT_SETTING(0, max_files_in_playlist,
LANG_MAX_FILES_IN_PLAYLIST,
#if MEM > 1
10000,
#else
400,
#endif
"max files in playlist", UNIT_INT,1000,32000,1000,NULL,NULL,NULL),
"max files in playlist", UNIT_INT, 1000, 32000, 1000,
NULL, NULL, NULL),
INT_SETTING(0, max_files_in_dir, LANG_MAX_FILES_IN_DIR,
#if MEM > 1
1000,
#else
200,
#endif
"max files in dir", UNIT_INT,50,10000,50,NULL,NULL,NULL),
#if BATTERY_CAPACITY_INC > 0
INT_SETTING(0, battery_capacity, LANG_BATTERY_CAPACITY, BATTERY_CAPACITY_DEFAULT,
"battery capacity", UNIT_MAH,
BATTERY_CAPACITY_MIN, BATTERY_CAPACITY_MAX, BATTERY_CAPACITY_INC,
"max files in dir", UNIT_INT, 50, 10000, 50,
NULL, NULL, NULL),
#if BATTERY_CAPACITY_INC > 0
INT_SETTING(0, battery_capacity, LANG_BATTERY_CAPACITY,
BATTERY_CAPACITY_DEFAULT, "battery capacity", UNIT_MAH,
BATTERY_CAPACITY_MIN, BATTERY_CAPACITY_MAX,
BATTERY_CAPACITY_INC, NULL, NULL, NULL),
#endif
#if CONFIG_CHARGING
OFFON_SETTING(NVRAM(1), car_adapter_mode,
@ -524,17 +534,19 @@ const struct settings_list settings[] = {
#endif
#if BATTERY_TYPES_COUNT > 1
CHOICE_SETTING(0, battery_type, LANG_BATTERY_TYPE, 0,
"battery type","alkaline,nimh", NULL, 2,
ID2P(LANG_BATTERY_TYPE_ALKALINE), ID2P(LANG_BATTERY_TYPE_NIMH)),
CHOICE_SETTING(0, battery_type, LANG_BATTERY_TYPE, 0, "battery type",
"alkaline,nimh", NULL, 2, ID2P(LANG_BATTERY_TYPE_ALKALINE),
ID2P(LANG_BATTERY_TYPE_NIMH)),
#endif
#ifdef HAVE_REMOTE_LCD
/* remote lcd */
INT_SETTING(0, remote_contrast, LANG_CONTRAST, DEFAULT_REMOTE_CONTRAST_SETTING,
"remote contrast", UNIT_INT, MIN_REMOTE_CONTRAST_SETTING,
MAX_REMOTE_CONTRAST_SETTING, 1, NULL, NULL, lcd_remote_set_contrast),
INT_SETTING(0, remote_contrast, LANG_CONTRAST,
DEFAULT_REMOTE_CONTRAST_SETTING, "remote contrast", UNIT_INT,
MIN_REMOTE_CONTRAST_SETTING, MAX_REMOTE_CONTRAST_SETTING, 1,
NULL, NULL, lcd_remote_set_contrast),
BOOL_SETTING(0, remote_invert, LANG_INVERT, false ,"remote invert", off_on,
LANG_INVERT_LCD_INVERSE, LANG_NORMAL, lcd_remote_set_invert_display),
LANG_INVERT_LCD_INVERSE, LANG_NORMAL,
lcd_remote_set_invert_display),
OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY,
false,"remote flip display", NULL),
TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, remote_backlight_timeout,
@ -578,8 +590,9 @@ const struct settings_list settings[] = {
#endif
#endif /* HAVE_BACKLIGHT */
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
INT_SETTING(F_NO_WRAP, brightness, LANG_BRIGHTNESS, DEFAULT_BRIGHTNESS_SETTING,
"brightness",UNIT_INT, MIN_BRIGHTNESS_SETTING, MAX_BRIGHTNESS_SETTING, 1,
INT_SETTING(F_NO_WRAP, brightness, LANG_BRIGHTNESS,
DEFAULT_BRIGHTNESS_SETTING, "brightness",UNIT_INT,
MIN_BRIGHTNESS_SETTING, MAX_BRIGHTNESS_SETTING, 1,
NULL, NULL, backlight_set_brightness),
#endif
#if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR)
@ -596,50 +609,58 @@ const struct settings_list settings[] = {
#endif
INT_SETTING(F_PADTITLE, scroll_speed, LANG_SCROLL_SPEED, 9,"scroll speed",
UNIT_INT, 0, 15, 1, NULL, NULL, lcd_scroll_speed),
INT_SETTING(F_PADTITLE, scroll_delay, LANG_SCROLL_DELAY, 1000, "scroll delay",
UNIT_MS, 0, 2500, 100, NULL,
INT_SETTING(F_PADTITLE, scroll_delay, LANG_SCROLL_DELAY, 1000,
"scroll delay", UNIT_MS, 0, 2500, 100, NULL,
NULL, lcd_scroll_delay),
INT_SETTING(0, bidir_limit, LANG_BIDIR_SCROLL, 50, "bidir limit",
UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_bidir_scroll),
#ifdef HAVE_REMOTE_LCD
INT_SETTING(0, remote_scroll_speed, LANG_SCROLL_SPEED, 9, "remote scroll speed",
UNIT_INT, 0,15, 1, NULL, NULL, lcd_remote_scroll_speed),
INT_SETTING(0, remote_scroll_step, LANG_SCROLL_STEP, 6, "remote scroll step",
UNIT_PIXEL, 1, LCD_REMOTE_WIDTH, 1, NULL, NULL, lcd_remote_scroll_step),
INT_SETTING(0, remote_scroll_delay, LANG_SCROLL_DELAY, 1000, "remote scroll delay",
UNIT_MS, 0, 2500, 100, NULL, NULL, lcd_remote_scroll_delay),
INT_SETTING(0, remote_bidir_limit, LANG_BIDIR_SCROLL, 50, "remote bidir limit",
UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_remote_bidir_scroll),
INT_SETTING(0, remote_scroll_speed, LANG_SCROLL_SPEED, 9,
"remote scroll speed", UNIT_INT, 0,15, 1,
NULL, NULL, lcd_remote_scroll_speed),
INT_SETTING(0, remote_scroll_step, LANG_SCROLL_STEP, 6,
"remote scroll step", UNIT_PIXEL, 1, LCD_REMOTE_WIDTH, 1, NULL,
NULL, lcd_remote_scroll_step),
INT_SETTING(0, remote_scroll_delay, LANG_SCROLL_DELAY, 1000,
"remote scroll delay", UNIT_MS, 0, 2500, 100, NULL, NULL,
lcd_remote_scroll_delay),
INT_SETTING(0, remote_bidir_limit, LANG_BIDIR_SCROLL, 50,
"remote bidir limit", UNIT_PERCENT, 0, 200, 25, NULL, NULL,
lcd_remote_bidir_scroll),
#endif
#ifdef HAVE_LCD_BITMAP
OFFON_SETTING(0, offset_out_of_view, LANG_SCREEN_SCROLL_VIEW,
false, "Screen Scrolls Out Of View", gui_list_screen_scroll_out_of_view),
false, "Screen Scrolls Out Of View",
gui_list_screen_scroll_out_of_view),
INT_SETTING(F_PADTITLE, scroll_step, LANG_SCROLL_STEP, 6, "scroll step",
UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, lcd_scroll_step),
INT_SETTING(F_PADTITLE, screen_scroll_step, LANG_SCREEN_SCROLL_STEP,
16, "screen scroll step",
UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, gui_list_screen_scroll_step),
INT_SETTING(F_PADTITLE, screen_scroll_step, LANG_SCREEN_SCROLL_STEP, 16,
"screen scroll step", UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL,
gui_list_screen_scroll_step),
#endif /* HAVE_LCD_BITMAP */
#ifdef HAVE_LCD_CHARCELLS
INT_SETTING(0, jump_scroll, LANG_JUMP_SCROLL, 0, "jump scroll",
UNIT_INT, 0, 5, 1, jumpscroll_format, jumpscroll_getlang, lcd_jump_scroll),
INT_SETTING(0, jump_scroll_delay, LANG_JUMP_SCROLL_DELAY, 500, "jump scroll delay",
UNIT_MS, 0, 2500, 100, NULL, NULL, lcd_jump_scroll_delay),
INT_SETTING(0, jump_scroll, LANG_JUMP_SCROLL, 0, "jump scroll", UNIT_INT, 0,
5, 1, jumpscroll_format, jumpscroll_getlang, lcd_jump_scroll),
INT_SETTING(0, jump_scroll_delay, LANG_JUMP_SCROLL_DELAY, 500,
"jump scroll delay", UNIT_MS, 0, 2500, 100, NULL, NULL,
lcd_jump_scroll_delay),
#endif
OFFON_SETTING(0,scroll_paginated,LANG_SCROLL_PAGINATED,
false,"scroll paginated",NULL),
#ifdef HAVE_LCD_COLOR
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.fg_color,-1,INT(DEFAULT_THEME_FOREGROUND),
"foreground color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,INT(DEFAULT_THEME_BACKGROUND),
"background color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lss_color,-1,INT(DEFAULT_THEME_SELECTOR_START),
"line selector start color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lse_color,-1,INT(DEFAULT_THEME_SELECTOR_END),
"line selector end color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lst_color,-1,INT(DEFAULT_THEME_SELECTOR_TEXT),
"line selector text color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.fg_color,-1,
INT(DEFAULT_THEME_FOREGROUND),"foreground color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.bg_color,-1,
INT(DEFAULT_THEME_BACKGROUND),"background color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lss_color,-1,
INT(DEFAULT_THEME_SELECTOR_START),"line selector start color",NULL,
UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lse_color,-1,
INT(DEFAULT_THEME_SELECTOR_END),"line selector end color",NULL,UNUSED},
{F_T_INT|F_RGB|F_THEMESETTING ,&global_settings.lst_color,-1,
INT(DEFAULT_THEME_SELECTOR_TEXT),"line selector text color",NULL,
UNUSED},
#endif
/* more playback */
@ -649,14 +670,15 @@ const struct settings_list settings[] = {
TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, ff_rewind_min_step,
LANG_FFRW_STEP, 1, "scan min step", NULL, UNIT_SEC,
NULL, NULL, NULL, 14, 1,2,3,4,5,6,8,10,15,20,25,30,45,60),
INT_SETTING(0, ff_rewind_accel, LANG_FFRW_ACCEL, 3, "scan accel",
UNIT_SEC, 16, 0, -1, scanaccel_formatter, getlang_unit_0_is_off, NULL),
INT_SETTING(0, ff_rewind_accel, LANG_FFRW_ACCEL, 3, "scan accel", UNIT_SEC,
16, 0, -1, scanaccel_formatter, getlang_unit_0_is_off, NULL),
#if (CONFIG_CODEC == SWCODEC) && !defined(HAVE_FLASH_STORAGE)
STRINGCHOICE_SETTING(0, buffer_margin, LANG_MP3BUFFER_MARGIN, 0,"antiskip",
"5s,15s,30s,1min,2min,3min,5min,10min", NULL, 8,
TALK_ID(5, UNIT_SEC), TALK_ID(15, UNIT_SEC),
TALK_ID(30, UNIT_SEC), TALK_ID(1, UNIT_MIN), TALK_ID(2, UNIT_MIN),
TALK_ID(3, UNIT_MIN), TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN)),
TALK_ID(30, UNIT_SEC), TALK_ID(1, UNIT_MIN),
TALK_ID(2, UNIT_MIN), TALK_ID(3, UNIT_MIN),
TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN)),
#elif !defined(HAVE_FLASH_STORAGE)
INT_SETTING(0, buffer_margin, LANG_MP3BUFFER_MARGIN, 0, "antiskip",
UNIT_SEC, 0, 7, 1, NULL, NULL, audio_set_buffer_margin),
@ -669,7 +691,8 @@ const struct settings_list settings[] = {
/* browser */
CHOICE_SETTING(0, dirfilter, LANG_FILTER, SHOW_SUPPORTED, "show files",
"all,supported,music,playlists", NULL, 4, ID2P(LANG_ALL),
ID2P(LANG_FILTER_SUPPORTED), ID2P(LANG_FILTER_MUSIC), ID2P(LANG_PLAYLISTS)),
ID2P(LANG_FILTER_SUPPORTED), ID2P(LANG_FILTER_MUSIC),
ID2P(LANG_PLAYLISTS)),
OFFON_SETTING(0, sort_case, LANG_SORT_CASE, false, "sort case", NULL),
CHOICE_SETTING(0, show_filename_ext, LANG_SHOW_FILENAME_EXT, 3,
"show filename exts", "off,on,unknown,view_all", NULL , 4 ,
@ -681,8 +704,9 @@ const struct settings_list settings[] = {
OFFON_SETTING(0,playlist_viewer_indices,LANG_SHOW_INDICES,true,
"playlist viewer indices",NULL),
CHOICE_SETTING(0, playlist_viewer_track_display, LANG_TRACK_DISPLAY, 0,
"playlist viewer track display","track name,full path", NULL, 2,
ID2P(LANG_DISPLAY_TRACK_NAME_ONLY), ID2P(LANG_DISPLAY_FULL_PATH)),
"playlist viewer track display","track name,full path",
NULL, 2, ID2P(LANG_DISPLAY_TRACK_NAME_ONLY),
ID2P(LANG_DISPLAY_FULL_PATH)),
CHOICE_SETTING(0, recursive_dir_insert, LANG_RECURSE_DIRECTORY , RECURSE_ON,
"recursive directory insert", off_on_ask, NULL , 3 ,
ID2P(LANG_OFF), ID2P(LANG_ON), ID2P(LANG_ASK)),
@ -695,41 +719,51 @@ const struct settings_list settings[] = {
ID2P(LANG_BOOKMARK_SETTINGS_RECENT_ONLY_ASK)),
CHOICE_SETTING(0, autoloadbookmark, LANG_BOOKMARK_SETTINGS_AUTOLOAD,
BOOKMARK_NO, "autoload bookmarks", off_on_ask, NULL, 3,
ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES), ID2P(LANG_ASK)),
CHOICE_SETTING(0, usemrb, LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS,
BOOKMARK_NO, "use most-recent-bookmarks", "off,on,unique only", NULL, 3,
ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES),
ID2P(LANG_ASK)),
CHOICE_SETTING(0, usemrb, LANG_BOOKMARK_SETTINGS_MAINTAIN_RECENT_BOOKMARKS,
BOOKMARK_NO, "use most-recent-bookmarks",
"off,on,unique only", NULL, 3, ID2P(LANG_SET_BOOL_NO),
ID2P(LANG_SET_BOOL_YES),
ID2P(LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY)),
#ifdef HAVE_LCD_BITMAP
/* peak meter */
STRINGCHOICE_SETTING(0, peak_meter_clip_hold, LANG_PM_CLIP_HOLD, 16,
"peak meter clip hold",
"on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,2min"
",3min,5min,10min,20min,45min,90min", peak_meter_set_clip_hold,
25, LANG_PM_ETERNAL,
TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC), TALK_ID(3, UNIT_SEC),
TALK_ID(4, UNIT_SEC), TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC),
TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC), TALK_ID(9, UNIT_SEC),
TALK_ID(10, UNIT_SEC), TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC),
TALK_ID(25, UNIT_SEC), TALK_ID(30, UNIT_SEC), TALK_ID(45, UNIT_SEC),
TALK_ID(60, UNIT_SEC), TALK_ID(90, UNIT_SEC), TALK_ID(2, UNIT_MIN),
TALK_ID(3, UNIT_MIN), TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN),
TALK_ID(20, UNIT_MIN), TALK_ID(45, UNIT_MIN), TALK_ID(90, UNIT_MIN)),
",3min,5min,10min,20min,45min,90min",
peak_meter_set_clip_hold, 25, LANG_PM_ETERNAL,
TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC),
TALK_ID(3, UNIT_SEC), TALK_ID(4, UNIT_SEC),
TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC),
TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC),
TALK_ID(9, UNIT_SEC), TALK_ID(10, UNIT_SEC),
TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC),
TALK_ID(25, UNIT_SEC), TALK_ID(30, UNIT_SEC),
TALK_ID(45, UNIT_SEC), TALK_ID(60, UNIT_SEC),
TALK_ID(90, UNIT_SEC), TALK_ID(2, UNIT_MIN),
TALK_ID(3, UNIT_MIN), TALK_ID(5, UNIT_MIN),
TALK_ID(10, UNIT_MIN), TALK_ID(20, UNIT_MIN),
TALK_ID(45, UNIT_MIN), TALK_ID(90, UNIT_MIN)),
STRINGCHOICE_SETTING(0, peak_meter_hold, LANG_PM_PEAK_HOLD, 3,
"peak meter hold",
"off,200ms,300ms,500ms,1,2,3,4,5,6,7,8,9,10,15,20,30,1min",
NULL, 18, LANG_OFF,
TALK_ID(200, UNIT_MS), TALK_ID(300, UNIT_MS), TALK_ID(500, UNIT_MS),
TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC), TALK_ID(3, UNIT_SEC),
TALK_ID(4, UNIT_SEC), TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC),
TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC), TALK_ID(9, UNIT_SEC),
TALK_ID(10, UNIT_SEC), TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC),
NULL, 18, LANG_OFF, TALK_ID(200, UNIT_MS),
TALK_ID(300, UNIT_MS), TALK_ID(500, UNIT_MS),
TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC),
TALK_ID(3, UNIT_SEC), TALK_ID(4, UNIT_SEC),
TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC),
TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC),
TALK_ID(9, UNIT_SEC), TALK_ID(10, UNIT_SEC),
TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC),
TALK_ID(30, UNIT_SEC), TALK_ID(60, UNIT_SEC)),
INT_SETTING(0, peak_meter_release, LANG_PM_RELEASE, 8, "peak meter release",
UNIT_PM_TICK, 1, 0x7e, 1, NULL, NULL,NULL),
OFFON_SETTING(0,peak_meter_dbfs,LANG_PM_DBFS,true,"peak meter dbfs",NULL),
{F_T_INT,&global_settings.peak_meter_min,LANG_PM_MIN,INT(60),"peak meter min",NULL,UNUSED},
{F_T_INT,&global_settings.peak_meter_max,LANG_PM_MAX,INT(0),"peak meter max",NULL,UNUSED},
{F_T_INT, &global_settings.peak_meter_min, LANG_PM_MIN,INT(60),
"peak meter min", NULL, UNUSED},
{F_T_INT, &global_settings.peak_meter_max, LANG_PM_MAX,INT(0),
"peak meter max", NULL, UNUSED},
#ifdef HAVE_RECORDING
OFFON_SETTING(0, peak_meter_clipcounter, LANG_PM_CLIPCOUNTER, false,
"peak meter clipcounter", NULL),
@ -756,16 +790,17 @@ const struct settings_list settings[] = {
"talk dir", off_number_spell, NULL, 3,
ID2P(LANG_OFF), ID2P(LANG_VOICE_NUMBER),
ID2P(LANG_VOICE_SPELL)),
OFFON_SETTING(F_TEMPVAR, talk_dir_clip, LANG_VOICE_DIR_TALK, false, "talk dir clip", NULL),
OFFON_SETTING(F_TEMPVAR, talk_dir_clip, LANG_VOICE_DIR_TALK, false,
"talk dir clip", NULL),
CHOICE_SETTING(0, talk_file, LANG_VOICE_FILE, 0,
"talk file", off_number_spell, NULL, 3,
ID2P(LANG_OFF), ID2P(LANG_VOICE_NUMBER),
ID2P(LANG_VOICE_SPELL)),
OFFON_SETTING(F_TEMPVAR, talk_file_clip, LANG_VOICE_FILE_TALK, false, "talk file clip", NULL),
OFFON_SETTING(F_TEMPVAR, talk_filetype, LANG_VOICE_FILETYPE,
false, "talk filetype", NULL),
OFFON_SETTING(F_TEMPVAR, talk_battery_level,
LANG_TALK_BATTERY_LEVEL, false,
OFFON_SETTING(F_TEMPVAR, talk_file_clip, LANG_VOICE_FILE_TALK, false,
"talk file clip", NULL),
OFFON_SETTING(F_TEMPVAR, talk_filetype, LANG_VOICE_FILETYPE, false,
"talk filetype", NULL),
OFFON_SETTING(F_TEMPVAR, talk_battery_level, LANG_TALK_BATTERY_LEVEL, false,
"Announce Battery Level", NULL),
/* file sorting */
@ -785,24 +820,28 @@ const struct settings_list settings[] = {
"off,00:05,00:10,00:15,00:30,01:00,01:14,01:20,02:00,"
"04:00,06:00,08:00,10:00,12:00,18:00,24:00",
NULL, 16, LANG_OFF,
TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN), TALK_ID(15, UNIT_MIN),
TALK_ID(30, UNIT_MIN), TALK_ID(60, UNIT_MIN), TALK_ID(74, UNIT_MIN),
TALK_ID(80, UNIT_MIN), TALK_ID(2, UNIT_HOUR), TALK_ID(4, UNIT_HOUR),
TALK_ID(6, UNIT_HOUR), TALK_ID(8, UNIT_HOUR), TALK_ID(10, UNIT_HOUR),
TALK_ID(12, UNIT_HOUR), TALK_ID(18, UNIT_HOUR), TALK_ID(20, UNIT_HOUR),
TALK_ID(24, UNIT_HOUR)),
TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN),
TALK_ID(15, UNIT_MIN), TALK_ID(30, UNIT_MIN),
TALK_ID(60, UNIT_MIN), TALK_ID(74, UNIT_MIN),
TALK_ID(80, UNIT_MIN), TALK_ID(2, UNIT_HOUR),
TALK_ID(4, UNIT_HOUR), TALK_ID(6, UNIT_HOUR),
TALK_ID(8, UNIT_HOUR), TALK_ID(10, UNIT_HOUR),
TALK_ID(12, UNIT_HOUR), TALK_ID(18, UNIT_HOUR),
TALK_ID(20, UNIT_HOUR), TALK_ID(24, UNIT_HOUR)),
STRINGCHOICE_SETTING(F_RECSETTING, rec_sizesplit, LANG_SPLIT_SIZE, 0,
"rec sizesplit",
"off,5MB,10MB,15MB,32MB,64MB,75MB,100MB,128MB,"
"256MB,512MB,650MB,700MB,1GB,1.5GB,1.75GB",
NULL, 16, LANG_OFF,
TALK_ID(5, UNIT_MB), TALK_ID(10, UNIT_MB), TALK_ID(15, UNIT_MB),
TALK_ID(32, UNIT_MB), TALK_ID(64, UNIT_MB), TALK_ID(75, UNIT_MB),
TALK_ID(100, UNIT_MB), TALK_ID(128, UNIT_MB), TALK_ID(256, UNIT_MB),
TALK_ID(512, UNIT_MB), TALK_ID(650, UNIT_MB), TALK_ID(700, UNIT_MB),
TALK_ID(1024, UNIT_MB), TALK_ID(1536, UNIT_MB), TALK_ID(1792, UNIT_MB)),
{F_T_INT|F_RECSETTING, &global_settings.rec_channels,
LANG_CHANNELS, INT(0),
TALK_ID(5, UNIT_MB), TALK_ID(10, UNIT_MB),
TALK_ID(15, UNIT_MB), TALK_ID(32, UNIT_MB),
TALK_ID(64, UNIT_MB), TALK_ID(75, UNIT_MB),
TALK_ID(100, UNIT_MB), TALK_ID(128, UNIT_MB),
TALK_ID(256, UNIT_MB), TALK_ID(512, UNIT_MB),
TALK_ID(650, UNIT_MB), TALK_ID(700, UNIT_MB),
TALK_ID(1024, UNIT_MB), TALK_ID(1536, UNIT_MB),
TALK_ID(1792, UNIT_MB)),
{F_T_INT|F_RECSETTING, &global_settings.rec_channels, LANG_CHANNELS, INT(0),
"rec channels","stereo,mono",UNUSED},
CHOICE_SETTING(F_RECSETTING, rec_split_type, LANG_SPLIT_TYPE, 0,
"rec split type", "Split,Stop", NULL, 2,
@ -810,16 +849,15 @@ const struct settings_list settings[] = {
CHOICE_SETTING(F_RECSETTING, rec_split_method, LANG_SPLIT_MEASURE, 0,
"rec split method", "Time,Filesize", NULL, 2,
ID2P(LANG_TIME), ID2P(LANG_REC_SIZE)),
{F_T_INT|F_RECSETTING, &global_settings.rec_source,
LANG_RECORDING_SOURCE, INT(0),
"rec source",
{F_T_INT|F_RECSETTING, &global_settings.rec_source, LANG_RECORDING_SOURCE,
INT(0), "rec source",
&HAVE_MIC_REC_(",mic")
HAVE_LINE_REC_(",line")
HAVE_SPDIF_REC_(",spdif")
HAVE_FMRADIO_REC_(",fmradio")[1]
,UNUSED},
INT_SETTING(F_RECSETTING, rec_prerecord_time, LANG_RECORD_PRERECORD_TIME,
0, "prerecording time", UNIT_SEC, 0, 30, 1,
HAVE_FMRADIO_REC_(",fmradio")[1],
UNUSED},
INT_SETTING(F_RECSETTING, rec_prerecord_time, LANG_RECORD_PRERECORD_TIME, 0,
"prerecording time", UNIT_SEC, 0, 30, 1,
formatter_unit_0_is_off, getlang_unit_0_is_off, NULL),
FILENAME_SETTING(F_RECSETTING, rec_directory, "rec path",
@ -828,8 +866,8 @@ const struct settings_list settings[] = {
CHOICE_SETTING(F_RECSETTING, cliplight, LANG_CLIP_LIGHT, 0,
"cliplight", "off,main,both,remote", NULL,
#ifdef HAVE_REMOTE_LCD
4, ID2P(LANG_OFF), ID2P(LANG_MAIN_UNIT), ID2P(LANG_REMOTE_MAIN),
ID2P(LANG_REMOTE_UNIT)
4, ID2P(LANG_OFF), ID2P(LANG_MAIN_UNIT),
ID2P(LANG_REMOTE_MAIN), ID2P(LANG_REMOTE_UNIT)
#else
2, ID2P(LANG_OFF), ID2P(LANG_ON)
#endif
@ -852,13 +890,12 @@ const struct settings_list settings[] = {
#endif /* DEFAULT_REC_RIGHT_GAIN */
#if CONFIG_CODEC == MAS3587F
{F_T_INT|F_RECSETTING,&global_settings.rec_frequency,
LANG_RECORDING_FREQUENCY,
INT(0),"rec frequency","44,48,32,22,24,16",UNUSED},
INT_SETTING(F_RECSETTING, rec_quality, LANG_RECORDING_QUALITY,
5, "rec quality",
UNIT_INT, 0, 7, 1, NULL, NULL, NULL),
OFFON_SETTING(F_RECSETTING,rec_editable,LANG_RECORDING_EDITABLE,
false,"editable recordings",NULL),
LANG_RECORDING_FREQUENCY, INT(0),
"rec frequency","44,48,32,22,24,16", UNUSED},
INT_SETTING(F_RECSETTING, rec_quality, LANG_RECORDING_QUALITY, 5,
"rec quality", UNIT_INT, 0, 7, 1, NULL, NULL, NULL),
OFFON_SETTING(F_RECSETTING, rec_editable, LANG_RECORDING_EDITABLE, false,
"editable recordings", NULL),
#endif /* CONFIG_CODEC == MAS3587F */
#if CONFIG_CODEC == SWCODEC
{F_T_INT|F_RECSETTING,&global_settings.rec_frequency,
@ -907,54 +944,71 @@ const struct settings_list settings[] = {
#endif
CHOICE_SETTING(0, next_folder, LANG_NEXT_FOLDER, FOLDER_ADVANCE_OFF,
"folder navigation", "off,on,random",NULL ,3,
ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES), ID2P(LANG_RANDOM)),
OFFON_SETTING(0,runtimedb,LANG_RUNTIMEDB_ACTIVE,false,"gather runtime data",NULL),
ID2P(LANG_SET_BOOL_NO), ID2P(LANG_SET_BOOL_YES),
ID2P(LANG_RANDOM)),
OFFON_SETTING(0, runtimedb, LANG_RUNTIMEDB_ACTIVE, false,
"gather runtime data", NULL),
#if CONFIG_CODEC == SWCODEC
/* replay gain */
OFFON_SETTING(F_SOUNDSETTING, replaygain, LANG_REPLAYGAIN_ENABLE, false, "replaygain", NULL),
CHOICE_SETTING(F_SOUNDSETTING, replaygain_type, LANG_REPLAYGAIN_MODE, REPLAYGAIN_ALBUM,
"replaygain type", "track,album,track shuffle", NULL, 3,
ID2P(LANG_TRACK_GAIN), ID2P(LANG_ALBUM_GAIN), ID2P(LANG_SHUFFLE_GAIN)),
OFFON_SETTING(F_SOUNDSETTING, replaygain, LANG_REPLAYGAIN_ENABLE, false,
"replaygain", NULL),
CHOICE_SETTING(F_SOUNDSETTING, replaygain_type, LANG_REPLAYGAIN_MODE,
REPLAYGAIN_ALBUM, "replaygain type",
"track,album,track shuffle", NULL, 3, ID2P(LANG_TRACK_GAIN),
ID2P(LANG_ALBUM_GAIN), ID2P(LANG_SHUFFLE_GAIN)),
OFFON_SETTING(F_SOUNDSETTING, replaygain_noclip, LANG_REPLAYGAIN_NOCLIP,
false, "replaygain noclip", NULL),
INT_SETTING_NOWRAP(F_SOUNDSETTING, replaygain_preamp, LANG_REPLAYGAIN_PREAMP, 0, "replaygain preamp",
INT_SETTING_NOWRAP(F_SOUNDSETTING, replaygain_preamp,
LANG_REPLAYGAIN_PREAMP, 0, "replaygain preamp",
UNIT_DB, -120, 120, 5, db_format, get_dec_talkid, NULL),
CHOICE_SETTING(0, beep, LANG_BEEP, 0,
"beep", "off,weak,moderate,strong", NULL, 4,
ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE), ID2P(LANG_STRONG)),
CHOICE_SETTING(0, beep, LANG_BEEP, 0, "beep", "off,weak,moderate,strong",
NULL, 4, ID2P(LANG_OFF), ID2P(LANG_WEAK),
ID2P(LANG_MODERATE), ID2P(LANG_STRONG)),
/* crossfade */
CHOICE_SETTING(F_SOUNDSETTING, crossfade, LANG_CROSSFADE_ENABLE, 0, "crossfade",
"off,shuffle,track skip,shuffle and track skip,always",NULL, 5,
ID2P(LANG_OFF), ID2P(LANG_SHUFFLE), ID2P(LANG_TRACKSKIP),
CHOICE_SETTING(F_SOUNDSETTING, crossfade, LANG_CROSSFADE_ENABLE, 0,
"crossfade",
"off,shuffle,track skip,shuffle and track skip,always", NULL,
5, ID2P(LANG_OFF), ID2P(LANG_SHUFFLE), ID2P(LANG_TRACKSKIP),
ID2P(LANG_SHUFFLE_TRACKSKIP), ID2P(LANG_ALWAYS)),
INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_delay, LANG_CROSSFADE_FADE_IN_DELAY, 0,
INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_delay,
LANG_CROSSFADE_FADE_IN_DELAY, 0,
"crossfade fade in delay", UNIT_SEC, 0, 7, 1, NULL, NULL, NULL),
INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_delay, LANG_CROSSFADE_FADE_OUT_DELAY, 0,
INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_delay,
LANG_CROSSFADE_FADE_OUT_DELAY, 0,
"crossfade fade out delay", UNIT_SEC, 0, 7, 1, NULL, NULL,NULL),
INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_duration, LANG_CROSSFADE_FADE_IN_DURATION, 2,
"crossfade fade in duration", UNIT_SEC, 0, 15, 1, NULL, NULL, NULL),
INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_duration, LANG_CROSSFADE_FADE_OUT_DURATION, 2,
"crossfade fade out duration", UNIT_SEC, 0, 15, 1, NULL, NULL, NULL),
CHOICE_SETTING(F_SOUNDSETTING, crossfade_fade_out_mixmode, LANG_CROSSFADE_FADE_OUT_MODE,
0, "crossfade fade out mode", "crossfade,mix", NULL, 2,
INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_duration,
LANG_CROSSFADE_FADE_IN_DURATION, 2,
"crossfade fade in duration", UNIT_SEC, 0, 15, 1, NULL, NULL,
NULL),
INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_duration,
LANG_CROSSFADE_FADE_OUT_DURATION, 2,
"crossfade fade out duration", UNIT_SEC, 0, 15, 1, NULL, NULL,
NULL),
CHOICE_SETTING(F_SOUNDSETTING, crossfade_fade_out_mixmode,
LANG_CROSSFADE_FADE_OUT_MODE, 0,
"crossfade fade out mode", "crossfade,mix", NULL, 2,
ID2P(LANG_CROSSFADE), ID2P(LANG_MIX)),
/* crossfeed */
OFFON_SETTING(F_SOUNDSETTING, crossfeed, LANG_CROSSFEED, false,
"crossfeed", dsp_set_crossfeed),
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_direct_gain, LANG_CROSSFEED_DIRECT_GAIN,
-15, "crossfeed direct gain", UNIT_DB, -60, 0, 5,
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_direct_gain,
LANG_CROSSFEED_DIRECT_GAIN, -15,
"crossfeed direct gain", UNIT_DB, -60, 0, 5,
db_format, get_dec_talkid,dsp_set_crossfeed_direct_gain),
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_cross_gain, LANG_CROSSFEED_CROSS_GAIN, -60,
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_cross_gain,
LANG_CROSSFEED_CROSS_GAIN, -60,
"crossfeed cross gain", UNIT_DB, -120, -30, 5,
db_format, get_dec_talkid, crossfeed_cross_set),
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_hf_attenuation, LANG_CROSSFEED_HF_ATTENUATION, -160,
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_hf_attenuation,
LANG_CROSSFEED_HF_ATTENUATION, -160,
"crossfeed hf attenuation", UNIT_DB, -240, -60, 5,
db_format, get_dec_talkid, crossfeed_cross_set),
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_hf_cutoff, LANG_CROSSFEED_HF_CUTOFF, 700,
INT_SETTING_NOWRAP(F_SOUNDSETTING, crossfeed_hf_cutoff,
LANG_CROSSFEED_HF_CUTOFF, 700,
"crossfeed hf cutoff", UNIT_HERTZ, 500, 2000, 100,
NULL, NULL, crossfeed_cross_set),
@ -962,8 +1016,8 @@ const struct settings_list settings[] = {
OFFON_SETTING(F_EQSETTING, eq_enabled, LANG_EQUALIZER_ENABLED, false,
"eq enabled", NULL),
INT_SETTING_NOWRAP(F_EQSETTING, eq_precut, LANG_EQUALIZER_PRECUT, 0,
"eq precut", UNIT_DB, 0, 240, 5, eq_precut_format, get_precut_talkid,
dsp_set_eq_precut),
"eq precut", UNIT_DB, 0, 240, 5, eq_precut_format,
get_precut_talkid, dsp_set_eq_precut),
/* 0..32768 Hz */
INT_SETTING_NOWRAP(F_EQSETTING, eq_band0_cutoff, LANG_EQUALIZER_BAND_CUTOFF,
60, "eq band 0 cutoff", UNIT_HERTZ, EQ_CUTOFF_MIN,
@ -1014,14 +1068,14 @@ const struct settings_list settings[] = {
EQ_GAIN_STEP, db_format, get_dec_talkid, NULL),
/* dithering */
OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING,
false, "dithering enabled", dsp_dither_enable),
OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false,
"dithering enabled", dsp_dither_enable),
#endif
#ifdef HAVE_WM8758
SOUND_SETTING(F_NO_WRAP, bass_cutoff, LANG_BASS_CUTOFF, "bass cutoff",
SOUND_BASS_CUTOFF),
SOUND_SETTING(F_NO_WRAP, treble_cutoff, LANG_TREBLE_CUTOFF, "treble cutoff",
SOUND_TREBLE_CUTOFF),
SOUND_SETTING(F_NO_WRAP, bass_cutoff, LANG_BASS_CUTOFF,
"bass cutoff", SOUND_BASS_CUTOFF),
SOUND_SETTING(F_NO_WRAP, treble_cutoff, LANG_TREBLE_CUTOFF,
"treble cutoff", SOUND_TREBLE_CUTOFF),
#endif
#ifdef HAVE_DIRCACHE
OFFON_SETTING(0,dircache,LANG_DIRCACHE_ENABLE,false,"dircache",NULL),
@ -1032,8 +1086,8 @@ const struct settings_list settings[] = {
#ifdef HAVE_TC_RAMCACHE
OFFON_SETTING(0,tagcache_ram,LANG_TAGCACHE_RAM,false,"tagcache_ram",NULL),
#endif
OFFON_SETTING(0,tagcache_autoupdate,
LANG_TAGCACHE_AUTOUPDATE,false,"tagcache_autoupdate",NULL),
OFFON_SETTING(0, tagcache_autoupdate, LANG_TAGCACHE_AUTOUPDATE, false,
"tagcache_autoupdate", NULL),
#endif
CHOICE_SETTING(0, default_codepage, LANG_DEFAULT_CODEPAGE, 0,
"default codepage",
@ -1045,8 +1099,10 @@ const struct settings_list settings[] = {
ID2P(LANG_CODEPAGE_LATIN1), ID2P(LANG_CODEPAGE_GREEK),
ID2P(LANG_CODEPAGE_HEBREW), ID2P(LANG_CODEPAGE_CYRILLIC),
ID2P(LANG_CODEPAGE_THAI), ID2P(LANG_CODEPAGE_ARABIC),
ID2P(LANG_CODEPAGE_TURKISH), ID2P(LANG_CODEPAGE_LATIN_EXTENDED),
ID2P(LANG_CODEPAGE_CENTRAL_EUROPEAN), ID2P(LANG_CODEPAGE_JAPANESE),
ID2P(LANG_CODEPAGE_TURKISH),
ID2P(LANG_CODEPAGE_LATIN_EXTENDED),
ID2P(LANG_CODEPAGE_CENTRAL_EUROPEAN),
ID2P(LANG_CODEPAGE_JAPANESE),
ID2P(LANG_CODEPAGE_SIMPLIFIED), ID2P(LANG_CODEPAGE_KOREAN),
ID2P(LANG_CODEPAGE_TRADITIONAL), ID2P(LANG_CODEPAGE_UTF8)),
#else /* !HAVE_LCD_BITMAP */
@ -1055,18 +1111,18 @@ const struct settings_list settings[] = {
set_codepage, 7,
ID2P(LANG_CODEPAGE_LATIN1), ID2P(LANG_CODEPAGE_GREEK),
ID2P(LANG_CODEPAGE_CYRILLIC), ID2P(LANG_CODEPAGE_TURKISH),
ID2P(LANG_CODEPAGE_LATIN_EXTENDED), ID2P(LANG_CODEPAGE_CENTRAL_EUROPEAN),
ID2P(LANG_CODEPAGE_LATIN_EXTENDED),
ID2P(LANG_CODEPAGE_CENTRAL_EUROPEAN),
ID2P(LANG_CODEPAGE_UTF8)),
#endif
OFFON_SETTING(0,warnon_erase_dynplaylist,
LANG_WARN_ERASEDYNPLAYLIST_MENU,false,
"warn when erasing dynamic playlist",NULL),
OFFON_SETTING(0, warnon_erase_dynplaylist, LANG_WARN_ERASEDYNPLAYLIST_MENU,
false, "warn when erasing dynamic playlist",NULL),
#ifdef HAVE_BACKLIGHT
#ifdef HAS_BUTTON_HOLD
CHOICE_SETTING(0, backlight_on_button_hold,
LANG_BACKLIGHT_ON_BUTTON_HOLD, 0, "backlight on button hold",
"normal,off,on", backlight_set_on_button_hold, 3,
CHOICE_SETTING(0, backlight_on_button_hold, LANG_BACKLIGHT_ON_BUTTON_HOLD,
0, "backlight on button hold", "normal,off,on",
backlight_set_on_button_hold, 3,
ID2P(LANG_NORMAL), ID2P(LANG_OFF), ID2P(LANG_ON)),
#endif
@ -1074,10 +1130,13 @@ const struct settings_list settings[] = {
STRINGCHOICE_SETTING(0, lcd_sleep_after_backlight_off,
LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF, 3,
"lcd sleep after backlight off",
"always,never,5,10,15,20,30,45,60,90", lcd_set_sleep_after_backlight_off,
10, LANG_ALWAYS, LANG_NEVER, TALK_ID(5, UNIT_SEC), TALK_ID(10, UNIT_SEC),
TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC), TALK_ID(30, UNIT_SEC),
TALK_ID(45, UNIT_SEC),TALK_ID(60, UNIT_SEC), TALK_ID(90, UNIT_SEC)),
"always,never,5,10,15,20,30,45,60,90",
lcd_set_sleep_after_backlight_off, 10,
LANG_ALWAYS, LANG_NEVER, TALK_ID(5, UNIT_SEC),
TALK_ID(10, UNIT_SEC), TALK_ID(15, UNIT_SEC),
TALK_ID(20, UNIT_SEC), TALK_ID(30, UNIT_SEC),
TALK_ID(45, UNIT_SEC),TALK_ID(60, UNIT_SEC),
TALK_ID(90, UNIT_SEC)),
#endif
#endif /* HAVE_BACKLIGHT */
@ -1085,8 +1144,9 @@ const struct settings_list settings[] = {
"hold_lr_for_scroll_in_list",NULL),
#ifdef HAVE_LCD_BITMAP
CHOICE_SETTING(0, show_path_in_browser, LANG_SHOW_PATH, SHOW_PATH_OFF,
"show path in browser", "off,current directory,full path", NULL, 3,
ID2P(LANG_OFF), ID2P(LANG_SHOW_PATH_CURRENT), ID2P(LANG_DISPLAY_FULL_PATH)),
"show path in browser", "off,current directory,full path",
NULL, 3, ID2P(LANG_OFF), ID2P(LANG_SHOW_PATH_CURRENT),
ID2P(LANG_DISPLAY_FULL_PATH)),
#endif
#ifdef HAVE_AGC
@ -1105,39 +1165,44 @@ const struct settings_list settings[] = {
#ifdef HAVE_REMOTE_LCD
#ifdef HAS_REMOTE_BUTTON_HOLD
CHOICE_SETTING(0, remote_backlight_on_button_hold,
LANG_BACKLIGHT_ON_BUTTON_HOLD, 0, "remote backlight on button hold",
LANG_BACKLIGHT_ON_BUTTON_HOLD, 0,
"remote backlight on button hold",
"normal,off,on", remote_backlight_set_on_button_hold, 3,
ID2P(LANG_NORMAL), ID2P(LANG_OFF), ID2P(LANG_ON)),
#endif
#endif
#ifdef HAVE_HEADPHONE_DETECTION
CHOICE_SETTING(0, unplug_mode, LANG_HEADPHONE_UNPLUG, 0,
"pause on headphone unplug", "off,pause,pause and resume", NULL, 3,
ID2P(LANG_OFF), ID2P(LANG_PAUSE), ID2P(LANG_HEADPHONE_UNPLUG_RESUME)),
INT_SETTING(0, unplug_rw, LANG_HEADPHONE_UNPLUG_RW, 0, "rewind duration on pause",
UNIT_SEC, 0, 15, 1, NULL, NULL,NULL) ,
OFFON_SETTING(0,unplug_autoresume,LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME,false,
"pause on headphone unplug", "off,pause,pause and resume",
NULL, 3, ID2P(LANG_OFF), ID2P(LANG_PAUSE),
ID2P(LANG_HEADPHONE_UNPLUG_RESUME)),
INT_SETTING(0, unplug_rw, LANG_HEADPHONE_UNPLUG_RW, 0,
"rewind duration on pause", UNIT_SEC, 0, 15, 1, NULL, NULL,
NULL),
OFFON_SETTING(0, unplug_autoresume,
LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME, false,
"disable autoresume if phones not present",NULL),
#endif
#if CONFIG_TUNER
CHOICE_SETTING(0, fm_region, LANG_FM_REGION, 0,
"fm_region", "eu,us,jp,kr", set_radio_region, 4, ID2P(LANG_FM_EUROPE),
ID2P(LANG_FM_US), ID2P(LANG_FM_JAPAN), ID2P(LANG_FM_KOREA)),
"fm_region", "eu,us,jp,kr", set_radio_region, 4,
ID2P(LANG_FM_EUROPE), ID2P(LANG_FM_US),
ID2P(LANG_FM_JAPAN), ID2P(LANG_FM_KOREA)),
#endif
OFFON_SETTING(0,audioscrobbler,LANG_AUDIOSCROBBLER,
false,"Last.fm Logging",NULL),
OFFON_SETTING(0, audioscrobbler, LANG_AUDIOSCROBBLER, false,
"Last.fm Logging", NULL),
#ifdef HAVE_RECORDING
{F_T_INT|F_RECSETTING,&global_settings.rec_trigger_type,
LANG_RECORD_TRIGGER_TYPE,
INT(0),"trigger type","stop,pause,nf stp",UNUSED},
LANG_RECORD_TRIGGER_TYPE, INT(0),
"trigger type","stop,pause,nf stp",UNUSED},
#endif
/** settings not in the old config blocks **/
#if CONFIG_TUNER
FILENAME_SETTING(0, fmr_file, "fmr",
"", FMPRESET_PATH "/", ".fmr", MAX_FILENAME+1),
FILENAME_SETTING(0, fmr_file, "fmr", "",
FMPRESET_PATH "/", ".fmr", MAX_FILENAME+1),
#endif
#ifdef HAVE_LCD_BITMAP
FILENAME_SETTING(F_THEMESETTING, font_file, "font",
@ -1162,7 +1227,8 @@ const struct settings_list settings[] = {
OFFON_SETTING(0,usb_charging,LANG_USB_CHARGING,false,"usb charging",NULL),
#endif
#endif
OFFON_SETTING(0,cuesheet,LANG_CUESHEET_ENABLE,false,"cuesheet support", NULL),
OFFON_SETTING(0,cuesheet,LANG_CUESHEET_ENABLE,false,"cuesheet support",
NULL),
OFFON_SETTING(0,study_mode,LANG_ENABLE_STUDY_MODE,false,"Study mode",
NULL),
INT_SETTING(0, study_hop_step, LANG_STUDY_HOP_STEP, 5, "Study hop step",
@ -1205,7 +1271,8 @@ const struct settings_list settings[] = {
#ifdef HAVE_LCD_BITMAP
FILENAME_SETTING(F_THEMESETTING, icon_file, "iconset", DEFAULT_ICONSET,
ICON_DIR "/", ".bmp", MAX_FILENAME+1),
FILENAME_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset", DEFAULT_VIEWERS_ICONSET,
FILENAME_SETTING(F_THEMESETTING, viewers_icon_file, "viewers iconset",
DEFAULT_VIEWERS_ICONSET,
ICON_DIR "/", ".bmp", MAX_FILENAME+1),
#endif
#ifdef HAVE_REMOTE_LCD
@ -1227,9 +1294,11 @@ const struct settings_list settings[] = {
-1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120),
#endif
#ifdef HAVE_BUTTONLIGHT_BRIGHTNESS
INT_SETTING(F_NO_WRAP, buttonlight_brightness, LANG_BUTTONLIGHT_BRIGHTNESS, DEFAULT_BRIGHTNESS_SETTING,
"button light brightness",UNIT_INT, MIN_BRIGHTNESS_SETTING, MAX_BRIGHTNESS_SETTING, 1,
NULL, NULL, buttonlight_set_brightness),
INT_SETTING(F_NO_WRAP, buttonlight_brightness, LANG_BUTTONLIGHT_BRIGHTNESS,
DEFAULT_BRIGHTNESS_SETTING,
"button light brightness",UNIT_INT, MIN_BRIGHTNESS_SETTING,
MAX_BRIGHTNESS_SETTING, 1, NULL, NULL,
buttonlight_set_brightness),
#endif
#ifndef HAVE_SCROLLWHEEL
INT_SETTING(0, list_accel_start_delay, LANG_LISTACCEL_START_DELAY,
@ -1246,8 +1315,10 @@ const struct settings_list settings[] = {
/* keyclick */
CHOICE_SETTING(0, keyclick, LANG_KEYCLICK, 0,
"keyclick", "off,weak,moderate,strong", NULL, 4,
ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE), ID2P(LANG_STRONG)),
OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false, "keyclick repeats", NULL),
ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE),
ID2P(LANG_STRONG)),
OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false,
"keyclick repeats", NULL),
#endif /* CONFIG_CODEC == SWCODEC */
FILENAME_SETTING(0, playlist_catalog_dir, "playlist catalog directory",
PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL, MAX_FILENAME+1),