summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2005-05-30 00:00:22 +0000
committerChristian Gmeiner <christian.gmeiner@gmail.com>2005-05-30 00:00:22 +0000
commit7477c09b42a02484dadbe8da700e8c18e29ffef2 (patch)
tree412177813e4dbf2d9c45b4c50cd3366139ec695a
parent4cdc7ca987d45d4d790281c21f3b7190beefaf65 (diff)
downloadrockbox-7477c09b42a02484dadbe8da700e8c18e29ffef2.zip
rockbox-7477c09b42a02484dadbe8da700e8c18e29ffef2.tar.gz
rockbox-7477c09b42a02484dadbe8da700e8c18e29ffef2.tar.bz2
rockbox-7477c09b42a02484dadbe8da700e8c18e29ffef2.tar.xz
Remote LCD: added own backlight timeout stuff
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6533 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/screens.c1
-rw-r--r--apps/settings.c11
-rw-r--r--apps/settings_menu.c32
-rw-r--r--firmware/backlight.c14
-rw-r--r--firmware/export/backlight.h6
5 files changed, 58 insertions, 6 deletions
diff --git a/apps/screens.c b/apps/screens.c
index 3c53b4e..02a4bc3 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -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);
diff --git a/apps/settings.c b/apps/settings.c
index 0780cf2..4f09f93 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -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);
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index 4323cd2..f1ef076 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -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 },
diff --git a/firmware/backlight.c b/firmware/backlight.c
index e430583..af4dfea 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -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)
diff --git a/firmware/export/backlight.h b/firmware/export/backlight.h
index 6025fba..ab1f905 100644
--- a/firmware/export/backlight.h
+++ b/firmware/export/backlight.h
@@ -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