1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Jens Arnold 2005-06-20 17:03:09 +00:00
parent 3e88b58f6c
commit 61b9d34c7c
8 changed files with 245 additions and 228 deletions

View file

@ -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"

View file

@ -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:

View file

@ -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

View file

@ -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);

View file

@ -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). */

View file

@ -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
@ -147,6 +247,20 @@ static bool invert(void)
return rc;
}
/**
* 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);
return rc;
}
/**
* Menu to set Line Selector Type (Pointer/Bar)
*/
@ -159,20 +273,6 @@ static bool invert_cursor(void)
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);
return rc;
}
/**
* Menu to configure the battery display on status bar
*/
@ -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