diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-02-17 14:02:48 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-02-17 14:02:48 +0000 |
commit | 40a253d46411d7fb88483bddbfbae8c25c9bc861 (patch) | |
tree | 8d6fb05645afbc5d89b17cc9d0f54e9277c490fc /apps/settings_list.c | |
parent | 14ba91eaa9a94411457cc396a4c7c5e39e63a00a (diff) | |
download | rockbox-40a253d46411d7fb88483bddbfbae8c25c9bc861.tar.gz rockbox-40a253d46411d7fb88483bddbfbae8c25c9bc861.zip |
Convert the Display menu to the new system.
http://forums.rockbox.org/index.php?topic=8703.0 for bugs...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12351 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings_list.c')
-rw-r--r-- | apps/settings_list.c | 265 |
1 files changed, 196 insertions, 69 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c index cf77efaf6b..f07d6346b4 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include "lang.h" | 24 | #include "lang.h" |
25 | #include "talk.h" | 25 | #include "talk.h" |
26 | #include "lcd.h" | 26 | #include "lcd.h" |
27 | #include "button.h" | ||
28 | #include "backlight.h" | ||
27 | #include "settings.h" | 29 | #include "settings.h" |
28 | #include "settings_list.h" | 30 | #include "settings_list.h" |
29 | #include "sound.h" | 31 | #include "sound.h" |
@@ -33,6 +35,13 @@ | |||
33 | #include "audio.h" | 35 | #include "audio.h" |
34 | #include "power.h" | 36 | #include "power.h" |
35 | #include "powermgmt.h" | 37 | #include "powermgmt.h" |
38 | #include "kernel.h" | ||
39 | #include "lcd-remote.h" | ||
40 | #include "list.h" | ||
41 | #include "rbunicode.h" | ||
42 | #ifdef HAVE_LCD_BITMAP | ||
43 | #include "peakmeter.h" | ||
44 | #endif | ||
36 | 45 | ||
37 | /* some sets of values which are used more than once, to save memory */ | 46 | /* some sets of values which are used more than once, to save memory */ |
38 | static const char off_on[] = "off,on"; | 47 | static const char off_on[] = "off,on"; |
@@ -81,6 +90,27 @@ static const char trig_durations_conf [] = | |||
81 | #if defined(CONFIG_BACKLIGHT) | 90 | #if defined(CONFIG_BACKLIGHT) |
82 | static const char backlight_times_conf [] = | 91 | static const char backlight_times_conf [] = |
83 | "off,on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90"; | 92 | "off,on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90"; |
93 | static const int backlight_times[] = | ||
94 | {-1, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 45, 60, 90}; | ||
95 | static void backlight_formatter(char *buffer, int buffer_size, | ||
96 | int val, const char *unit) | ||
97 | { | ||
98 | (void)unit; | ||
99 | if (val == 0) | ||
100 | strcpy(buffer, str(LANG_OFF)); | ||
101 | else if (val == 1) | ||
102 | strcpy(buffer, str(LANG_ON)); | ||
103 | else | ||
104 | snprintf(buffer, buffer_size, "%d s", backlight_times[val]); | ||
105 | } | ||
106 | static long backlight_getlang(int value) | ||
107 | { | ||
108 | if (value == 0) | ||
109 | return LANG_OFF; | ||
110 | else if (value == 1) | ||
111 | return LANG_ON; | ||
112 | return TALK_ID(backlight_times[value], UNIT_SEC); | ||
113 | } | ||
84 | #endif | 114 | #endif |
85 | /* ffwd/rewind and scan acceleration stuff */ | 115 | /* ffwd/rewind and scan acceleration stuff */ |
86 | static int ff_rewind_min_stepvals[] = {1,2,3,4,5,6,8,10,15,20,25,30,45,60}; | 116 | static int ff_rewind_min_stepvals[] = {1,2,3,4,5,6,8,10,15,20,25,30,45,60}; |
@@ -267,6 +297,58 @@ static void set_superbass(bool value) | |||
267 | sound_set_superbass((int)value); | 297 | sound_set_superbass((int)value); |
268 | } | 298 | } |
269 | #endif | 299 | #endif |
300 | |||
301 | static void scrolldelay_format(char* buffer, int buffer_size, int value, | ||
302 | const char* unit) | ||
303 | { | ||
304 | (void)unit; | ||
305 | snprintf(buffer, buffer_size, "%d ms", value* (HZ/100)); | ||
306 | } | ||
307 | static long scrolldelay_getlang(int value) | ||
308 | { | ||
309 | return TALK_ID(value* (HZ/100), UNIT_MS); | ||
310 | } | ||
311 | #ifdef HAVE_LCD_CHARCELLS | ||
312 | static void jumpscroll_format(char* buffer, int buffer_size, int value, | ||
313 | const char* unit) | ||
314 | { | ||
315 | (void)unit; | ||
316 | switch (value) | ||
317 | { | ||
318 | case 0: | ||
319 | strcpy(buffer, str(LANG_OFF)); | ||
320 | break; | ||
321 | case 1: | ||
322 | strcpy(buffer, str(LANG_ONE_TIME)); | ||
323 | break; | ||
324 | case 2: | ||
325 | case 3: | ||
326 | case 4: | ||
327 | snprintf(buffer, buffer_size, "%d", value); | ||
328 | break; | ||
329 | case 5: | ||
330 | strcpy(buffer, str(LANG_ALWAYS)); | ||
331 | break; | ||
332 | } | ||
333 | } | ||
334 | static long jumpscroll_getlang(int value) | ||
335 | { | ||
336 | switch (value) | ||
337 | { | ||
338 | case 0: | ||
339 | return LANG_OFF; | ||
340 | case 1: | ||
341 | return LANG_ONE_TIME; | ||
342 | case 2: | ||
343 | case 3: | ||
344 | case 4: | ||
345 | return TALK_ID(2, UNIT_INT); | ||
346 | case 5: | ||
347 | return LANG_ALWAYS; | ||
348 | } | ||
349 | return -1; | ||
350 | } | ||
351 | #endif /* HAVE_LCD_CHARCELLS */ | ||
270 | 352 | ||
271 | const struct settings_list settings[] = { | 353 | const struct settings_list settings[] = { |
272 | /* sound settings */ | 354 | /* sound settings */ |
@@ -321,33 +403,43 @@ const struct settings_list settings[] = { | |||
321 | ), /* CHOICE_SETTING( repeat_mode ) */ | 403 | ), /* CHOICE_SETTING( repeat_mode ) */ |
322 | /* LCD */ | 404 | /* LCD */ |
323 | #ifdef HAVE_LCD_CONTRAST | 405 | #ifdef HAVE_LCD_CONTRAST |
406 | /* its easier to leave this one un-macro()ed for the time being */ | ||
324 | {F_T_INT|F_DEF_ISFUNC, &global_settings.contrast, LANG_CONTRAST, | 407 | {F_T_INT|F_DEF_ISFUNC, &global_settings.contrast, LANG_CONTRAST, |
325 | FUNCTYPE(lcd_default_contrast), | 408 | FUNCTYPE(lcd_default_contrast), |
326 | "contrast", NULL , UNUSED}, | 409 | "contrast", NULL , {.int_setting = (struct int_setting[]){ |
410 | { lcd_set_contrast, UNIT_INT, MIN_CONTRAST_SETTING, | ||
411 | MAX_CONTRAST_SETTING, 1, NULL, NULL}}}}, | ||
327 | #endif | 412 | #endif |
328 | #ifdef CONFIG_BACKLIGHT | 413 | #ifdef CONFIG_BACKLIGHT |
329 | {F_T_INT, &global_settings.backlight_timeout, LANG_BACKLIGHT, INT(6), | 414 | INT_SETTING_W_CFGVALS(0, backlight_timeout, LANG_BACKLIGHT, 6, |
330 | "backlight timeout",backlight_times_conf , UNUSED}, | 415 | "backlight timeout", backlight_times_conf, UNIT_SEC, |
416 | 0, 18, 1, backlight_formatter, backlight_getlang, | ||
417 | backlight_set_timeout), | ||
331 | #ifdef CONFIG_CHARGING | 418 | #ifdef CONFIG_CHARGING |
332 | {F_T_INT, &global_settings.backlight_timeout_plugged, LANG_BACKLIGHT_ON_WHEN_CHARGING, | 419 | INT_SETTING_W_CFGVALS(0, backlight_timeout_plugged, LANG_BACKLIGHT, 11, |
333 | INT(11), "backlight timeout plugged",backlight_times_conf , UNUSED}, | 420 | "backlight timeout plugged", backlight_times_conf, UNIT_SEC, |
421 | 0, 18, 1, backlight_formatter, backlight_getlang, | ||
422 | backlight_set_timeout_plugged), | ||
334 | #endif | 423 | #endif |
335 | #endif /* CONFIG_BACKLIGHT */ | 424 | #endif /* CONFIG_BACKLIGHT */ |
336 | #ifdef HAVE_LCD_BITMAP | 425 | #ifdef HAVE_LCD_BITMAP |
337 | OFFON_SETTING(0,invert, LANG_INVERT, false,"invert", NULL), | 426 | BOOL_SETTING(0, invert, LANG_INVERT, false ,"invert", off_on, |
427 | LANG_INVERT_LCD_INVERSE, LANG_INVERT_LCD_NORMAL, lcd_set_invert_display), | ||
338 | OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL), | 428 | OFFON_SETTING(0,flip_display, LANG_FLIP_DISPLAY, false,"flip display", NULL), |
339 | /* display */ | 429 | /* display */ |
340 | OFFON_SETTING(0,invert_cursor, LANG_INVERT_CURSOR, | 430 | BOOL_SETTING(F_TEMPVAR, invert_cursor, LANG_INVERT_CURSOR, true ,"invert cursor", off_on, |
341 | true,"invert cursor", NULL), | 431 | LANG_INVERT_CURSOR_BAR, LANG_INVERT_CURSOR_POINTER, lcd_set_invert_display), |
342 | OFFON_SETTING(F_THEMESETTING,statusbar, LANG_STATUS_BAR, true,"statusbar", NULL), | 432 | OFFON_SETTING(F_THEMESETTING,statusbar, LANG_STATUS_BAR, true,"statusbar", NULL), |
343 | OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL), | 433 | OFFON_SETTING(0,scrollbar, LANG_SCROLL_BAR, true,"scrollbar", NULL), |
344 | #if CONFIG_KEYPAD == RECORDER_PAD | 434 | #if CONFIG_KEYPAD == RECORDER_PAD |
345 | OFFON_SETTING(0,buttonbar, LANG_BUTTON_BAR ,true,"buttonbar", NULL), | 435 | OFFON_SETTING(0,buttonbar, LANG_BUTTON_BAR ,true,"buttonbar", NULL), |
346 | #endif | 436 | #endif |
347 | {F_T_INT,&global_settings.volume_type,LANG_VOLUME_DISPLAY, INT(0), | 437 | CHOICE_SETTING(0, volume_type, LANG_VOLUME_DISPLAY, 0, |
348 | "volume display",graphic_numeric,UNUSED}, | 438 | "volume display", graphic_numeric, NULL, 2, |
349 | {F_T_INT,&global_settings.battery_display, LANG_BATTERY_DISPLAY, INT(0), | 439 | ID2P(LANG_DISPLAY_GRAPHIC), ID2P(LANG_DISPLAY_NUMERIC)), |
350 | "battery display",graphic_numeric,UNUSED}, | 440 | CHOICE_SETTING(0, battery_display, LANG_BATTERY_DISPLAY, 0, |
441 | "battery display", graphic_numeric, NULL, 2, | ||
442 | ID2P(LANG_DISPLAY_GRAPHIC), ID2P(LANG_DISPLAY_NUMERIC)), | ||
351 | CHOICE_SETTING(0, timeformat, LANG_TIMEFORMAT, 0, | 443 | CHOICE_SETTING(0, timeformat, LANG_TIMEFORMAT, 0, |
352 | "time format", "24hour,12hour", NULL, 2, | 444 | "time format", "24hour,12hour", NULL, 2, |
353 | ID2P(LANG_24_HOUR_CLOCK), ID2P(LANG_12_HOUR_CLOCK)), | 445 | ID2P(LANG_24_HOUR_CLOCK), ID2P(LANG_12_HOUR_CLOCK)), |
@@ -400,19 +492,22 @@ const struct settings_list settings[] = { | |||
400 | #endif | 492 | #endif |
401 | #ifdef HAVE_REMOTE_LCD | 493 | #ifdef HAVE_REMOTE_LCD |
402 | /* remote lcd */ | 494 | /* remote lcd */ |
403 | {F_T_INT,&global_settings.remote_contrast, LANG_CONTRAST, | 495 | INT_SETTING(0, remote_contrast, LANG_CONTRAST, DEFAULT_REMOTE_CONTRAST_SETTING, |
404 | INT(DEFAULT_REMOTE_CONTRAST_SETTING), | 496 | "remote contrast", UNIT_INT, MIN_REMOTE_CONTRAST_SETTING, |
405 | "remote contrast",NULL,UNUSED}, | 497 | MIN_REMOTE_CONTRAST_SETTING, 1, NULL, NULL, lcd_remote_set_contrast), |
406 | OFFON_SETTING(0,remote_invert, LANG_INVERT, | 498 | BOOL_SETTING(0, remote_invert, LANG_INVERT, false ,"remote invert", off_on, |
407 | false,"remote invert", NULL), | 499 | LANG_INVERT_LCD_INVERSE, LANG_INVERT_LCD_NORMAL, lcd_remote_set_invert_display), |
408 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, | 500 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, |
409 | false,"remote flip display", NULL), | 501 | false,"remote flip display", NULL), |
410 | {F_T_INT,&global_settings.remote_backlight_timeout, LANG_BACKLIGHT, INT(6), | 502 | INT_SETTING_W_CFGVALS(0, remote_backlight_timeout, LANG_BACKLIGHT, 6, |
411 | "remote backlight timeout",backlight_times_conf,UNUSED}, | 503 | "remote backlight timeout", backlight_times_conf, UNIT_SEC, |
504 | 0, 18, 1, backlight_formatter, backlight_getlang, | ||
505 | remote_backlight_set_timeout), | ||
412 | #ifdef CONFIG_CHARGING | 506 | #ifdef CONFIG_CHARGING |
413 | {F_T_INT,&global_settings.remote_backlight_timeout_plugged, | 507 | INT_SETTING_W_CFGVALS(0, remote_backlight_timeout_plugged, LANG_BACKLIGHT, 11, |
414 | LANG_BACKLIGHT_ON_WHEN_CHARGING, INT(11), | 508 | "remote backlight timeout plugged", backlight_times_conf, UNIT_SEC, |
415 | "remote backlight timeout plugged",backlight_times_conf,UNUSED}, | 509 | 0, 18, 1, backlight_formatter, backlight_getlang, |
510 | remote_backlight_set_timeout_plugged), | ||
416 | #endif | 511 | #endif |
417 | #ifdef HAVE_REMOTE_LCD_TICKING | 512 | #ifdef HAVE_REMOTE_LCD_TICKING |
418 | OFFON_SETTING(0,remote_reduce_ticking, LANG_REDUCE_TICKING, | 513 | OFFON_SETTING(0,remote_reduce_ticking, LANG_REDUCE_TICKING, |
@@ -442,43 +537,53 @@ const struct settings_list settings[] = { | |||
442 | #endif | 537 | #endif |
443 | #endif /* CONFIG_BACKLIGHT */ | 538 | #endif /* CONFIG_BACKLIGHT */ |
444 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 539 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS |
445 | {F_T_INT,&global_settings.brightness,LANG_BRIGHTNESS, | 540 | INT_SETTING(0, brightness, LANG_BRIGHTNESS, DEFAULT_BRIGHTNESS_SETTING, |
446 | INT(DEFAULT_BRIGHTNESS_SETTING), "brightness", NULL ,UNUSED}, | 541 | "brightness",UNIT_INT, MIN_BRIGHTNESS_SETTING, MAX_BRIGHTNESS_SETTING, 1, |
542 | NULL, NULL, backlight_set_brightness), | ||
447 | #endif | 543 | #endif |
448 | #ifdef HAVE_BACKLIGHT_PWM_FADING | 544 | #if defined(HAVE_BACKLIGHT_PWM_FADING) && !defined(SIMULATOR) |
449 | /* backlight fading */ | 545 | /* backlight fading */ |
450 | {F_T_INT,&global_settings.backlight_fade_in, LANG_BACKLIGHT_FADE_IN, INT(1), | 546 | STRINGCHOICE_SETTING(0,backlight_fade_in, LANG_BACKLIGHT_FADE_IN, 1, |
451 | "backlight fade in","off,500ms,1s,2s",UNUSED}, | 547 | "backlight fade in","off,500ms,1s,2s", backlight_set_fade_in, 4, |
452 | {F_T_INT,&global_settings.backlight_fade_out, LANG_BACKLIGHT_FADE_OUT, INT(1), | 548 | LANG_OFF, TALK_ID(500, UNIT_MS), |
453 | "backlight fade out","off,500ms,1s,2s,3s,4s,5s,10s",UNUSED}, | 549 | TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC)), |
454 | #endif | 550 | STRINGCHOICE_SETTING(0,backlight_fade_out, LANG_BACKLIGHT_FADE_OUT, 1, |
455 | {F_T_INT,&global_settings.scroll_speed, LANG_SCROLL_SPEED , | 551 | "backlight fade out","off,500ms,1s,2s", backlight_set_fade_out, 4, |
456 | INT(9),"scroll speed",NULL,UNUSED}, | 552 | LANG_OFF, TALK_ID(500, UNIT_MS), |
457 | {F_T_INT,&global_settings.scroll_delay, LANG_SCROLL_DELAY, | 553 | TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC)), |
458 | INT(100),"scroll delay",NULL,UNUSED}, | 554 | #endif |
459 | {F_T_INT,&global_settings.bidir_limit, LANG_BIDIR_SCROLL, | 555 | INT_SETTING(0, scroll_speed, LANG_SCROLL_SPEED, 9,"scroll speed", |
460 | INT(50),"bidir limit",NULL,UNUSED}, | 556 | UNIT_INT, 0, 15, 1, NULL, NULL, lcd_scroll_speed), |
557 | INT_SETTING(0, scroll_delay, LANG_SCROLL_DELAY, 100, "scroll delay", | ||
558 | UNIT_MS, 0, 2500, 100, scrolldelay_format, | ||
559 | scrolldelay_getlang, lcd_scroll_delay) , | ||
560 | INT_SETTING(0, bidir_limit, LANG_BIDIR_SCROLL, 50, "bidir limit", | ||
561 | UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_bidir_scroll), | ||
461 | #ifdef HAVE_REMOTE_LCD | 562 | #ifdef HAVE_REMOTE_LCD |
462 | {F_T_INT,&global_settings.remote_scroll_speed,LANG_SCROLL_SPEED,INT(9), | 563 | INT_SETTING(0, remote_scroll_speed, LANG_SCROLL_SPEED, 9, "remote scroll speed", |
463 | "remote scroll speed",NULL,UNUSED}, | 564 | UNIT_INT, 0,15, 1, NULL, NULL, lcd_remote_scroll_speed), |
464 | {F_T_INT,&global_settings.remote_scroll_step,LANG_SCROLL_STEP,INT(6), | 565 | INT_SETTING(0, remote_scroll_step, LANG_SCROLL_STEP, 6, "remote scroll step", |
465 | "remote scroll step",NULL,UNUSED}, | 566 | UNIT_PIXEL, 1, LCD_REMOTE_WIDTH, 1, NULL, NULL, lcd_remote_scroll_step), |
466 | {F_T_INT,&global_settings.remote_scroll_delay,LANG_SCROLL_DELAY,INT(100), | 567 | INT_SETTING(0, remote_scroll_delay, LANG_SCROLL_DELAY, 100, "remote scroll delay", |
467 | "remote scroll delay",NULL,UNUSED}, | 568 | UNIT_MS, 0, 2500, 100, scrolldelay_format, scrolldelay_getlang, lcd_remote_scroll_delay), |
468 | {F_T_INT,&global_settings.remote_bidir_limit,LANG_BIDIR_SCROLL,INT(50), | 569 | INT_SETTING(0, remote_bidir_limit, LANG_BIDIR_SCROLL, 50, "remote bidir limit", |
469 | "remote bidir limit",NULL,UNUSED}, | 570 | UNIT_PERCENT, 0, 200, 25, NULL, NULL, lcd_remote_bidir_scroll), |
470 | #endif | 571 | #endif |
471 | #ifdef HAVE_LCD_BITMAP | 572 | #ifdef HAVE_LCD_BITMAP |
472 | OFFON_SETTING(0,offset_out_of_view,LANG_SCREEN_SCROLL_VIEW, | 573 | OFFON_SETTING(0, offset_out_of_view, LANG_SCREEN_SCROLL_VIEW, |
473 | false,"Screen Scrolls Out Of View",NULL), | 574 | false, "Screen Scrolls Out Of View", NULL), |
474 | {F_T_INT,&global_settings.scroll_step,LANG_SCROLL_STEP,INT(6),"scroll step",NULL,UNUSED}, | 575 | INT_SETTING(0, scroll_step, LANG_SCROLL_STEP, 6, "scroll step", |
475 | {F_T_INT,&global_settings.screen_scroll_step,LANG_SCREEN_SCROLL_STEP, | 576 | UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, lcd_scroll_step), |
476 | INT(16),"screen scroll step",NULL,UNUSED}, | 577 | INT_SETTING(0, screen_scroll_step, LANG_SCREEN_SCROLL_STEP, |
578 | 16, "screen scroll step", | ||
579 | UNIT_PIXEL, 1, LCD_WIDTH, 1, NULL, NULL, NULL), | ||
477 | #endif /* HAVE_LCD_BITMAP */ | 580 | #endif /* HAVE_LCD_BITMAP */ |
478 | #ifdef HAVE_LCD_CHARCELLS | 581 | #ifdef HAVE_LCD_CHARCELLS |
479 | {F_T_INT,&global_settings.jump_scroll,LANG_JUMP_SCROLL,INT(0),"jump scroll",NULL,UNUSED}, | 582 | INT_SETTING(0, jump_scroll, LANG_JUMP_SCROLL, 0, "jump scroll", |
480 | {F_T_INT,&global_settings.jump_scroll_delay,LANG_JUMP_SCROLL_DELAY, | 583 | UNIT_INT, 0, 5, 1, jumpscroll_format, jumpscroll_getlang, lcd_jump_scroll), |
481 | INT(50),"jump scroll delay",NULL,UNUSED}, | 584 | INT_SETTING(0, jump_scroll_delay, LANG_JUMP_SCROLL_DELAY, 50, "jump scroll delay", |
585 | UNIT_MS, 0, 2500, 100, scrolldelay_format, | ||
586 | scrolldelay_getlang, lcd_jump_scroll_delay), | ||
482 | #endif | 587 | #endif |
483 | OFFON_SETTING(0,scroll_paginated,LANG_SCROLL_PAGINATED, | 588 | OFFON_SETTING(0,scroll_paginated,LANG_SCROLL_PAGINATED, |
484 | false,"scroll paginated",NULL), | 589 | false,"scroll paginated",NULL), |
@@ -552,15 +657,24 @@ const struct settings_list settings[] = { | |||
552 | ID2P(LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY)), | 657 | ID2P(LANG_BOOKMARK_SETTINGS_UNIQUE_ONLY)), |
553 | #ifdef HAVE_LCD_BITMAP | 658 | #ifdef HAVE_LCD_BITMAP |
554 | /* peak meter */ | 659 | /* peak meter */ |
555 | {F_T_INT, &global_settings.peak_meter_clip_hold, LANG_PM_CLIP_HOLD, | 660 | STRINGCHOICE_SETTING(0, peak_meter_clip_hold, LANG_PM_CLIP_HOLD, 16, |
556 | INT(16), "peak meter clip hold", | 661 | "peak meter clip hold", |
557 | "on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,2min" | 662 | "on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90,2min" |
558 | ",3min,5min,10min,20min,45min,90min", UNUSED}, | 663 | ",3min,5min,10min,20min,45min,90min", peak_meter_set_clip_hold, |
664 | 25, LANG_PM_ETERNAL, | ||
665 | TALK_ID(1, UNIT_SEC), TALK_ID(2, UNIT_SEC), TALK_ID(3, UNIT_SEC), | ||
666 | TALK_ID(4, UNIT_SEC), TALK_ID(5, UNIT_SEC), TALK_ID(6, UNIT_SEC), | ||
667 | TALK_ID(7, UNIT_SEC), TALK_ID(8, UNIT_SEC), TALK_ID(9, UNIT_SEC), | ||
668 | TALK_ID(10, UNIT_SEC), TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC), | ||
669 | TALK_ID(25, UNIT_SEC), TALK_ID(30, UNIT_SEC), TALK_ID(45, UNIT_SEC), | ||
670 | TALK_ID(60, UNIT_SEC), TALK_ID(90, UNIT_SEC), TALK_ID(2, UNIT_MIN), | ||
671 | TALK_ID(3, UNIT_MIN), TALK_ID(5, UNIT_MIN), TALK_ID(10, UNIT_MIN), | ||
672 | TALK_ID(20, UNIT_MIN), TALK_ID(45, UNIT_MIN), TALK_ID(90, UNIT_MIN)), | ||
559 | {F_T_INT,&global_settings.peak_meter_hold, LANG_PM_PEAK_HOLD, | 673 | {F_T_INT,&global_settings.peak_meter_hold, LANG_PM_PEAK_HOLD, |
560 | INT(3),"peak meter hold", | 674 | INT(3),"peak meter hold", |
561 | "off,200ms,300ms,500ms,1,2,3,4,5,6,7,8,9,10,15,20,30,1min",UNUSED}, | 675 | "off,200ms,300ms,500ms,1,2,3,4,5,6,7,8,9,10,15,20,30,1min",UNUSED}, |
562 | {F_T_INT,&global_settings.peak_meter_release,LANG_PM_RELEASE, | 676 | INT_SETTING(0, peak_meter_release, LANG_PM_RELEASE, 8, "peak meter release", |
563 | INT(8),"peak meter release",NULL,UNUSED}, | 677 | LANG_PM_UNITS_PER_READ, 1, 0x7e1, 1, NULL, NULL,NULL), |
564 | OFFON_SETTING(0,peak_meter_dbfs,LANG_PM_DBFS,true,"peak meter dbfs",NULL), | 678 | OFFON_SETTING(0,peak_meter_dbfs,LANG_PM_DBFS,true,"peak meter dbfs",NULL), |
565 | {F_T_INT,&global_settings.peak_meter_min,LANG_PM_MIN,INT(60),"peak meter min",NULL,UNUSED}, | 679 | {F_T_INT,&global_settings.peak_meter_min,LANG_PM_MIN,INT(60),"peak meter min",NULL,UNUSED}, |
566 | {F_T_INT,&global_settings.peak_meter_max,LANG_PM_MAX,INT(0),"peak meter max",NULL,UNUSED}, | 680 | {F_T_INT,&global_settings.peak_meter_max,LANG_PM_MAX,INT(0),"peak meter max",NULL,UNUSED}, |
@@ -794,11 +908,18 @@ const struct settings_list settings[] = { | |||
794 | OFFON_SETTING(0,tagcache_autoupdate, | 908 | OFFON_SETTING(0,tagcache_autoupdate, |
795 | LANG_TAGCACHE_AUTOUPDATE,false,"tagcache_autoupdate",NULL), | 909 | LANG_TAGCACHE_AUTOUPDATE,false,"tagcache_autoupdate",NULL), |
796 | #endif | 910 | #endif |
797 | 911 | CHOICE_SETTING(0, default_codepage, LANG_DEFAULT_CODEPAGE, 0, | |
798 | {F_T_INT,&global_settings.default_codepage,LANG_DEFAULT_CODEPAGE, | 912 | "default codepage", |
799 | INT(0),"default codepage", | ||
800 | "iso8859-1,iso8859-7,iso8859-8,cp1251,iso8859-11,cp1256," | 913 | "iso8859-1,iso8859-7,iso8859-8,cp1251,iso8859-11,cp1256," |
801 | "iso8859-9,iso8859-2,sjis,gb2312,ksx1001,big5,utf-8,cp1256",UNUSED}, | 914 | "iso8859-9,iso8859-2,sjis,gb2312,ksx1001,big5,utf-8,cp1256", |
915 | set_codepage, 13, | ||
916 | ID2P(LANG_CODEPAGE_LATIN1), ID2P(LANG_CODEPAGE_GREEK), | ||
917 | ID2P(LANG_CODEPAGE_HEBREW), ID2P(LANG_CODEPAGE_CYRILLIC), | ||
918 | ID2P(LANG_CODEPAGE_THAI), ID2P(LANG_CODEPAGE_ARABIC), | ||
919 | ID2P(LANG_CODEPAGE_TURKISH), ID2P(LANG_CODEPAGE_LATIN_EXTENDED), | ||
920 | ID2P(LANG_CODEPAGE_JAPANESE), ID2P(LANG_CODEPAGE_SIMPLIFIED), | ||
921 | ID2P(LANG_CODEPAGE_KOREAN), | ||
922 | ID2P(LANG_CODEPAGE_TRADITIONAL), ID2P(LANG_CODEPAGE_UTF8)), | ||
802 | 923 | ||
803 | OFFON_SETTING(0,warnon_erase_dynplaylist, | 924 | OFFON_SETTING(0,warnon_erase_dynplaylist, |
804 | LANG_WARN_ERASEDYNPLAYLIST_MENU,false, | 925 | LANG_WARN_ERASEDYNPLAYLIST_MENU,false, |
@@ -806,15 +927,20 @@ const struct settings_list settings[] = { | |||
806 | 927 | ||
807 | #ifdef CONFIG_BACKLIGHT | 928 | #ifdef CONFIG_BACKLIGHT |
808 | #ifdef HAS_BUTTON_HOLD | 929 | #ifdef HAS_BUTTON_HOLD |
809 | {F_T_INT,&global_settings.backlight_on_button_hold,LANG_BACKLIGHT_ON_BUTTON_HOLD,INT(0), | 930 | CHOICE_SETTING(0, backlight_on_button_hold, |
810 | "backlight on button hold","normal,off,on",UNUSED}, | 931 | LANG_BACKLIGHT_ON_BUTTON_HOLD, 0, "backlight on button hold", |
932 | "normal,off,on", backlight_set_on_button_hold, 3, | ||
933 | ID2P(LANG_BACKLIGHT_ON_BUTTON_HOLD_NORMAL), ID2P(LANG_OFF), ID2P(LANG_ON)), | ||
811 | #endif | 934 | #endif |
812 | 935 | ||
813 | #ifdef HAVE_LCD_SLEEP | 936 | #ifdef HAVE_LCD_SLEEP |
814 | {F_T_INT,&global_settings.lcd_sleep_after_backlight_off, | 937 | STRINGCHOICE_SETTING(0, lcd_sleep_after_backlight_off, |
815 | LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF,INT(3), | 938 | LANG_LCD_SLEEP_AFTER_BACKLIGHT_OFF, 3, |
816 | "lcd sleep after backlight off", | 939 | "lcd sleep after backlight off", |
817 | "always,never,5,10,15,20,30,45,60,90",UNUSED}, | 940 | "always,never,5,10,15,20,30,45,60,90", lcd_set_sleep_after_backlight_off, |
941 | 10, LANG_ALWAYS, LANG_NEVER, TALK_ID(5, UNIT_SEC), TALK_ID(10, UNIT_SEC), | ||
942 | TALK_ID(15, UNIT_SEC), TALK_ID(20, UNIT_SEC), TALK_ID(30, UNIT_SEC), | ||
943 | TALK_ID(45, UNIT_SEC),TALK_ID(60, UNIT_SEC), TALK_ID(90, UNIT_SEC)), | ||
818 | #endif | 944 | #endif |
819 | #endif /* CONFIG_BACKLIGHT */ | 945 | #endif /* CONFIG_BACKLIGHT */ |
820 | 946 | ||
@@ -880,9 +1006,10 @@ const struct settings_list settings[] = { | |||
880 | 1006 | ||
881 | #ifdef HAVE_REMOTE_LCD | 1007 | #ifdef HAVE_REMOTE_LCD |
882 | #ifdef HAS_REMOTE_BUTTON_HOLD | 1008 | #ifdef HAS_REMOTE_BUTTON_HOLD |
883 | {F_T_INT,&global_settings.remote_backlight_on_button_hold, | 1009 | CHOICE_SETTING(0, remote_backlight_on_button_hold, |
884 | LANG_BACKLIGHT_ON_BUTTON_HOLD,INT(0), | 1010 | LANG_BACKLIGHT_ON_BUTTON_HOLD, 0, "remote backlight on button hold", |
885 | "remote backlight on button hold","normal,off,on",UNUSED}, | 1011 | "normal,off,on", remote_backlight_set_on_button_hold, 3, |
1012 | ID2P(LANG_BACKLIGHT_ON_BUTTON_HOLD_NORMAL), ID2P(LANG_OFF), ID2P(LANG_ON)), | ||
886 | #endif | 1013 | #endif |
887 | #endif | 1014 | #endif |
888 | #ifdef HAVE_HEADPHONE_DETECTION | 1015 | #ifdef HAVE_HEADPHONE_DETECTION |