Remote LCD: added own backlight timeout stuff

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6533 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Christian Gmeiner 2005-05-30 00:00:22 +00:00
parent 4cdc7ca987
commit 7477c09b42
5 changed files with 58 additions and 6 deletions

View file

@ -343,6 +343,7 @@ int charging_screen(void)
lcd_clear_display();
backlight_set_timeout(global_settings.backlight_timeout);
remote_backlight_set_timeout(global_settings.remote_backlight_timeout);
backlight_set_on_when_charging(global_settings.backlight_on_when_charging);
status_draw(true);

View file

@ -253,8 +253,10 @@ static const struct bit_entry rtc_bits[] =
#ifdef HAVE_REMOTE_LCD
/* remote lcd */
{6, S_O(remote_contrast), 42, "remote_contrast", NULL },
{1, S_O(remote_invert), false, "remote_invert", off_on },
{6, S_O(remote_contrast), 42, "remote contrast", NULL },
{1, S_O(remote_invert), false, "remote invert", off_on },
{5, S_O(remote_backlight_timeout), 5, "remote backlight timeout",
"off,on,1,2,3,4,5,6,7,8,9,10,15,20,25,30,45,60,90" },
#endif
/* Current sum of bits: 259 (worst case) */
@ -744,8 +746,9 @@ void settings_apply(void)
lcd_set_contrast(global_settings.contrast);
lcd_scroll_speed(global_settings.scroll_speed);
#ifdef HAVE_REMOTE_LCD
lcd_remote_set_contrast(global_settings.remote_contrast);
lcd_remote_set_invert_display(global_settings.remote_invert);
lcd_remote_set_contrast(global_settings.remote_contrast);
lcd_remote_set_invert_display(global_settings.remote_invert);
remote_backlight_set_timeout(global_settings.remote_backlight_timeout);
#endif
backlight_set_timeout(global_settings.backlight_timeout);
backlight_set_on_when_charging(global_settings.backlight_on_when_charging);

View file

@ -637,6 +637,37 @@ static bool backlight_timer(void)
}
#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, backlight_set_timeout );
}
#endif /* HAVE_REMOTE_LCD */
static bool poweroff_idle_timer(void)
{
static const struct opt_items names[] = {
@ -1210,6 +1241,7 @@ static bool lcd_remote_settings_menu(void)
bool result;
static const struct menu_item items[] = {
{ ID2P(LANG_BACKLIGHT), remote_backlight_timer },
{ ID2P(LANG_CONTRAST), remote_contrast },
{ ID2P(LANG_INVERT), remote_invert },
/* { ID2P(LANG_FLIP_DISPLAY), remote_flip_display },

View file

@ -53,10 +53,11 @@ static bool charger_was_inserted = 0;
static bool backlight_on_when_charging = 0;
static int backlight_timer;
static unsigned int backlight_timeout = 5;
#ifdef HAVE_REMOTE_LCD
static int remote_backlight_timer;
static unsigned int remote_backlight_timeout = 5;
#endif
static unsigned int backlight_timeout = 5;
static void __backlight_off(void)
{
@ -103,7 +104,7 @@ void backlight_thread(void)
#ifdef HAVE_REMOTE_LCD
case REMOTE_BACKLIGHT_ON:
remote_backlight_timer =
HZ*backlight_timeout_value[backlight_timeout];
HZ*backlight_timeout_value[remote_backlight_timeout];
/* Backlight == OFF in the setting? */
if(remote_backlight_timer < 0)
@ -181,6 +182,15 @@ void remote_backlight_off(void)
{
queue_post(&backlight_queue, REMOTE_BACKLIGHT_OFF, NULL);
}
void remote_backlight_set_timeout(int index)
{
if((unsigned)index >= sizeof(backlight_timeout_value))
/* if given a weird value, use 0 */
index=0;
remote_backlight_timeout = index; /* index in the backlight_timeout_value table */
remote_backlight_on();
}
#endif
int backlight_get_timeout(void)

View file

@ -19,6 +19,8 @@
#ifndef BACKLIGHT_H
#define BACKLIGHT_H
#include "config.h"
void backlight_init(void);
void backlight_on(void);
void backlight_off(void);
@ -31,4 +33,8 @@ void remote_backlight_on(void);
void remote_backlight_off(void);
extern const char backlight_timeout_value[];
#ifdef HAVE_REMOTE_LCD
void remote_backlight_set_timeout(int index);
#endif
#endif