summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2008-01-10 06:46:04 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2008-01-10 06:46:04 +0000
commit4d238c14d70199e3a991db0c3b938eb4b0f6c93a (patch)
tree9b6eb432eebb15dce7d645d13602101e7e40c695 /apps
parent6a56c14e17f6ba113ec0d4d40e75bffd61b293cc (diff)
downloadrockbox-4d238c14d70199e3a991db0c3b938eb4b0f6c93a.tar.gz
rockbox-4d238c14d70199e3a991db0c3b938eb4b0f6c93a.zip
bandaid fix for FS#8168 - statusbar would be enabled if poweroff happened while in fm screen. a proper fix is to not force the statusbar on in the fm screen, but untill that happens this is fine.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16044 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/recorder/radio.c3
-rw-r--r--apps/settings.c8
-rw-r--r--apps/settings.h5
-rw-r--r--apps/settings_list.c3
4 files changed, 18 insertions, 1 deletions
diff --git a/apps/recorder/radio.c b/apps/recorder/radio.c
index d576755ae7..0e43cc6735 100644
--- a/apps/recorder/radio.c
+++ b/apps/recorder/radio.c
@@ -462,6 +462,7 @@ int radio_screen(void)
in_screen = true;
/* always display status bar in radio screen for now */
+ global_status.statusbar_forced = statusbar?0:1;
global_settings.statusbar = true;
FOR_NB_SCREENS(i)
{
@@ -1029,7 +1030,7 @@ int radio_screen(void)
/* restore status bar settings */
global_settings.statusbar = statusbar;
-
+ global_status.statusbar_forced = 0;
in_screen = false;
#if CONFIG_CODEC != SWCODEC
return have_recorded;
diff --git a/apps/settings.c b/apps/settings.c
index 2814a6f57a..26b9434ba4 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -458,6 +458,11 @@ static bool settings_write_config(char* filename, int options)
fd = open(filename,O_CREAT|O_TRUNC|O_WRONLY);
if (fd < 0)
return false;
+#if CONFIG_TUNER
+ bool statusbar = global_settings.statusbar;
+ if (global_status.statusbar_forced != 0 && statusbar)
+ global_settings.statusbar = false;
+#endif
fdprintf(fd, "# .cfg file created by rockbox %s - "
"http://www.rockbox.org\r\n\r\n", appsversion);
for(i=0; i<nb_settings; i++)
@@ -536,6 +541,9 @@ static bool settings_write_config(char* filename, int options)
fdprintf(fd,"%s: %s\r\n",settings[i].cfg_name,value);
} /* for(...) */
close(fd);
+#if CONFIG_TUNER
+ global_settings.statusbar = statusbar;
+#endif
return true;
}
#ifndef HAVE_RTC_RAM
diff --git a/apps/settings.h b/apps/settings.h
index 3ae9ef0221..f365e16ef5 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -269,6 +269,11 @@ struct system_status
#if CONFIG_TUNER
int last_frequency; /* Last frequency for resuming, in FREQ_STEP units,
relative to MIN_FREQ */
+ int statusbar_forced; /* fix the bug where the statusbar would stay shown
+ if powered off inside the fm screen...
+ for some reason the screen doesnt use global_settings.statusbar
+ obviously a better fix is to fix the screen... so remove this
+ when that happens */
#endif
char last_screen;
int viewer_icon_count;
diff --git a/apps/settings_list.c b/apps/settings_list.c
index ef4e6be5b1..9d74514088 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1175,6 +1175,9 @@ const struct settings_list settings[] = {
3, "list_accel_wait", UNIT_SEC, 1, 10, 1,
scanaccel_formatter, getlang_unit_0_is_off, NULL),
#endif /* HAVE_SCROLLWHEEL */
+#if CONFIG_TUNER
+ SYSTEM_SETTING(0, statusbar_forced, 0),
+#endif
};
const int nb_settings = sizeof(settings)/sizeof(*settings);