diff options
-rw-r--r-- | apps/gui/option_select.c | 48 | ||||
-rw-r--r-- | apps/settings_list.c | 32 | ||||
-rw-r--r-- | apps/settings_list.h | 3 |
3 files changed, 33 insertions, 50 deletions
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c index 7550b8b7d4..6092a63da6 100644 --- a/apps/gui/option_select.c +++ b/apps/gui/option_select.c | |||
@@ -32,6 +32,16 @@ | |||
32 | #include "misc.h" | 32 | #include "misc.h" |
33 | #include "splash.h" | 33 | #include "splash.h" |
34 | 34 | ||
35 | #if defined (HAVE_SCROLLWHEEL) || \ | ||
36 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | ||
37 | (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | ||
38 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) || \ | ||
39 | (CONFIG_KEYPAD == PLAYER_PAD) | ||
40 | /* Define this if your target makes sense to have | ||
41 | smaller values at the top of the list increasing down the list */ | ||
42 | #define ASCENDING_INT_SETTINGS | ||
43 | #endif | ||
44 | |||
35 | static const char *unit_strings[] = | 45 | static const char *unit_strings[] = |
36 | { | 46 | { |
37 | [UNIT_INT] = "", [UNIT_MS] = "ms", | 47 | [UNIT_INT] = "", [UNIT_MS] = "ms", |
@@ -249,14 +259,20 @@ static int selection_to_val(struct settings_list *setting, int selection) | |||
249 | else if ((setting->flags & F_T_SOUND) == F_T_SOUND) | 259 | else if ((setting->flags & F_T_SOUND) == F_T_SOUND) |
250 | { | 260 | { |
251 | int setting_id = setting->sound_setting->setting; | 261 | int setting_id = setting->sound_setting->setting; |
262 | #ifndef ASCENDING_INT_SETTINGS | ||
252 | step = sound_steps(setting_id); | 263 | step = sound_steps(setting_id); |
253 | max = sound_max(setting_id); | 264 | max = sound_max(setting_id); |
254 | min = sound_min(setting_id); | 265 | min = sound_min(setting_id); |
266 | #else | ||
267 | step = -sound_steps(setting_id); | ||
268 | min = sound_max(setting_id); | ||
269 | max = sound_min(setting_id); | ||
270 | #endif | ||
255 | } | 271 | } |
256 | else if ((setting->flags & F_INT_SETTING) == F_INT_SETTING) | 272 | else if ((setting->flags & F_INT_SETTING) == F_INT_SETTING) |
257 | { | 273 | { |
258 | struct int_setting *info = setting->int_setting; | 274 | struct int_setting *info = setting->int_setting; |
259 | #if CONFIG_KEYPAD != PLAYER_PAD | 275 | #ifndef ASCENDING_INT_SETTINGS |
260 | min = info->min; | 276 | min = info->min; |
261 | max = info->max; | 277 | max = info->max; |
262 | step = info->step; | 278 | step = info->step; |
@@ -266,12 +282,6 @@ static int selection_to_val(struct settings_list *setting, int selection) | |||
266 | step = -info->step; | 282 | step = -info->step; |
267 | #endif | 283 | #endif |
268 | } | 284 | } |
269 | if (setting->flags & F_FLIPLIST) | ||
270 | { | ||
271 | int a; | ||
272 | a = min; min = max; max = a; | ||
273 | step = -step; | ||
274 | } | ||
275 | return max- (selection * step); | 285 | return max- (selection * step); |
276 | } | 286 | } |
277 | static char * value_setting_get_name_cb(int selected_item, | 287 | static char * value_setting_get_name_cb(int selected_item, |
@@ -342,32 +352,16 @@ bool option_screen(struct settings_list *setting, | |||
342 | int min = sound_min(setting_id); | 352 | int min = sound_min(setting_id); |
343 | int max = sound_max(setting_id); | 353 | int max = sound_max(setting_id); |
344 | nb_items = (max-min)/steps + 1; | 354 | nb_items = (max-min)/steps + 1; |
345 | if (setting->flags&F_FLIPLIST) | 355 | selected = (max - oldvalue) / steps; |
346 | { | ||
347 | selected = (oldvalue - min) / steps; | ||
348 | } | ||
349 | else | ||
350 | { | ||
351 | selected = (max - oldvalue) / steps; | ||
352 | } | ||
353 | function = sound_get_fn(setting_id); | 356 | function = sound_get_fn(setting_id); |
354 | } | 357 | } |
355 | else | 358 | else |
356 | { | 359 | { |
357 | struct int_setting *info = setting->int_setting; | 360 | struct int_setting *info = setting->int_setting; |
358 | int min, max, step; | 361 | int min, max, step; |
359 | if (setting->flags&F_FLIPLIST) | 362 | max = info->max; |
360 | { | 363 | min = info->min; |
361 | min = info->max; | 364 | step = info->step; |
362 | max = info->min; | ||
363 | step = -info->step; | ||
364 | } | ||
365 | else | ||
366 | { | ||
367 | max = info->max; | ||
368 | min = info->min; | ||
369 | step = info->step; | ||
370 | } | ||
371 | nb_items = (max-min)/step + 1; | 365 | nb_items = (max-min)/step + 1; |
372 | selected = (max - oldvalue)/step; | 366 | selected = (max - oldvalue)/step; |
373 | function = info->option_callback; | 367 | function = info->option_callback; |
diff --git a/apps/settings_list.c b/apps/settings_list.c index d19c0360ed..d54dff9305 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -371,23 +371,13 @@ static long jumpscroll_getlang(int value) | |||
371 | } | 371 | } |
372 | #endif /* HAVE_LCD_CHARCELLS */ | 372 | #endif /* HAVE_LCD_CHARCELLS */ |
373 | 373 | ||
374 | #if defined (HAVE_SCROLLWHEEL) || \ | ||
375 | (CONFIG_KEYPAD == IPOD_3G_PAD) || \ | ||
376 | (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | ||
377 | (CONFIG_KEYPAD == IPOD_1G2G_PAD) || \ | ||
378 | (CONFIG_KEYPAD == PLAYER_PAD) /* player doesnt have a wheel, \ | ||
379 | but acts the same way */ | ||
380 | #define FLIP_IF_WHEEL F_FLIPLIST | ||
381 | #else | ||
382 | #define FLIP_IF_WHEEL 0 | ||
383 | #endif | ||
384 | 374 | ||
385 | const struct settings_list settings[] = { | 375 | const struct settings_list settings[] = { |
386 | /* sound settings */ | 376 | /* sound settings */ |
387 | SOUND_SETTING(FLIP_IF_WHEEL | F_NO_WRAP,volume, LANG_VOLUME, "volume", SOUND_VOLUME), | 377 | SOUND_SETTING(F_NO_WRAP,volume, LANG_VOLUME, "volume", SOUND_VOLUME), |
388 | SOUND_SETTING(FLIP_IF_WHEEL, balance, LANG_BALANCE, "balance", SOUND_BALANCE), | 378 | SOUND_SETTING(0, balance, LANG_BALANCE, "balance", SOUND_BALANCE), |
389 | SOUND_SETTING(FLIP_IF_WHEEL | F_NO_WRAP,bass, LANG_BASS, "bass", SOUND_BASS), | 379 | SOUND_SETTING(F_NO_WRAP,bass, LANG_BASS, "bass", SOUND_BASS), |
390 | SOUND_SETTING(FLIP_IF_WHEEL | F_NO_WRAP,treble, LANG_TREBLE, "treble", SOUND_TREBLE), | 380 | SOUND_SETTING(F_NO_WRAP,treble, LANG_TREBLE, "treble", SOUND_TREBLE), |
391 | 381 | ||
392 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 382 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
393 | SOUND_SETTING(0,loudness, LANG_LOUDNESS, "loudness", SOUND_LOUDNESS), | 383 | SOUND_SETTING(0,loudness, LANG_LOUDNESS, "loudness", SOUND_LOUDNESS), |
@@ -438,12 +428,12 @@ const struct settings_list settings[] = { | |||
438 | MAX_CONTRAST_SETTING, 1, NULL, NULL}}}}, | 428 | MAX_CONTRAST_SETTING, 1, NULL, NULL}}}}, |
439 | #endif | 429 | #endif |
440 | #ifdef HAVE_BACKLIGHT | 430 | #ifdef HAVE_BACKLIGHT |
441 | INT_SETTING_W_CFGVALS(F_FLIPLIST, backlight_timeout, LANG_BACKLIGHT, 6, | 431 | INT_SETTING_W_CFGVALS(0, backlight_timeout, LANG_BACKLIGHT, 6, |
442 | "backlight timeout", backlight_times_conf, UNIT_SEC, | 432 | "backlight timeout", backlight_times_conf, UNIT_SEC, |
443 | 0, 18, 1, backlight_formatter, backlight_getlang, | 433 | 0, 18, 1, backlight_formatter, backlight_getlang, |
444 | backlight_set_timeout), | 434 | backlight_set_timeout), |
445 | #if CONFIG_CHARGING | 435 | #if CONFIG_CHARGING |
446 | INT_SETTING_W_CFGVALS(F_FLIPLIST, backlight_timeout_plugged, | 436 | INT_SETTING_W_CFGVALS(0, backlight_timeout_plugged, |
447 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 11, | 437 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 11, |
448 | "backlight timeout plugged", backlight_times_conf, UNIT_SEC, | 438 | "backlight timeout plugged", backlight_times_conf, UNIT_SEC, |
449 | 0, 18, 1, backlight_formatter, backlight_getlang, | 439 | 0, 18, 1, backlight_formatter, backlight_getlang, |
@@ -489,7 +479,7 @@ const struct settings_list settings[] = { | |||
489 | #endif /* HAVE_LCD_BITMAP */ | 479 | #endif /* HAVE_LCD_BITMAP */ |
490 | OFFON_SETTING(0,show_icons, LANG_SHOW_ICONS ,true,"show icons", NULL), | 480 | OFFON_SETTING(0,show_icons, LANG_SHOW_ICONS ,true,"show icons", NULL), |
491 | /* system */ | 481 | /* system */ |
492 | INT_SETTING_W_CFGVALS(F_FLIPLIST, poweroff, LANG_POWEROFF_IDLE, 10, "idle poweroff", | 482 | INT_SETTING_W_CFGVALS(0, poweroff, LANG_POWEROFF_IDLE, 10, "idle poweroff", |
493 | "off,1,2,3,4,5,6,7,8,9,10,15,30,45,60", UNIT_MIN, | 483 | "off,1,2,3,4,5,6,7,8,9,10,15,30,45,60", UNIT_MIN, |
494 | 0, 14, 1, poweroff_idle_timer_formatter, | 484 | 0, 14, 1, poweroff_idle_timer_formatter, |
495 | poweroff_idle_timer_getlang, set_poweroff_timeout), | 485 | poweroff_idle_timer_getlang, set_poweroff_timeout), |
@@ -541,12 +531,12 @@ const struct settings_list settings[] = { | |||
541 | LANG_INVERT_LCD_INVERSE, LANG_NORMAL, lcd_remote_set_invert_display), | 531 | LANG_INVERT_LCD_INVERSE, LANG_NORMAL, lcd_remote_set_invert_display), |
542 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, | 532 | OFFON_SETTING(0,remote_flip_display, LANG_FLIP_DISPLAY, |
543 | false,"remote flip display", NULL), | 533 | false,"remote flip display", NULL), |
544 | INT_SETTING_W_CFGVALS(F_FLIPLIST, remote_backlight_timeout, LANG_BACKLIGHT, 6, | 534 | INT_SETTING_W_CFGVALS(0, remote_backlight_timeout, LANG_BACKLIGHT, 6, |
545 | "remote backlight timeout", backlight_times_conf, UNIT_SEC, | 535 | "remote backlight timeout", backlight_times_conf, UNIT_SEC, |
546 | 0, 18, 1, backlight_formatter, backlight_getlang, | 536 | 0, 18, 1, backlight_formatter, backlight_getlang, |
547 | remote_backlight_set_timeout), | 537 | remote_backlight_set_timeout), |
548 | #if CONFIG_CHARGING | 538 | #if CONFIG_CHARGING |
549 | INT_SETTING_W_CFGVALS(F_FLIPLIST, remote_backlight_timeout_plugged, | 539 | INT_SETTING_W_CFGVALS(0, remote_backlight_timeout_plugged, |
550 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 11, | 540 | LANG_BACKLIGHT_ON_WHEN_CHARGING, 11, |
551 | "remote backlight timeout plugged", backlight_times_conf, UNIT_SEC, | 541 | "remote backlight timeout plugged", backlight_times_conf, UNIT_SEC, |
552 | 0, 18, 1, backlight_formatter, backlight_getlang, | 542 | 0, 18, 1, backlight_formatter, backlight_getlang, |
@@ -646,7 +636,7 @@ const struct settings_list settings[] = { | |||
646 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), | 636 | OFFON_SETTING(0,play_selected,LANG_PLAY_SELECTED,true,"play selected",NULL), |
647 | OFFON_SETTING(0,party_mode,LANG_PARTY_MODE,false,"party mode",NULL), | 637 | OFFON_SETTING(0,party_mode,LANG_PARTY_MODE,false,"party mode",NULL), |
648 | OFFON_SETTING(0,fade_on_stop,LANG_FADE_ON_STOP,true,"volume fade",NULL), | 638 | OFFON_SETTING(0,fade_on_stop,LANG_FADE_ON_STOP,true,"volume fade",NULL), |
649 | INT_SETTING_W_CFGVALS(F_FLIPLIST, ff_rewind_min_step, LANG_FFRW_STEP, FF_REWIND_1000, | 639 | INT_SETTING_W_CFGVALS(0, ff_rewind_min_step, LANG_FFRW_STEP, FF_REWIND_1000, |
650 | "scan min step", "1,2,3,4,5,6,8,10,15,20,25,30,45,60", UNIT_SEC, | 640 | "scan min step", "1,2,3,4,5,6,8,10,15,20,25,30,45,60", UNIT_SEC, |
651 | 13, 0, -1, ff_rewind_min_step_formatter, | 641 | 13, 0, -1, ff_rewind_min_step_formatter, |
652 | ff_rewind_min_step_getlang, NULL), | 642 | ff_rewind_min_step_getlang, NULL), |
@@ -1256,7 +1246,7 @@ const struct settings_list settings[] = { | |||
1256 | THEME_DIR "/", ".colours", MAX_FILENAME+1), | 1246 | THEME_DIR "/", ".colours", MAX_FILENAME+1), |
1257 | #endif | 1247 | #endif |
1258 | #ifdef HAVE_BUTTON_LIGHT | 1248 | #ifdef HAVE_BUTTON_LIGHT |
1259 | INT_SETTING_W_CFGVALS(F_FLIPLIST, buttonlight_timeout, | 1249 | INT_SETTING_W_CFGVALS(0, buttonlight_timeout, |
1260 | LANG_BUTTONLIGHT_TIMEOUT, 6, | 1250 | LANG_BUTTONLIGHT_TIMEOUT, 6, |
1261 | "button light timeout", backlight_times_conf, UNIT_SEC, | 1251 | "button light timeout", backlight_times_conf, UNIT_SEC, |
1262 | 0, 18, 1, backlight_formatter, backlight_getlang, | 1252 | 0, 18, 1, backlight_formatter, backlight_getlang, |
diff --git a/apps/settings_list.h b/apps/settings_list.h index 05da5e8b20..0859b440e1 100644 --- a/apps/settings_list.h +++ b/apps/settings_list.h | |||
@@ -103,11 +103,10 @@ struct choice_setting { | |||
103 | - a NVRAM setting is removed | 103 | - a NVRAM setting is removed |
104 | */ | 104 | */ |
105 | #define F_TEMPVAR 0x0400 /* used if the setting should be set using a temp var */ | 105 | #define F_TEMPVAR 0x0400 /* used if the setting should be set using a temp var */ |
106 | #define F_FLIPLIST 0x0800 /* used if the order in the setting screen is backwards */ | ||
107 | #define F_NO_WRAP 0x1000 /* used if the list should not wrap */ | 106 | #define F_NO_WRAP 0x1000 /* used if the list should not wrap */ |
108 | 107 | ||
109 | struct settings_list { | 108 | struct settings_list { |
110 | uint32_t flags; /* ____ ___R TFFF ____ NNN_ FTVC IFRB STTT */ | 109 | uint32_t flags; /* ____ ___R TFFF ____ NNN_ _TVC IFRB STTT */ |
111 | void *setting; | 110 | void *setting; |
112 | int lang_id; /* -1 for none */ | 111 | int lang_id; /* -1 for none */ |
113 | union storage_type default_val; | 112 | union storage_type default_val; |