diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2005-06-20 17:03:09 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2005-06-20 17:03:09 +0000 |
| commit | 61b9d34c7cefd77e07d2553412e33c36bcae4965 (patch) | |
| tree | 9c34237200ea7a992b150caec535e2d97b1a13e0 /apps | |
| parent | 3e88b58f6c68c740e9c1ec9ee0ef85f531269310 (diff) | |
| download | rockbox-61b9d34c7cefd77e07d2553412e33c36bcae4965.zip rockbox-61b9d34c7cefd77e07d2553412e33c36bcae4965.tar.gz rockbox-61b9d34c7cefd77e07d2553412e33c36bcae4965.tar.bz2 rockbox-61b9d34c7cefd77e07d2553412e33c36bcae4965.tar.xz | |
Iriver: Backlight fading is now configurable. Added a function to stop the backlight from using timer1, freeing it for usage in plugins. Grouped together some related settings functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6779 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/lang/deutsch.lang | 12 | ||||
| -rw-r--r-- | apps/lang/english.lang | 12 | ||||
| -rw-r--r-- | apps/plugin.c | 3 | ||||
| -rw-r--r-- | apps/settings.c | 13 | ||||
| -rw-r--r-- | apps/settings.h | 4 | ||||
| -rw-r--r-- | apps/settings_menu.c | 220 |
6 files changed, 170 insertions, 94 deletions
diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang index c721c3c..4fbee51 100644 --- a/apps/lang/deutsch.lang +++ b/apps/lang/deutsch.lang @@ -3099,3 +3099,15 @@ desc: in playback settings eng: "Crossfade" voice: "Überblenden" new: "Überblenden" + +id: LANG_BACKLIGHT_FADE_IN +desc: in settings_menu +eng: "Backlight fade in" +voice: "Beleuchtung einblenden" +new: "Beleuchtung einblenden" + +id: LANG_BACKLIGHT_FADE_OUT +desc: in settings_menu +eng: "Backlight fade out" +voice: "Beleuchtung ausblenden" +new: "Beleuchtung ausblenden" diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 2c54a9c..4549d6c 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -3093,3 +3093,15 @@ desc: in playback settings eng: "Crossfade" voice: "Crossfade" new: + +id: LANG_BACKLIGHT_FADE_IN +desc: in settings_menu +eng: "Backlight fade in" +voice: "Backlight fade in" +new: + +id: LANG_BACKLIGHT_FADE_OUT +desc: in settings_menu +eng: "Backlight fade out" +voice: "Backlight fade out" +new: diff --git a/apps/plugin.c b/apps/plugin.c index a44482d..726a518 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -547,6 +547,8 @@ int plugin_register_timer(int cycles, int prio, void (*timer_callback)(void)) if (prescale > 8 || cycles == 0 || prio < 1 || prio > 15) return 0; /* error, we can't do such period, bad argument */ + + backlight_allow_timer(false); /* stop backlight from messing with the timer */ #if CONFIG_CPU == SH7034 and_b(~0x10, &TSTR); /* Stop the timer 4 */ and_b(~0x10, &TSNC); /* No synchronization */ @@ -575,6 +577,7 @@ void plugin_unregister_timer(void) IPRD = (IPRD & 0xFF0F); /* disable interrupt */ pfn_timer = NULL; #endif + backlight_allow_timer(true); } #if CONFIG_CPU == SH7034 diff --git a/apps/settings.c b/apps/settings.c index 6588a6e..c462ea0 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -393,7 +393,14 @@ static const struct bit_entry hd_bits[] = #if CONFIG_HWCODEC == MASNONE {1, S_O(crossfade), false, "crossfade", off_on}, #endif - + +#if CONFIG_BACKLIGHT == BL_IRIVER + /* backlight fading */ + {2, S_O(backlight_fade_in), 1, "backlight fade in", "off,500ms,1s,2s"}, + {3, S_O(backlight_fade_out), 3, "backlight fade out", + "off,500ms,1s,2s,3s,4s,5s,10s"}, +#endif + /* new stuff to be added at the end */ /* Sum of all bit sizes must not grow beyond 0xB8*8 = 1472 */ @@ -765,6 +772,10 @@ void settings_apply(void) #endif backlight_set_timeout(global_settings.backlight_timeout); backlight_set_on_when_charging(global_settings.backlight_on_when_charging); +#if CONFIG_BACKLIGHT == BL_IRIVER + backlight_set_fade_in(global_settings.backlight_fade_in); + backlight_set_fade_out(global_settings.backlight_fade_out); +#endif ata_spindown(global_settings.disk_spindown); #if CONFIG_HWCODEC == MAS3507D dac_line_in(global_settings.line_in); diff --git a/apps/settings.h b/apps/settings.h index 2d4017c..7e0be44 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -202,6 +202,10 @@ struct user_settings 1=always, then according to timeout_values[] */ bool backlight_on_when_charging; +#if CONFIG_BACKLIGHT == BL_IRIVER + int backlight_fade_in; /* backlight fade in timing: 0..3 */ + int backlight_fade_out; /* backlight fade in timing: 0..7 */ +#endif int battery_capacity; /* in mAh */ int battery_type; /* for units which can take multiple types (Ondio). */ diff --git a/apps/settings_menu.c b/apps/settings_menu.c index d8f440c..efca1a8 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c @@ -75,12 +75,12 @@ static bool car_adapter_mode(void) } #endif -static bool contrast(void) +/** + * Menu to set icon visibility + */ +static bool show_icons(void) { - return set_int( str(LANG_CONTRAST), "", UNIT_INT, - &global_settings.contrast, - lcd_set_contrast, 1, MIN_CONTRAST_SETTING, - MAX_CONTRAST_SETTING ); + return set_bool( str(LANG_SHOW_ICONS), &global_settings.show_icons ); } #ifdef HAVE_REMOTE_LCD @@ -122,14 +122,114 @@ static bool caption_backlight(void) return rc; } + +#ifdef HAVE_CHARGING +static bool backlight_on_when_charging(void) +{ + bool result = set_bool(str(LANG_BACKLIGHT_ON_WHEN_CHARGING), + &global_settings.backlight_on_when_charging); + backlight_set_on_when_charging(global_settings.backlight_on_when_charging); + return result; +} #endif -/** - * Menu to set icon visibility - */ -static bool show_icons(void) +static bool backlight_timer(void) { - return set_bool( str(LANG_SHOW_ICONS), &global_settings.show_icons ); + static const struct opt_items names[] = { + { STR(LANG_OFF) }, + { STR(LANG_ON) }, + { "1s ", TALK_ID(1, UNIT_SEC) }, + { "2s ", TALK_ID(2, UNIT_SEC) }, + { "3s ", TALK_ID(3, UNIT_SEC) }, + { "4s ", TALK_ID(4, UNIT_SEC) }, + { "5s ", TALK_ID(5, UNIT_SEC) }, + { "6s ", TALK_ID(6, UNIT_SEC) }, + { "7s ", TALK_ID(7, UNIT_SEC) }, + { "8s ", TALK_ID(8, UNIT_SEC) }, + { "9s ", TALK_ID(9, UNIT_SEC) }, + { "10s", TALK_ID(10, UNIT_SEC) }, + { "15s", TALK_ID(15, UNIT_SEC) }, + { "20s", TALK_ID(20, UNIT_SEC) }, + { "25s", TALK_ID(25, UNIT_SEC) }, + { "30s", TALK_ID(30, UNIT_SEC) }, + { "45s", TALK_ID(45, UNIT_SEC) }, + { "60s", TALK_ID(60, UNIT_SEC) }, + { "90s", TALK_ID(90, UNIT_SEC) } + }; + return set_option(str(LANG_BACKLIGHT), &global_settings.backlight_timeout, + INT, names, 19, backlight_set_timeout ); +} + +#if CONFIG_BACKLIGHT == BL_IRIVER +static bool backlight_fade_in(void) +{ + static const struct opt_items names[] = { + { STR(LANG_OFF) }, + { "500ms", TALK_ID(500, UNIT_MS) }, + { "1s", TALK_ID(1, UNIT_SEC) }, + { "2s", TALK_ID(2, UNIT_SEC) }, + }; + return set_option(str(LANG_BACKLIGHT_FADE_IN), + &global_settings.backlight_fade_in, + INT, names, 4, backlight_set_fade_in ); +} + +static bool backlight_fade_out(void) +{ + static const struct opt_items names[] = { + { STR(LANG_OFF) }, + { "500ms", TALK_ID(500, UNIT_MS) }, + { "1s", TALK_ID(1, UNIT_SEC) }, + { "2s", TALK_ID(2, UNIT_SEC) }, + { "3s", TALK_ID(3, UNIT_SEC) }, + { "4s", TALK_ID(4, UNIT_SEC) }, + { "5s", TALK_ID(5, UNIT_SEC) }, + { "10s", TALK_ID(10, UNIT_SEC) }, + }; + return set_option(str(LANG_BACKLIGHT_FADE_OUT), + &global_settings.backlight_fade_out, + INT, names, 8, backlight_set_fade_out ); +} +#endif +#endif /* CONFIG_BACKLIGHT */ + +#ifdef HAVE_REMOTE_LCD + +static bool remote_backlight_timer(void) +{ + static const struct opt_items names[] = { + { STR(LANG_OFF) }, + { STR(LANG_ON) }, + { "1s ", TALK_ID(1, UNIT_SEC) }, + { "2s ", TALK_ID(2, UNIT_SEC) }, + { "3s ", TALK_ID(3, UNIT_SEC) }, + { "4s ", TALK_ID(4, UNIT_SEC) }, + { "5s ", TALK_ID(5, UNIT_SEC) }, + { "6s ", TALK_ID(6, UNIT_SEC) }, + { "7s ", TALK_ID(7, UNIT_SEC) }, + { "8s ", TALK_ID(8, UNIT_SEC) }, + { "9s ", TALK_ID(9, UNIT_SEC) }, + { "10s", TALK_ID(10, UNIT_SEC) }, + { "15s", TALK_ID(15, UNIT_SEC) }, + { "20s", TALK_ID(20, UNIT_SEC) }, + { "25s", TALK_ID(25, UNIT_SEC) }, + { "30s", TALK_ID(30, UNIT_SEC) }, + { "45s", TALK_ID(45, UNIT_SEC) }, + { "60s", TALK_ID(60, UNIT_SEC) }, + { "90s", TALK_ID(90, UNIT_SEC) } + }; + return set_option(str(LANG_BACKLIGHT), &global_settings.remote_backlight_timeout, + INT, names, 19, remote_backlight_set_timeout ); +} + +#endif /* HAVE_REMOTE_LCD */ + +static bool contrast(void) +{ + return set_int( str(LANG_CONTRAST), "", UNIT_INT, + &global_settings.contrast, + lcd_set_contrast, 1, MIN_CONTRAST_SETTING, + MAX_CONTRAST_SETTING ); } #ifdef HAVE_LCD_BITMAP @@ -148,25 +248,13 @@ static bool invert(void) } /** - * Menu to set Line Selector Type (Pointer/Bar) - */ -static bool invert_cursor(void) -{ - return set_bool_options(str(LANG_INVERT_CURSOR), - &global_settings.invert_cursor, - STR(LANG_INVERT_CURSOR_BAR), - STR(LANG_INVERT_CURSOR_POINTER), - NULL); -} - -/** * Menu to turn the display+buttons by 180 degrees */ static bool flip_display(void) { bool rc = set_bool( str(LANG_FLIP_DISPLAY), &global_settings.flip_display); - + button_set_flip(global_settings.flip_display); lcd_set_flip(global_settings.flip_display); @@ -174,6 +262,18 @@ static bool flip_display(void) } /** + * Menu to set Line Selector Type (Pointer/Bar) + */ +static bool invert_cursor(void) +{ + return set_bool_options(str(LANG_INVERT_CURSOR), + &global_settings.invert_cursor, + STR(LANG_INVERT_CURSOR_BAR), + STR(LANG_INVERT_CURSOR_POINTER), + NULL); +} + +/** * Menu to configure the battery display on status bar */ static bool battery_display(void) @@ -613,76 +713,6 @@ static bool useMRB(void) names, 3, NULL ); } -#ifdef CONFIG_BACKLIGHT -#ifdef HAVE_CHARGING -static bool backlight_on_when_charging(void) -{ - bool result = set_bool(str(LANG_BACKLIGHT_ON_WHEN_CHARGING), - &global_settings.backlight_on_when_charging); - backlight_set_on_when_charging(global_settings.backlight_on_when_charging); - return result; -} -#endif - -static bool backlight_timer(void) -{ - static const struct opt_items names[] = { - { STR(LANG_OFF) }, - { STR(LANG_ON) }, - { "1s ", TALK_ID(1, UNIT_SEC) }, - { "2s ", TALK_ID(2, UNIT_SEC) }, - { "3s ", TALK_ID(3, UNIT_SEC) }, - { "4s ", TALK_ID(4, UNIT_SEC) }, - { "5s ", TALK_ID(5, UNIT_SEC) }, - { "6s ", TALK_ID(6, UNIT_SEC) }, - { "7s ", TALK_ID(7, UNIT_SEC) }, - { "8s ", TALK_ID(8, UNIT_SEC) }, - { "9s ", TALK_ID(9, UNIT_SEC) }, - { "10s", TALK_ID(10, UNIT_SEC) }, - { "15s", TALK_ID(15, UNIT_SEC) }, - { "20s", TALK_ID(20, UNIT_SEC) }, - { "25s", TALK_ID(25, UNIT_SEC) }, - { "30s", TALK_ID(30, UNIT_SEC) }, - { "45s", TALK_ID(45, UNIT_SEC) }, - { "60s", TALK_ID(60, UNIT_SEC) }, - { "90s", TALK_ID(90, UNIT_SEC) } - }; - return set_option(str(LANG_BACKLIGHT), &global_settings.backlight_timeout, - INT, names, 19, backlight_set_timeout ); -} -#endif /* CONFIG_BACKLIGHT */ - -#ifdef HAVE_REMOTE_LCD - -static bool remote_backlight_timer(void) -{ - static const struct opt_items names[] = { - { STR(LANG_OFF) }, - { STR(LANG_ON) }, - { "1s ", TALK_ID(1, UNIT_SEC) }, - { "2s ", TALK_ID(2, UNIT_SEC) }, - { "3s ", TALK_ID(3, UNIT_SEC) }, - { "4s ", TALK_ID(4, UNIT_SEC) }, - { "5s ", TALK_ID(5, UNIT_SEC) }, - { "6s ", TALK_ID(6, UNIT_SEC) }, - { "7s ", TALK_ID(7, UNIT_SEC) }, - { "8s ", TALK_ID(8, UNIT_SEC) }, - { "9s ", TALK_ID(9, UNIT_SEC) }, - { "10s", TALK_ID(10, UNIT_SEC) }, - { "15s", TALK_ID(15, UNIT_SEC) }, - { "20s", TALK_ID(20, UNIT_SEC) }, - { "25s", TALK_ID(25, UNIT_SEC) }, - { "30s", TALK_ID(30, UNIT_SEC) }, - { "45s", TALK_ID(45, UNIT_SEC) }, - { "60s", TALK_ID(60, UNIT_SEC) }, - { "90s", TALK_ID(90, UNIT_SEC) } - }; - return set_option(str(LANG_BACKLIGHT), &global_settings.remote_backlight_timeout, - INT, names, 19, remote_backlight_set_timeout ); -} - -#endif /* HAVE_REMOTE_LCD */ - static bool poweroff_idle_timer(void) { static const struct opt_items names[] = { @@ -1247,6 +1277,10 @@ static bool lcd_settings_menu(void) { ID2P(LANG_BACKLIGHT_ON_WHEN_CHARGING), backlight_on_when_charging }, #endif { ID2P(LANG_CAPTION_BACKLIGHT), caption_backlight }, +#if CONFIG_BACKLIGHT == BL_IRIVER + { ID2P(LANG_BACKLIGHT_FADE_IN), backlight_fade_in }, + { ID2P(LANG_BACKLIGHT_FADE_OUT), backlight_fade_out }, +#endif #endif /* CONFIG_BACKLIGHT */ { ID2P(LANG_CONTRAST), contrast }, #ifdef HAVE_LCD_BITMAP |