summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-06-20 17:03:09 +0000
committerJens Arnold <amiconn@rockbox.org>2005-06-20 17:03:09 +0000
commit61b9d34c7cefd77e07d2553412e33c36bcae4965 (patch)
tree9c34237200ea7a992b150caec535e2d97b1a13e0 /apps
parent3e88b58f6c68c740e9c1ec9ee0ef85f531269310 (diff)
downloadrockbox-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.lang12
-rw-r--r--apps/lang/english.lang12
-rw-r--r--apps/plugin.c3
-rw-r--r--apps/settings.c13
-rw-r--r--apps/settings.h4
-rw-r--r--apps/settings_menu.c220
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