diff options
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r-- | apps/settings_list.c | 396 |
1 files changed, 208 insertions, 188 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c index d4ad6f64dc..a5a1c53dc0 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -187,6 +187,13 @@ | |||
187 | {cb, formatter, get_talk_id, unit, count, \ | 187 | {cb, formatter, get_talk_id, unit, count, \ |
188 | (const int[]){__VA_ARGS__}}}}} | 188 | (const int[]){__VA_ARGS__}}}}} |
189 | 189 | ||
190 | #define TABLE_SETTING_LIST(flags, var, lang_id, default, name, cfg_vals, \ | ||
191 | unit, formatter, get_talk_id, cb, count, list) \ | ||
192 | {flags|F_TABLE_SETTING|F_T_INT, &global_settings.var, \ | ||
193 | lang_id, INT(default), name, cfg_vals, \ | ||
194 | {.table_setting = (struct table_setting[]) { \ | ||
195 | {cb, formatter, get_talk_id, unit, count, list}}}} | ||
196 | |||
190 | #define CUSTOM_SETTING(flags, var, lang_id, default, name, \ | 197 | #define CUSTOM_SETTING(flags, var, lang_id, default, name, \ |
191 | load_from_cfg, write_to_cfg, \ | 198 | load_from_cfg, write_to_cfg, \ |
192 | is_change, set_default) \ | 199 | is_change, set_default) \ |
@@ -200,9 +207,18 @@ | |||
200 | TEXT_SETTING(F_THEMESETTING,var,name,"-", NULL, NULL) | 207 | TEXT_SETTING(F_THEMESETTING,var,name,"-", NULL, NULL) |
201 | 208 | ||
202 | /* some sets of values which are used more than once, to save memory */ | 209 | /* some sets of values which are used more than once, to save memory */ |
210 | static const char off[] = "off"; | ||
203 | static const char off_on[] = "off,on"; | 211 | static const char off_on[] = "off,on"; |
204 | static const char off_on_ask[] = "off,on,ask"; | 212 | static const char off_on_ask[] = "off,on,ask"; |
205 | static const char off_number_spell[] = "off,number,spell"; | 213 | static const char off_number_spell[] = "off,number,spell"; |
214 | static const int timeout_sec_common[] = {-1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30, | ||
215 | 45,60,90,120,180,240,300,600,900,1200, | ||
216 | 1500,1800,2700,3600,4500,5400,6300,7200}; | ||
217 | static const int time_recording_trigger[] = {0,1,2,5,10,15,20,25,30,60,120,300,600}; | ||
218 | #if defined(HAVE_BACKLIGHT_FADING_INT_SETTING) | ||
219 | static const int backlight_fade[] = {0,100,200,300,500,1000,2000,3000,5000,10000}; | ||
220 | #endif | ||
221 | |||
206 | #ifdef HAVE_LCD_BITMAP | 222 | #ifdef HAVE_LCD_BITMAP |
207 | static const char graphic_numeric[] = "graphic,numeric"; | 223 | static const char graphic_numeric[] = "graphic,numeric"; |
208 | #endif | 224 | #endif |
@@ -330,6 +346,14 @@ static const char graphic_numeric[] = "graphic,numeric"; | |||
330 | #define DEFAULT_TAGCACHE_SCAN_PATHS "/" | 346 | #define DEFAULT_TAGCACHE_SCAN_PATHS "/" |
331 | #endif | 347 | #endif |
332 | 348 | ||
349 | #ifdef HAVE_BACKLIGHT | ||
350 | #ifdef SIMULATOR | ||
351 | #define DEFAULT_BACKLIGHT_TIMEOUT 0 | ||
352 | #else | ||
353 | #define DEFAULT_BACKLIGHT_TIMEOUT 15 | ||
354 | #endif | ||
355 | #endif /* HAVE_BACKLIGHT */ | ||
356 | |||
333 | #if LCD_DEPTH > 1 | 357 | #if LCD_DEPTH > 1 |
334 | static const char* list_pad_formatter(char *buffer, size_t buffer_size, | 358 | static const char* list_pad_formatter(char *buffer, size_t buffer_size, |
335 | int val, const char *unit) | 359 | int val, const char *unit) |
@@ -373,61 +397,89 @@ static int32_t getlang_unit_0_is_off(int value, int unit) | |||
373 | return TALK_ID(value,unit); | 397 | return TALK_ID(value,unit); |
374 | } | 398 | } |
375 | 399 | ||
376 | static const char* formatter_unit_0_is_skip_track(char *buffer, size_t buffer_size, | 400 | static const char* formatter_time_unit_0_is_off(char *buffer, size_t buffer_size, |
377 | int val, const char *unit) | 401 | int val, const char *unit) |
402 | { | ||
403 | (void) buffer_size; | ||
404 | (void) unit; | ||
405 | if (val == 0) | ||
406 | return str(LANG_OFF); | ||
407 | return buffer; | ||
408 | } | ||
409 | |||
410 | static int32_t getlang_time_unit_0_is_off(int value, int unit) | ||
411 | { | ||
412 | if (value == 0) | ||
413 | return LANG_OFF; | ||
414 | else | ||
415 | return talk_time_intervals(value, unit, false); | ||
416 | } | ||
417 | |||
418 | #if defined(HAVE_BACKLIGHT) || defined(HAVE_LCD_SLEEP_SETTING) | ||
419 | static const char* formatter_time_unit_0_is_always(char *buffer, size_t buffer_size, | ||
420 | int val, const char *unit) | ||
421 | { | ||
422 | (void) buffer_size; | ||
423 | (void) unit; | ||
424 | if (val == -1) | ||
425 | return str(LANG__NEVER); | ||
426 | else if (val == 0) | ||
427 | return str(LANG_ALWAYS); | ||
428 | return buffer; | ||
429 | } | ||
430 | |||
431 | static int32_t getlang_time_unit_0_is_always(int value, int unit) | ||
432 | { | ||
433 | if (value == -1) | ||
434 | return LANG__NEVER; | ||
435 | else if (value == 0) | ||
436 | return LANG_ALWAYS; | ||
437 | else | ||
438 | return talk_time_intervals(value, unit, false); | ||
439 | } | ||
440 | #endif /* HAVE_BACKLIGHT || HAVE_LCD_SLEEP_SETTING */ | ||
441 | |||
442 | static const char* formatter_time_unit_0_is_skip_track(char *buffer, | ||
443 | size_t buffer_size, int val, const char *unit) | ||
378 | { | 444 | { |
379 | (void)unit; | 445 | (void)unit; |
446 | (void)buffer_size; | ||
380 | if (val == -1) | 447 | if (val == -1) |
381 | return str(LANG_SKIP_OUTRO); | 448 | return str(LANG_SKIP_OUTRO); |
382 | else if (val == 0) | 449 | else if (val == 0) |
383 | return str(LANG_SKIP_TRACK); | 450 | return str(LANG_SKIP_TRACK); |
384 | else if (val % 60 == 0) | ||
385 | snprintf(buffer, buffer_size, "%d min", val/60); | ||
386 | else | ||
387 | snprintf(buffer, buffer_size, "%d s", val); | ||
388 | return buffer; | 451 | return buffer; |
389 | } | 452 | } |
390 | 453 | ||
391 | static int32_t getlang_unit_0_is_skip_track(int value, int unit) | 454 | static int32_t getlang_time_unit_0_is_skip_track(int value, int unit) |
392 | { | 455 | { |
393 | (void)unit; | 456 | (void)unit; |
394 | if (value == -1) | 457 | if (value == -1) |
395 | return LANG_SKIP_OUTRO; | 458 | return LANG_SKIP_OUTRO; |
396 | else if (value == 0) | 459 | else if (value == 0) |
397 | return LANG_SKIP_TRACK; | 460 | return LANG_SKIP_TRACK; |
398 | else if (value % 60 == 0) | ||
399 | return TALK_ID(value/60, UNIT_MIN); | ||
400 | else | 461 | else |
401 | return TALK_ID(value, UNIT_SEC); | 462 | return talk_time_intervals(value, unit, false); |
402 | } | 463 | } |
403 | 464 | ||
404 | #ifdef HAVE_BACKLIGHT | 465 | #ifdef HAVE_LCD_BITMAP |
405 | #ifdef SIMULATOR | 466 | static const char* formatter_time_unit_0_is_eternal(char *buffer, |
406 | #define DEFAULT_BACKLIGHT_TIMEOUT 0 | 467 | size_t buffer_size, int val, const char *unit) |
407 | #else | ||
408 | #define DEFAULT_BACKLIGHT_TIMEOUT 15 | ||
409 | #endif | ||
410 | static const char* backlight_formatter(char *buffer, size_t buffer_size, | ||
411 | int val, const char *unit) | ||
412 | { | 468 | { |
413 | if (val == -1) | 469 | (void) buffer_size; |
414 | return str(LANG_OFF); | 470 | (void) unit; |
415 | else if (val == 0) | 471 | if (val == 0) |
416 | return str(LANG_ON); | 472 | return str(LANG_PM_ETERNAL); |
417 | else | ||
418 | snprintf(buffer, buffer_size, "%d %s", val, unit); | ||
419 | return buffer; | 473 | return buffer; |
420 | } | 474 | } |
421 | static int32_t backlight_getlang(int value, int unit) | 475 | static int32_t getlang_time_unit_0_is_eternal(int value, int unit) |
422 | { | 476 | { |
423 | if (value == -1) | 477 | if (value == 0) |
424 | return LANG_OFF; | 478 | return LANG_PM_ETERNAL; |
425 | else if (value == 0) | ||
426 | return LANG_ON; | ||
427 | else | 479 | else |
428 | return TALK_ID(value, unit); | 480 | return talk_time_intervals(value, unit, false); |
429 | } | 481 | } |
430 | #endif | 482 | #endif /* HAVE_LCD_BITMAP */ |
431 | 483 | ||
432 | #ifndef HAVE_WHEEL_ACCELERATION | 484 | #ifndef HAVE_WHEEL_ACCELERATION |
433 | static const char* scanaccel_formatter(char *buffer, size_t buffer_size, | 485 | static const char* scanaccel_formatter(char *buffer, size_t buffer_size, |
@@ -437,7 +489,7 @@ static const char* scanaccel_formatter(char *buffer, size_t buffer_size, | |||
437 | if (val == 0) | 489 | if (val == 0) |
438 | return str(LANG_OFF); | 490 | return str(LANG_OFF); |
439 | else | 491 | else |
440 | snprintf(buffer, buffer_size, "Speed up every %ds", val); | 492 | snprintf(buffer, buffer_size, "Speed up every %d s", val); |
441 | return buffer; | 493 | return buffer; |
442 | } | 494 | } |
443 | #endif | 495 | #endif |
@@ -798,8 +850,9 @@ const struct settings_list settings[] = { | |||
798 | /* 3-d enhancement effect */ | 850 | /* 3-d enhancement effect */ |
799 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 851 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
800 | SOUND_SETTING(0,loudness, LANG_LOUDNESS, "loudness", SOUND_LOUDNESS), | 852 | SOUND_SETTING(0,loudness, LANG_LOUDNESS, "loudness", SOUND_LOUDNESS), |
853 | /* requires index, uses table defined by driver */ | ||
801 | STRINGCHOICE_SETTING(F_SOUNDSETTING,avc,LANG_AUTOVOL,0,"auto volume", | 854 | STRINGCHOICE_SETTING(F_SOUNDSETTING,avc,LANG_AUTOVOL,0,"auto volume", |
802 | "off,20ms,2,4,8,", sound_set_avc, 5, | 855 | "off,20 ms,2 s,4 s,8 s,", sound_set_avc, 5, |
803 | LANG_OFF,TALK_ID(20, UNIT_MS),TALK_ID(2, UNIT_SEC), | 856 | LANG_OFF,TALK_ID(20, UNIT_MS),TALK_ID(2, UNIT_SEC), |
804 | TALK_ID(4, UNIT_SEC),TALK_ID(8, UNIT_SEC)), | 857 | TALK_ID(4, UNIT_SEC),TALK_ID(8, UNIT_SEC)), |
805 | OFFON_SETTING(F_SOUNDSETTING, superbass, LANG_SUPERBASS, false, "superbass", | 858 | OFFON_SETTING(F_SOUNDSETTING, superbass, LANG_SUPERBASS, false, "superbass", |
@@ -864,18 +917,19 @@ const struct settings_list settings[] = { | |||
864 | MAX_CONTRAST_SETTING, 1, NULL, NULL }}}}, | 917 | MAX_CONTRAST_SETTING, 1, NULL, NULL }}}}, |
865 | #endif | 918 | #endif |
866 | #ifdef HAVE_BACKLIGHT | 919 | #ifdef HAVE_BACKLIGHT |
867 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, backlight_timeout, LANG_BACKLIGHT, | 920 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, |
868 | DEFAULT_BACKLIGHT_TIMEOUT, | 921 | backlight_timeout, LANG_BACKLIGHT, |
869 | "backlight timeout", off_on, UNIT_SEC, backlight_formatter, | 922 | DEFAULT_BACKLIGHT_TIMEOUT, "backlight timeout", |
870 | backlight_getlang, backlight_set_timeout, 20, | 923 | off_on, UNIT_SEC, formatter_time_unit_0_is_always, |
871 | -1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120), | 924 | getlang_time_unit_0_is_always, backlight_set_timeout, |
925 | 23, timeout_sec_common), | ||
872 | #if CONFIG_CHARGING | 926 | #if CONFIG_CHARGING |
873 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, backlight_timeout_plugged, | 927 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, |
874 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 10, | 928 | backlight_timeout_plugged, LANG_BACKLIGHT_ON_WHEN_CHARGING, |
875 | "backlight timeout plugged", off_on, UNIT_SEC, | 929 | DEFAULT_BACKLIGHT_TIMEOUT, "backlight timeout plugged", |
876 | backlight_formatter, backlight_getlang, | 930 | off_on, UNIT_SEC, formatter_time_unit_0_is_always, |
877 | backlight_set_timeout_plugged, 20, | 931 | getlang_time_unit_0_is_always, backlight_set_timeout_plugged, |
878 | -1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120), | 932 | 23, timeout_sec_common), |
879 | #endif | 933 | #endif |
880 | #endif /* HAVE_BACKLIGHT */ | 934 | #endif /* HAVE_BACKLIGHT */ |
881 | #ifdef HAVE_LCD_BITMAP | 935 | #ifdef HAVE_LCD_BITMAP |
@@ -951,10 +1005,10 @@ const struct settings_list settings[] = { | |||
951 | #endif /* HAVE_LCD_BITMAP */ | 1005 | #endif /* HAVE_LCD_BITMAP */ |
952 | OFFON_SETTING(0,show_icons, LANG_SHOW_ICONS ,true,"show icons", NULL), | 1006 | OFFON_SETTING(0,show_icons, LANG_SHOW_ICONS ,true,"show icons", NULL), |
953 | /* system */ | 1007 | /* system */ |
954 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, poweroff, LANG_POWEROFF_IDLE, 10, | 1008 | INT_SETTING(F_TIME_SETTING, poweroff, LANG_POWEROFF_IDLE, 10, |
955 | "idle poweroff", "off", UNIT_MIN, formatter_unit_0_is_off, | 1009 | "idle poweroff", UNIT_MIN, 0,60,1, |
956 | getlang_unit_0_is_off, set_poweroff_timeout, 15, | 1010 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, |
957 | 0,1,2,3,4,5,6,7,8,9,10,15,30,45,60), | 1011 | set_poweroff_timeout), |
958 | SYSTEM_SETTING(NVRAM(4), runtime, 0), | 1012 | SYSTEM_SETTING(NVRAM(4), runtime, 0), |
959 | SYSTEM_SETTING(NVRAM(4), topruntime, 0), | 1013 | SYSTEM_SETTING(NVRAM(4), topruntime, 0), |
960 | INT_SETTING(F_BANFROMQS, max_files_in_playlist, | 1014 | INT_SETTING(F_BANFROMQS, max_files_in_playlist, |
@@ -1039,18 +1093,17 @@ const struct settings_list settings[] = { | |||
1039 | lcd_remote_set_invert_display), | 1093 | lcd_remote_set_invert_display), |
1040 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, | 1094 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, |
1041 | false,"remote flip display", NULL), | 1095 | false,"remote flip display", NULL), |
1042 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, remote_backlight_timeout, | 1096 | TABLE_SETTING_LIST(F_ALLOW_ARBITRARY_VALS, remote_backlight_timeout, |
1043 | LANG_BACKLIGHT, 5, "remote backlight timeout", off_on, | 1097 | LANG_BACKLIGHT, 5, |
1044 | UNIT_SEC, backlight_formatter, backlight_getlang, | 1098 | "remote backlight timeout", off_on, UNIT_SEC, |
1045 | remote_backlight_set_timeout, 20, | 1099 | formatter_time_unit_0_is_always, getlang_time_unit_0_is_always, |
1046 | -1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120), | 1100 | remote_backlight_set_timeout, 23, timeout_sec_common), |
1047 | #if CONFIG_CHARGING | 1101 | #if CONFIG_CHARGING |
1048 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, remote_backlight_timeout_plugged, | 1102 | TABLE_SETTING_LIST(F_ALLOW_ARBITRARY_VALS, remote_backlight_timeout_plugged, |
1049 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 10, | 1103 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 10, |
1050 | "remote backlight timeout plugged", off_on, UNIT_SEC, | 1104 | "remote backlight timeout plugged", off_on, UNIT_SEC, |
1051 | backlight_formatter, backlight_getlang, | 1105 | formatter_time_unit_0_is_always, getlang_time_unit_0_is_always, |
1052 | remote_backlight_set_timeout_plugged, 20, | 1106 | remote_backlight_set_timeout_plugged, 23, timeout_sec_common), |
1053 | -1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120), | ||
1054 | #endif | 1107 | #endif |
1055 | #ifdef HAVE_REMOTE_LCD_TICKING | 1108 | #ifdef HAVE_REMOTE_LCD_TICKING |
1056 | OFFON_SETTING(0, remote_reduce_ticking, LANG_REDUCE_TICKING, | 1109 | OFFON_SETTING(0, remote_reduce_ticking, LANG_REDUCE_TICKING, |
@@ -1103,15 +1156,15 @@ const struct settings_list settings[] = { | |||
1103 | #endif | 1156 | #endif |
1104 | /* backlight fading */ | 1157 | /* backlight fading */ |
1105 | #if defined(HAVE_BACKLIGHT_FADING_INT_SETTING) | 1158 | #if defined(HAVE_BACKLIGHT_FADING_INT_SETTING) |
1106 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, backlight_fade_in, | 1159 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, backlight_fade_in, |
1107 | LANG_BACKLIGHT_FADE_IN, 300, "backlight fade in", "off", | 1160 | LANG_BACKLIGHT_FADE_IN, 300, "backlight fade in", "off", |
1108 | UNIT_MS, formatter_unit_0_is_off, getlang_unit_0_is_off, | 1161 | UNIT_MS, formatter_time_unit_0_is_off, getlang_unit_0_is_off, |
1109 | backlight_set_fade_in, 7, 0,100,200,300,500,1000,2000), | 1162 | backlight_set_fade_in, 7, backlight_fade), |
1110 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, backlight_fade_out, | 1163 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, backlight_fade_out, |
1111 | LANG_BACKLIGHT_FADE_OUT, 2000, "backlight fade out", "off", | 1164 | LANG_BACKLIGHT_FADE_OUT, 2000, "backlight fade out", "off", |
1112 | UNIT_MS, formatter_unit_0_is_off, getlang_unit_0_is_off, | 1165 | UNIT_MS, formatter_time_unit_0_is_off, |
1113 | backlight_set_fade_out, 10, | 1166 | getlang_time_unit_0_is_off, |
1114 | 0,100,200,300,500,1000,2000,3000,5000,10000), | 1167 | backlight_set_fade_out, 10, backlight_fade), |
1115 | #elif defined(HAVE_BACKLIGHT_FADING_BOOL_SETTING) | 1168 | #elif defined(HAVE_BACKLIGHT_FADING_BOOL_SETTING) |
1116 | OFFON_SETTING(0, backlight_fade_in, LANG_BACKLIGHT_FADE_IN, | 1169 | OFFON_SETTING(0, backlight_fade_in, LANG_BACKLIGHT_FADE_IN, |
1117 | true, "backlight fade in", backlight_set_fade_in), | 1170 | true, "backlight fade in", backlight_set_fade_in), |
@@ -1121,9 +1174,10 @@ const struct settings_list settings[] = { | |||
1121 | #endif /* HAVE_BACKLIGHT */ | 1174 | #endif /* HAVE_BACKLIGHT */ |
1122 | INT_SETTING(F_PADTITLE, scroll_speed, LANG_SCROLL_SPEED, 9,"scroll speed", | 1175 | INT_SETTING(F_PADTITLE, scroll_speed, LANG_SCROLL_SPEED, 9,"scroll speed", |
1123 | UNIT_INT, 0, 17, 1, NULL, NULL, lcd_scroll_speed), | 1176 | UNIT_INT, 0, 17, 1, NULL, NULL, lcd_scroll_speed), |
1124 | INT_SETTING(F_PADTITLE, scroll_delay, LANG_SCROLL_DELAY, 1000, | 1177 | INT_SETTING(F_TIME_SETTING | F_PADTITLE, scroll_delay, LANG_SCROLL_DELAY, |
1125 | "scroll delay", UNIT_MS, 0, 2500, 100, NULL, | 1178 | 1000, "scroll delay", UNIT_MS, 0, 3000, 100, |
1126 | NULL, lcd_scroll_delay), | 1179 | formatter_time_unit_0_is_off, |
1180 | getlang_time_unit_0_is_off, lcd_scroll_delay), | ||
1127 | INT_SETTING(0, bidir_limit, LANG_BIDIR_SCROLL, 50, "bidir limit", | 1181 | INT_SETTING(0, bidir_limit, LANG_BIDIR_SCROLL, 50, "bidir limit", |
1128 | UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_bidir_scroll), | 1182 | UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_bidir_scroll), |
1129 | #ifdef HAVE_REMOTE_LCD | 1183 | #ifdef HAVE_REMOTE_LCD |
@@ -1133,8 +1187,9 @@ const struct settings_list settings[] = { | |||
1133 | INT_SETTING(0, remote_scroll_step, LANG_SCROLL_STEP, 6, | 1187 | INT_SETTING(0, remote_scroll_step, LANG_SCROLL_STEP, 6, |
1134 | "remote scroll step", UNIT_PIXEL, 1, LCD_REMOTE_WIDTH, 1, NULL, | 1188 | "remote scroll step", UNIT_PIXEL, 1, LCD_REMOTE_WIDTH, 1, NULL, |
1135 | NULL, lcd_remote_scroll_step), | 1189 | NULL, lcd_remote_scroll_step), |
1136 | INT_SETTING(0, remote_scroll_delay, LANG_SCROLL_DELAY, 1000, | 1190 | INT_SETTING(F_TIME_SETTING, remote_scroll_delay, LANG_SCROLL_DELAY, 1000, |
1137 | "remote scroll delay", UNIT_MS, 0, 2500, 100, NULL, NULL, | 1191 | "remote scroll delay", UNIT_MS, 0, 3000, 100, |
1192 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, | ||
1138 | lcd_remote_scroll_delay), | 1193 | lcd_remote_scroll_delay), |
1139 | INT_SETTING(0, remote_bidir_limit, LANG_BIDIR_SCROLL, 50, | 1194 | INT_SETTING(0, remote_bidir_limit, LANG_BIDIR_SCROLL, 50, |
1140 | "remote bidir limit", UNIT_PERCENT, 0, 200, 25, NULL, NULL, | 1195 | "remote bidir limit", UNIT_PERCENT, 0, 200, 25, NULL, NULL, |
@@ -1172,27 +1227,25 @@ const struct settings_list settings[] = { | |||
1172 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), | 1227 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), |
1173 | OFFON_SETTING(0,party_mode,LANG_PARTY_MODE,false,"party mode",NULL), | 1228 | OFFON_SETTING(0,party_mode,LANG_PARTY_MODE,false,"party mode",NULL), |
1174 | OFFON_SETTING(0,fade_on_stop,LANG_FADE_ON_STOP,true,"volume fade",NULL), | 1229 | OFFON_SETTING(0,fade_on_stop,LANG_FADE_ON_STOP,true,"volume fade",NULL), |
1175 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, ff_rewind_min_step, | 1230 | INT_SETTING(F_TIME_SETTING, ff_rewind_min_step, LANG_FFRW_STEP, 1, |
1176 | LANG_FFRW_STEP, 1, "scan min step", NULL, UNIT_SEC, | 1231 | "scan min step", UNIT_SEC, 1, 60, 1, NULL, NULL, NULL), |
1177 | NULL, NULL, NULL, 14, 1,2,3,4,5,6,8,10,15,20,25,30,45,60), | ||
1178 | CHOICE_SETTING(0, ff_rewind_accel, LANG_FFRW_ACCEL, 2, | 1232 | CHOICE_SETTING(0, ff_rewind_accel, LANG_FFRW_ACCEL, 2, |
1179 | "seek acceleration", "very fast,fast,normal,slow,very slow", NULL, 5, | 1233 | "seek acceleration", "very fast,fast,normal,slow,very slow", NULL, 5, |
1180 | ID2P(LANG_VERY_FAST), ID2P(LANG_FAST), ID2P(LANG_NORMAL), | 1234 | ID2P(LANG_VERY_FAST), ID2P(LANG_FAST), ID2P(LANG_NORMAL), |
1181 | ID2P(LANG_SLOW) , ID2P(LANG_VERY_SLOW)), | 1235 | ID2P(LANG_SLOW) , ID2P(LANG_VERY_SLOW)), |
1182 | #if (CONFIG_CODEC == SWCODEC) && defined(HAVE_DISK_STORAGE) | 1236 | #if (CONFIG_CODEC == SWCODEC) && defined(HAVE_DISK_STORAGE) |
1183 | STRINGCHOICE_SETTING(0, buffer_margin, LANG_MP3BUFFER_MARGIN, 0,"antiskip", | 1237 | TABLE_SETTING(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, buffer_margin, |
1184 | "5s,15s,30s,1min,2min,3min,5min,10min", NULL, 8, | 1238 | LANG_MP3BUFFER_MARGIN, 5, "antiskip", NULL, UNIT_SEC, |
1185 | TALK_ID(5, UNIT_SEC), TALK_ID(15, UNIT_SEC), | 1239 | NULL, NULL, |
1186 | TALK_ID(30, UNIT_SEC), TALK_ID(1, UNIT_MIN), | 1240 | NULL,8, 5,15,30,60,120,180,300,600), |
1187 | TALK_ID(2, UNIT_MIN), TALK_ID(3, UNIT_MIN), | ||
1188 | TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN)), | ||
1189 | #elif defined(HAVE_DISK_STORAGE) | 1241 | #elif defined(HAVE_DISK_STORAGE) |
1190 | INT_SETTING(0, buffer_margin, LANG_MP3BUFFER_MARGIN, 0, "antiskip", | 1242 | INT_SETTING(F_TIME_SETTING, buffer_margin, LANG_MP3BUFFER_MARGIN, 0, |
1191 | UNIT_SEC, 0, 7, 1, NULL, NULL, audio_set_buffer_margin), | 1243 | "antiskip", UNIT_SEC, 0, 7, 1, formatter_time_unit_0_is_off, |
1244 | getlang_time_unit_0_is_off, audio_set_buffer_margin), | ||
1192 | #endif | 1245 | #endif |
1193 | /* disk */ | 1246 | /* disk */ |
1194 | #ifdef HAVE_DISK_STORAGE | 1247 | #ifdef HAVE_DISK_STORAGE |
1195 | INT_SETTING(0, disk_spindown, LANG_SPINDOWN, 5, "disk spindown", | 1248 | INT_SETTING(F_TIME_SETTING, disk_spindown, LANG_SPINDOWN, 5, "disk spindown", |
1196 | UNIT_SEC, 3, 254, 1, NULL, NULL, storage_spindown), | 1249 | UNIT_SEC, 3, 254, 1, NULL, NULL, storage_spindown), |
1197 | #endif /* HAVE_DISK_STORAGE */ | 1250 | #endif /* HAVE_DISK_STORAGE */ |
1198 | /* browser */ | 1251 | /* browser */ |
@@ -1252,35 +1305,16 @@ const struct settings_list settings[] = { | |||
1252 | ID2P(LANG_BOOKMARK_SETTINGS_ONE_PER_TRACK)), | 1305 | ID2P(LANG_BOOKMARK_SETTINGS_ONE_PER_TRACK)), |
1253 | #ifdef HAVE_LCD_BITMAP | 1306 | #ifdef HAVE_LCD_BITMAP |
1254 | /* peak meter */ | 1307 | /* peak meter */ |
1255 | STRINGCHOICE_SETTING(0, peak_meter_clip_hold, LANG_PM_CLIP_HOLD, 16, | 1308 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, peak_meter_clip_hold, |
1256 | "peak meter clip hold", | 1309 | LANG_PM_CLIP_HOLD, 60, "peak meter clip hold", "eternal", |
1257 | "on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,2min" | 1310 | UNIT_SEC, formatter_time_unit_0_is_eternal, |
1258 | ",3min,5min,10min,20min,45min,90min", | 1311 | getlang_time_unit_0_is_eternal, peak_meter_set_clip_hold, |
1259 | peak_meter_set_clip_hold, 25, LANG_PM_ETERNAL, | 1312 | 31, &timeout_sec_common[1]), /* skip -1 entry */ |
1260 | TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC), | 1313 | TABLE_SETTING(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, peak_meter_hold, |
1261 | TALK_ID(3, UNIT_SEC), TALK_ID(4, UNIT_SEC), | 1314 | LANG_PM_PEAK_HOLD, 500, "peak meter hold", off, UNIT_MS, |
1262 | TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC), | 1315 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off,NULL, |
1263 | TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC), | 1316 | 18, 0,200,300,500,1000,2000,3000,4000,5000,6000,7000,8000, |
1264 | TALK_ID(9, UNIT_SEC), TALK_ID(10, UNIT_SEC), | 1317 | 9000,10000,15000,20000,30000,60000), |
1265 | TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC), | ||
1266 | TALK_ID(25, UNIT_SEC), TALK_ID(30, UNIT_SEC), | ||
1267 | TALK_ID(45, UNIT_SEC), TALK_ID(60, UNIT_SEC), | ||
1268 | TALK_ID(90, UNIT_SEC), TALK_ID(2, UNIT_MIN), | ||
1269 | TALK_ID(3, UNIT_MIN), TALK_ID(5, UNIT_MIN), | ||
1270 | TALK_ID(10, UNIT_MIN), TALK_ID(20, UNIT_MIN), | ||
1271 | TALK_ID(45, UNIT_MIN), TALK_ID(90, UNIT_MIN)), | ||
1272 | STRINGCHOICE_SETTING(0, peak_meter_hold, LANG_PM_PEAK_HOLD, 3, | ||
1273 | "peak meter hold", | ||
1274 | "off,200ms,300ms,500ms,1,2,3,4,5,6,7,8,9,10,15,20,30,1min", | ||
1275 | NULL, 18, LANG_OFF, TALK_ID(200, UNIT_MS), | ||
1276 | TALK_ID(300, UNIT_MS), TALK_ID(500, UNIT_MS), | ||
1277 | TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC), | ||
1278 | TALK_ID(3, UNIT_SEC), TALK_ID(4, UNIT_SEC), | ||
1279 | TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC), | ||
1280 | TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC), | ||
1281 | TALK_ID(9, UNIT_SEC), TALK_ID(10, UNIT_SEC), | ||
1282 | TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC), | ||
1283 | TALK_ID(30, UNIT_SEC), TALK_ID(60, UNIT_SEC)), | ||
1284 | INT_SETTING(0, peak_meter_release, LANG_PM_RELEASE, 8, "peak meter release", | 1318 | INT_SETTING(0, peak_meter_release, LANG_PM_RELEASE, 8, "peak meter release", |
1285 | UNIT_PM_TICK, 1, 0x7e, 1, NULL, NULL,NULL), | 1319 | UNIT_PM_TICK, 1, 0x7e, 1, NULL, NULL,NULL), |
1286 | OFFON_SETTING(0,peak_meter_dbfs,LANG_PM_DBFS,true,"peak meter dbfs",NULL), | 1320 | OFFON_SETTING(0,peak_meter_dbfs,LANG_PM_DBFS,true,"peak meter dbfs",NULL), |
@@ -1328,20 +1362,12 @@ const struct settings_list settings[] = { | |||
1328 | "Announce Battery Level", NULL), | 1362 | "Announce Battery Level", NULL), |
1329 | 1363 | ||
1330 | #ifdef HAVE_RECORDING | 1364 | #ifdef HAVE_RECORDING |
1331 | /* recording */ | 1365 | /* recording */ |
1332 | STRINGCHOICE_SETTING(F_RECSETTING, rec_timesplit, LANG_SPLIT_TIME, 0, | 1366 | TABLE_SETTING(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS | F_RECSETTING, |
1333 | "rec timesplit", | 1367 | rec_timesplit, |
1334 | "off,00:05,00:10,00:15,00:30,01:00,01:14,01:20,02:00," | 1368 | LANG_SPLIT_TIME, 0, "rec timesplit", off, UNIT_MIN, |
1335 | "04:00,06:00,08:00,10:00,12:00,18:00,24:00", | 1369 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off,NULL, |
1336 | NULL, 16, LANG_OFF, | 1370 | 16, 0,5,10,15,30,60,74,80,120,240,360,480,600,720,1080,1440), |
1337 | TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN), | ||
1338 | TALK_ID(15, UNIT_MIN), TALK_ID(30, UNIT_MIN), | ||
1339 | TALK_ID(60, UNIT_MIN), TALK_ID(74, UNIT_MIN), | ||
1340 | TALK_ID(80, UNIT_MIN), TALK_ID(2, UNIT_HOUR), | ||
1341 | TALK_ID(4, UNIT_HOUR), TALK_ID(6, UNIT_HOUR), | ||
1342 | TALK_ID(8, UNIT_HOUR), TALK_ID(10, UNIT_HOUR), | ||
1343 | TALK_ID(12, UNIT_HOUR), TALK_ID(18, UNIT_HOUR), | ||
1344 | TALK_ID(20, UNIT_HOUR), TALK_ID(24, UNIT_HOUR)), | ||
1345 | STRINGCHOICE_SETTING(F_RECSETTING, rec_sizesplit, LANG_SPLIT_SIZE, 0, | 1371 | STRINGCHOICE_SETTING(F_RECSETTING, rec_sizesplit, LANG_SPLIT_SIZE, 0, |
1346 | "rec sizesplit", | 1372 | "rec sizesplit", |
1347 | "off,5MB,10MB,15MB,32MB,64MB,75MB,100MB,128MB," | 1373 | "off,5MB,10MB,15MB,32MB,64MB,75MB,100MB,128MB," |
@@ -1374,9 +1400,10 @@ const struct settings_list settings[] = { | |||
1374 | HAVE_SPDIF_REC_(",spdif") | 1400 | HAVE_SPDIF_REC_(",spdif") |
1375 | HAVE_FMRADIO_REC_(",fmradio")[1], | 1401 | HAVE_FMRADIO_REC_(",fmradio")[1], |
1376 | UNUSED}, | 1402 | UNUSED}, |
1377 | INT_SETTING(F_RECSETTING, rec_prerecord_time, LANG_RECORD_PRERECORD_TIME, 0, | 1403 | INT_SETTING(F_TIME_SETTING | F_RECSETTING, rec_prerecord_time, |
1404 | LANG_RECORD_PRERECORD_TIME, 0, | ||
1378 | "prerecording time", UNIT_SEC, 0, 30, 1, | 1405 | "prerecording time", UNIT_SEC, 0, 30, 1, |
1379 | formatter_unit_0_is_off, getlang_unit_0_is_off, NULL), | 1406 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, NULL), |
1380 | 1407 | ||
1381 | TEXT_SETTING(F_RECSETTING, rec_directory, "rec path", | 1408 | TEXT_SETTING(F_RECSETTING, rec_directory, "rec path", |
1382 | REC_BASE_DIR, NULL, NULL), | 1409 | REC_BASE_DIR, NULL, NULL), |
@@ -1444,21 +1471,15 @@ const struct settings_list settings[] = { | |||
1444 | "trigger stop threshold dB", UNIT_DB, -89, 0, 1, NULL, NULL, NULL), | 1471 | "trigger stop threshold dB", UNIT_DB, -89, 0, 1, NULL, NULL, NULL), |
1445 | INT_SETTING(F_RECSETTING, rec_stop_thres_linear, LANG_RECORD_STOP_THRESHOLD, 10, | 1472 | INT_SETTING(F_RECSETTING, rec_stop_thres_linear, LANG_RECORD_STOP_THRESHOLD, 10, |
1446 | "trigger stop threshold linear", UNIT_PERCENT, 0, 100, 1, NULL, NULL, NULL), | 1473 | "trigger stop threshold linear", UNIT_PERCENT, 0, 100, 1, NULL, NULL, NULL), |
1447 | TABLE_SETTING(F_RECSETTING, rec_start_duration, LANG_MIN_DURATION, 0, | 1474 | TABLE_SETTING_LIST(F_TIME_SETTING | F_RECSETTING, rec_start_duration, |
1448 | "trigger start duration", | 1475 | LANG_MIN_DURATION, 0, "trigger start duration", |
1449 | "0s,1s,2s,5s,10s,15s,20s,25s,30s,1min,2min,5min,10min", | 1476 | off, UNIT_SEC, NULL, NULL, NULL, 13, time_recording_trigger), |
1450 | UNIT_SEC, NULL, NULL, NULL, 13, | 1477 | TABLE_SETTING_LIST(F_TIME_SETTING | F_RECSETTING, rec_stop_postrec, |
1451 | 0,1,2,5,10,15,20,25,30,60,120,300,600), | 1478 | LANG_MIN_DURATION, 0, "trigger stop duration", |
1452 | TABLE_SETTING(F_RECSETTING, rec_stop_postrec, LANG_MIN_DURATION, 0, | 1479 | off, UNIT_SEC, NULL, NULL, NULL, 13, time_recording_trigger), |
1453 | "trigger stop duration", | 1480 | TABLE_SETTING_LIST(F_TIME_SETTING | F_RECSETTING, rec_stop_gap, |
1454 | "0s,1s,2s,5s,10s,15s,20s,25s,30s,1min,2min,5min,10min", | 1481 | LANG_RECORD_STOP_GAP, 1, "trigger min gap", |
1455 | UNIT_SEC, NULL, NULL, NULL, 13, | 1482 | off, UNIT_SEC, NULL, NULL, NULL, 13, time_recording_trigger), |
1456 | 0,1,2,5,10,15,20,25,30,60,120,300,600), | ||
1457 | TABLE_SETTING(F_RECSETTING, rec_stop_gap, LANG_RECORD_STOP_GAP, 1, | ||
1458 | "trigger min gap", | ||
1459 | "0s,1s,2s,5s,10s,15s,20s,25s,30s,1min,2min,5min,10min", | ||
1460 | UNIT_SEC, NULL, NULL, NULL, 13, | ||
1461 | 0,1,2,5,10,15,20,25,30,60,120,300,600), | ||
1462 | CHOICE_SETTING(F_RECSETTING, rec_trigger_mode, LANG_RECORD_TRIGGER, TRIG_MODE_OFF, | 1483 | CHOICE_SETTING(F_RECSETTING, rec_trigger_mode, LANG_RECORD_TRIGGER, TRIG_MODE_OFF, |
1463 | "trigger mode","off,once,repeat", NULL ,3, | 1484 | "trigger mode","off,once,repeat", NULL ,3, |
1464 | ID2P(LANG_OFF), ID2P(LANG_RECORD_TRIG_NOREARM), ID2P(LANG_REPEAT)), | 1485 | ID2P(LANG_OFF), ID2P(LANG_RECORD_TRIG_NOREARM), ID2P(LANG_REPEAT)), |
@@ -1469,9 +1490,10 @@ const struct settings_list settings[] = { | |||
1469 | 1490 | ||
1470 | #ifdef HAVE_HISTOGRAM | 1491 | #ifdef HAVE_HISTOGRAM |
1471 | /* TO DO: additional restictions of following REP items? */ | 1492 | /* TO DO: additional restictions of following REP items? */ |
1472 | TABLE_SETTING(F_RECSETTING, histogram_interval, LANG_HISTOGRAM_INTERVAL, 0, | 1493 | INT_SETTING(F_TIME_SETTING | F_RECSETTING, histogram_interval, |
1473 | "histogram interval","0s,1s,2s,4s", | 1494 | LANG_HISTOGRAM_INTERVAL, 0, |
1474 | UNIT_SEC, NULL, NULL, NULL, 4, 0,1,2,4), | 1495 | "histogram interval", UNIT_SEC, 0,4,1, |
1496 | NULL, NULL, NULL), | ||
1475 | #endif /* HAVE_HISTOGRAM */ | 1497 | #endif /* HAVE_HISTOGRAM */ |
1476 | 1498 | ||
1477 | #ifdef HAVE_SPDIF_POWER | 1499 | #ifdef HAVE_SPDIF_POWER |
@@ -1532,20 +1554,18 @@ const struct settings_list settings[] = { | |||
1532 | NULL, 6, ID2P(LANG_OFF), ID2P(LANG_AUTOTRACKSKIP), | 1554 | NULL, 6, ID2P(LANG_OFF), ID2P(LANG_AUTOTRACKSKIP), |
1533 | ID2P(LANG_MANTRACKSKIP), ID2P(LANG_SHUFFLE), | 1555 | ID2P(LANG_MANTRACKSKIP), ID2P(LANG_SHUFFLE), |
1534 | ID2P(LANG_SHUFFLE_TRACKSKIP), ID2P(LANG_ALWAYS)), | 1556 | ID2P(LANG_SHUFFLE_TRACKSKIP), ID2P(LANG_ALWAYS)), |
1535 | INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_delay, | 1557 | INT_SETTING(F_TIME_SETTING | F_SOUNDSETTING, crossfade_fade_in_delay, |
1536 | LANG_CROSSFADE_FADE_IN_DELAY, 0, | 1558 | LANG_CROSSFADE_FADE_IN_DELAY, 0, |
1537 | "crossfade fade in delay", UNIT_SEC, 0, 7, 1, NULL, NULL, NULL), | 1559 | "crossfade fade in delay", UNIT_SEC, 0, 7, 1, NULL, NULL, NULL), |
1538 | INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_delay, | 1560 | INT_SETTING(F_TIME_SETTING | F_SOUNDSETTING, crossfade_fade_out_delay, |
1539 | LANG_CROSSFADE_FADE_OUT_DELAY, 0, | 1561 | LANG_CROSSFADE_FADE_OUT_DELAY, 0, |
1540 | "crossfade fade out delay", UNIT_SEC, 0, 7, 1, NULL, NULL,NULL), | 1562 | "crossfade fade out delay", UNIT_SEC, 0, 7, 1, NULL, NULL,NULL), |
1541 | INT_SETTING(F_SOUNDSETTING, crossfade_fade_in_duration, | 1563 | INT_SETTING(F_TIME_SETTING | F_SOUNDSETTING, crossfade_fade_in_duration, |
1542 | LANG_CROSSFADE_FADE_IN_DURATION, 2, | 1564 | LANG_CROSSFADE_FADE_IN_DURATION, 2, |
1543 | "crossfade fade in duration", UNIT_SEC, 0, 15, 1, NULL, NULL, | 1565 | "crossfade fade in duration", UNIT_SEC, 0, 15, 1, NULL, NULL, NULL), |
1544 | NULL), | 1566 | INT_SETTING(F_TIME_SETTING | F_SOUNDSETTING, crossfade_fade_out_duration, |
1545 | INT_SETTING(F_SOUNDSETTING, crossfade_fade_out_duration, | ||
1546 | LANG_CROSSFADE_FADE_OUT_DURATION, 2, | 1567 | LANG_CROSSFADE_FADE_OUT_DURATION, 2, |
1547 | "crossfade fade out duration", UNIT_SEC, 0, 15, 1, NULL, NULL, | 1568 | "crossfade fade out duration", UNIT_SEC, 0, 15, 1, NULL, NULL, NULL), |
1548 | NULL), | ||
1549 | CHOICE_SETTING(F_SOUNDSETTING, crossfade_fade_out_mixmode, | 1569 | CHOICE_SETTING(F_SOUNDSETTING, crossfade_fade_out_mixmode, |
1550 | LANG_CROSSFADE_FADE_OUT_MODE, 0, | 1570 | LANG_CROSSFADE_FADE_OUT_MODE, 0, |
1551 | "crossfade fade out mode", "crossfade,mix", NULL, 2, | 1571 | "crossfade fade out mode", "crossfade,mix", NULL, 2, |
@@ -1697,9 +1717,10 @@ const struct settings_list settings[] = { | |||
1697 | OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false, | 1717 | OFFON_SETTING(F_SOUNDSETTING, dithering_enabled, LANG_DITHERING, false, |
1698 | "dithering enabled", dsp_dither_enable), | 1718 | "dithering enabled", dsp_dither_enable), |
1699 | /* surround */ | 1719 | /* surround */ |
1700 | TABLE_SETTING(F_SOUNDSETTING, surround_enabled, | 1720 | TABLE_SETTING(F_TIME_SETTING | F_SOUNDSETTING, surround_enabled, |
1701 | LANG_SURROUND, 0, "surround enabled", "off", | 1721 | LANG_SURROUND, 0, "surround enabled", off, |
1702 | UNIT_MS, formatter_unit_0_is_off, getlang_unit_0_is_off, | 1722 | UNIT_MS, formatter_time_unit_0_is_off, |
1723 | getlang_time_unit_0_is_off, | ||
1703 | dsp_surround_enable, 6, | 1724 | dsp_surround_enable, 6, |
1704 | 0,5,8,10,15,30), | 1725 | 0,5,8,10,15,30), |
1705 | INT_SETTING_NOWRAP(F_SOUNDSETTING, surround_balance, | 1726 | INT_SETTING_NOWRAP(F_SOUNDSETTING, surround_balance, |
@@ -1760,11 +1781,13 @@ const struct settings_list settings[] = { | |||
1760 | LANG_COMPRESSOR_KNEE, 1, "compressor knee", | 1781 | LANG_COMPRESSOR_KNEE, 1, "compressor knee", |
1761 | "hard knee,soft knee", compressor_set, 2, | 1782 | "hard knee,soft knee", compressor_set, 2, |
1762 | ID2P(LANG_COMPRESSOR_HARD_KNEE), ID2P(LANG_COMPRESSOR_SOFT_KNEE)), | 1783 | ID2P(LANG_COMPRESSOR_HARD_KNEE), ID2P(LANG_COMPRESSOR_SOFT_KNEE)), |
1763 | INT_SETTING_NOWRAP(F_SOUNDSETTING, compressor_settings.attack_time, | 1784 | INT_SETTING_NOWRAP(F_TIME_SETTING | F_SOUNDSETTING, |
1785 | compressor_settings.attack_time, | ||
1764 | LANG_COMPRESSOR_ATTACK, 5, | 1786 | LANG_COMPRESSOR_ATTACK, 5, |
1765 | "compressor attack time", UNIT_MS, 0, 30, | 1787 | "compressor attack time", UNIT_MS, 0, 30, |
1766 | 5, NULL, NULL, compressor_set), | 1788 | 5, NULL, NULL, compressor_set), |
1767 | INT_SETTING_NOWRAP(F_SOUNDSETTING, compressor_settings.release_time, | 1789 | INT_SETTING_NOWRAP(F_TIME_SETTING | F_SOUNDSETTING, |
1790 | compressor_settings.release_time, | ||
1768 | LANG_COMPRESSOR_RELEASE, 500, | 1791 | LANG_COMPRESSOR_RELEASE, 500, |
1769 | "compressor release time", UNIT_MS, 100, 1000, | 1792 | "compressor release time", UNIT_MS, 100, 1000, |
1770 | 100, NULL, NULL, compressor_set), | 1793 | 100, NULL, NULL, compressor_set), |
@@ -1831,16 +1854,12 @@ const struct settings_list settings[] = { | |||
1831 | #endif | 1854 | #endif |
1832 | 1855 | ||
1833 | #ifdef HAVE_LCD_SLEEP_SETTING | 1856 | #ifdef HAVE_LCD_SLEEP_SETTING |
1834 | STRINGCHOICE_SETTING(0, lcd_sleep_after_backlight_off, | 1857 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, |
1835 | LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF, 3, | 1858 | lcd_sleep_after_backlight_off, LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF, |
1836 | "lcd sleep after backlight off", | 1859 | 5, "lcd sleep after backlight off", |
1837 | "always,never,5,10,15,20,30,45,60,90", | 1860 | off_on, UNIT_SEC, formatter_time_unit_0_is_always, |
1838 | lcd_set_sleep_after_backlight_off, 10, | 1861 | getlang_time_unit_0_is_always, lcd_set_sleep_after_backlight_off, |
1839 | LANG_ALWAYS, LANG_NEVER, TALK_ID(5, UNIT_SEC), | 1862 | 23, timeout_sec_common), |
1840 | TALK_ID(10, UNIT_SEC), TALK_ID(15, UNIT_SEC), | ||
1841 | TALK_ID(20, UNIT_SEC), TALK_ID(30, UNIT_SEC), | ||
1842 | TALK_ID(45, UNIT_SEC),TALK_ID(60, UNIT_SEC), | ||
1843 | TALK_ID(90, UNIT_SEC)), | ||
1844 | #endif /* HAVE_LCD_SLEEP_SETTING */ | 1863 | #endif /* HAVE_LCD_SLEEP_SETTING */ |
1845 | #endif /* HAVE_BACKLIGHT */ | 1864 | #endif /* HAVE_BACKLIGHT */ |
1846 | 1865 | ||
@@ -1863,7 +1882,7 @@ const struct settings_list settings[] = { | |||
1863 | {F_T_INT,&global_settings.rec_agc_maxgain_line,-1,INT(96), | 1882 | {F_T_INT,&global_settings.rec_agc_maxgain_line,-1,INT(96), |
1864 | "agc maximum line gain",NULL,UNUSED}, | 1883 | "agc maximum line gain",NULL,UNUSED}, |
1865 | {F_T_INT,&global_settings.rec_agc_cliptime,LANG_RECORDING_AGC_CLIPTIME, | 1884 | {F_T_INT,&global_settings.rec_agc_cliptime,LANG_RECORDING_AGC_CLIPTIME, |
1866 | INT(1),"agc cliptime","0.2s,0.4s,0.6s,0.8,1s",UNUSED}, | 1885 | INT(1),"agc cliptime","0.2 s,0.4 s,0.6 s,0.8 s,1 s",UNUSED}, |
1867 | #endif | 1886 | #endif |
1868 | 1887 | ||
1869 | #ifdef HAVE_REMOTE_LCD | 1888 | #ifdef HAVE_REMOTE_LCD |
@@ -1884,9 +1903,9 @@ const struct settings_list settings[] = { | |||
1884 | LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME, false, | 1903 | LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME, false, |
1885 | "disable autoresume if phones not present",NULL), | 1904 | "disable autoresume if phones not present",NULL), |
1886 | #endif | 1905 | #endif |
1887 | INT_SETTING(0, pause_rewind, LANG_PAUSE_REWIND, 0, | 1906 | INT_SETTING(F_TIME_SETTING, pause_rewind, LANG_PAUSE_REWIND, 0, |
1888 | "rewind duration on pause", UNIT_SEC, 0, 15, 1, NULL, NULL, | 1907 | "rewind duration on pause", UNIT_SEC, 0, 15, 1, |
1889 | NULL), | 1908 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, NULL), |
1890 | #if CONFIG_TUNER | 1909 | #if CONFIG_TUNER |
1891 | CHOICE_SETTING(0, fm_region, LANG_FM_REGION, 0, | 1910 | CHOICE_SETTING(0, fm_region, LANG_FM_REGION, 0, |
1892 | "fm_region", "eu,us,jp,kr,it,wo", set_radio_region, 6, | 1911 | "fm_region", "eu,us,jp,kr,it,wo", set_radio_region, 6, |
@@ -1945,12 +1964,12 @@ const struct settings_list settings[] = { | |||
1945 | #endif | 1964 | #endif |
1946 | OFFON_SETTING(F_BANFROMQS,cuesheet,LANG_CUESHEET_ENABLE,false,"cuesheet support", | 1965 | OFFON_SETTING(F_BANFROMQS,cuesheet,LANG_CUESHEET_ENABLE,false,"cuesheet support", |
1947 | NULL), | 1966 | NULL), |
1948 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, skip_length, | 1967 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, skip_length, |
1949 | LANG_SKIP_LENGTH, 0, "skip length", | 1968 | LANG_SKIP_LENGTH, 0, "skip length", |
1950 | "outro,track,1s,2s,3s,5s,7s,10s,15s,20s,30s,45s,1min,90s,2min,3min,5min,10min,15min", | 1969 | "outro,track", |
1951 | UNIT_SEC, formatter_unit_0_is_skip_track, | 1970 | UNIT_SEC, formatter_time_unit_0_is_skip_track, |
1952 | getlang_unit_0_is_skip_track, NULL, | 1971 | getlang_time_unit_0_is_skip_track, NULL, |
1953 | 19, -1,0,1,2,3,5,7,10,15,20,30,45,60,90,120,180,300,600,900), | 1972 | 25, timeout_sec_common), |
1954 | CHOICE_SETTING(0, start_in_screen, LANG_START_SCREEN, 1, | 1973 | CHOICE_SETTING(0, start_in_screen, LANG_START_SCREEN, 1, |
1955 | "start in screen", "previous,root,files," | 1974 | "start in screen", "previous,root,files," |
1956 | #ifdef HAVE_TAGCACHE | 1975 | #ifdef HAVE_TAGCACHE |
@@ -2025,11 +2044,12 @@ const struct settings_list settings[] = { | |||
2025 | THEME_DIR "/", ".colours"), | 2044 | THEME_DIR "/", ".colours"), |
2026 | #endif | 2045 | #endif |
2027 | #ifdef HAVE_BUTTON_LIGHT | 2046 | #ifdef HAVE_BUTTON_LIGHT |
2028 | TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, buttonlight_timeout, | 2047 | TABLE_SETTING_LIST(F_TIME_SETTING | F_ALLOW_ARBITRARY_VALS, |
2029 | LANG_BUTTONLIGHT_TIMEOUT, 5, "button light timeout", off_on, | 2048 | buttonlight_timeout, LANG_BUTTONLIGHT_TIMEOUT, |
2030 | UNIT_SEC, backlight_formatter, backlight_getlang, | 2049 | DEFAULT_BACKLIGHT_TIMEOUT, "button light timeout", |
2031 | buttonlight_set_timeout, 20, | 2050 | off_on, UNIT_SEC, formatter_time_unit_0_is_always, |
2032 | -1,0,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,120), | 2051 | getlang_time_unit_0_is_always, buttonlight_set_timeout, |
2052 | 23, timeout_sec_common), | ||
2033 | #endif | 2053 | #endif |
2034 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | 2054 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS |
2035 | INT_SETTING(F_NO_WRAP, buttonlight_brightness, LANG_BUTTONLIGHT_BRIGHTNESS, | 2055 | INT_SETTING(F_NO_WRAP, buttonlight_brightness, LANG_BUTTONLIGHT_BRIGHTNESS, |
@@ -2039,9 +2059,9 @@ const struct settings_list settings[] = { | |||
2039 | buttonlight_set_brightness), | 2059 | buttonlight_set_brightness), |
2040 | #endif | 2060 | #endif |
2041 | #ifndef HAVE_WHEEL_ACCELERATION | 2061 | #ifndef HAVE_WHEEL_ACCELERATION |
2042 | INT_SETTING(0, list_accel_start_delay, LANG_LISTACCEL_START_DELAY, | 2062 | INT_SETTING(F_TIME_SETTING, list_accel_start_delay, LANG_LISTACCEL_START_DELAY, |
2043 | 2, "list_accel_start_delay", UNIT_SEC, 0, 10, 1, | 2063 | 2, "list_accel_start_delay", UNIT_SEC, 0, 10, 1, |
2044 | formatter_unit_0_is_off, getlang_unit_0_is_off, NULL), | 2064 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, NULL), |
2045 | INT_SETTING(0, list_accel_wait, LANG_LISTACCEL_ACCEL_SPEED, | 2065 | INT_SETTING(0, list_accel_wait, LANG_LISTACCEL_ACCEL_SPEED, |
2046 | 3, "list_accel_wait", UNIT_SEC, 1, 10, 1, | 2066 | 3, "list_accel_wait", UNIT_SEC, 1, 10, 1, |
2047 | scanaccel_formatter, getlang_unit_0_is_off, NULL), | 2067 | scanaccel_formatter, getlang_unit_0_is_off, NULL), |
@@ -2068,9 +2088,9 @@ const struct settings_list settings[] = { | |||
2068 | #endif /* CONFIG_CODEC == SWCODEC */ | 2088 | #endif /* CONFIG_CODEC == SWCODEC */ |
2069 | TEXT_SETTING(0, playlist_catalog_dir, "playlist catalog directory", | 2089 | TEXT_SETTING(0, playlist_catalog_dir, "playlist catalog directory", |
2070 | PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL), | 2090 | PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL), |
2071 | INT_SETTING(0, sleeptimer_duration, LANG_SLEEP_TIMER_DURATION, 30, | 2091 | INT_SETTING(F_TIME_SETTING, sleeptimer_duration, LANG_SLEEP_TIMER_DURATION, |
2072 | "sleeptimer duration", | 2092 | 30, "sleeptimer duration", UNIT_MIN, 5, 300, 5, |
2073 | UNIT_MIN, 5, 300, 5, NULL, NULL, NULL), | 2093 | NULL, NULL, NULL), |
2074 | OFFON_SETTING(0, sleeptimer_on_startup, LANG_SLEEP_TIMER_ON_POWER_UP, false, | 2094 | OFFON_SETTING(0, sleeptimer_on_startup, LANG_SLEEP_TIMER_ON_POWER_UP, false, |
2075 | "sleeptimer on startup", NULL), | 2095 | "sleeptimer on startup", NULL), |
2076 | OFFON_SETTING(0, keypress_restarts_sleeptimer, LANG_KEYPRESS_RESTARTS_SLEEP_TIMER, false, | 2096 | OFFON_SETTING(0, keypress_restarts_sleeptimer, LANG_KEYPRESS_RESTARTS_SLEEP_TIMER, false, |
@@ -2211,9 +2231,9 @@ const struct settings_list settings[] = { | |||
2211 | #endif | 2231 | #endif |
2212 | 2232 | ||
2213 | #if CONFIG_CODEC == SWCODEC | 2233 | #if CONFIG_CODEC == SWCODEC |
2214 | INT_SETTING(0, resume_rewind, LANG_RESUME_REWIND, 0, | 2234 | INT_SETTING(F_TIME_SETTING, resume_rewind, LANG_RESUME_REWIND, 0, |
2215 | "resume rewind", UNIT_SEC, 0, 60, 5, | 2235 | "resume rewind", UNIT_SEC, 0, 60, 5, |
2216 | NULL, NULL, NULL), | 2236 | formatter_time_unit_0_is_off, getlang_time_unit_0_is_off, NULL), |
2217 | #endif | 2237 | #endif |
2218 | CUSTOM_SETTING(0, root_menu_customized, | 2238 | CUSTOM_SETTING(0, root_menu_customized, |
2219 | LANG_ROCKBOX_TITLE, /* lang string here is never actually used */ | 2239 | LANG_ROCKBOX_TITLE, /* lang string here is never actually used */ |