diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2008-01-10 06:46:04 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2008-01-10 06:46:04 +0000 |
commit | 4d238c14d70199e3a991db0c3b938eb4b0f6c93a (patch) | |
tree | 9b6eb432eebb15dce7d645d13602101e7e40c695 /apps | |
parent | 6a56c14e17f6ba113ec0d4d40e75bffd61b293cc (diff) | |
download | rockbox-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.c | 3 | ||||
-rw-r--r-- | apps/settings.c | 8 | ||||
-rw-r--r-- | apps/settings.h | 5 | ||||
-rw-r--r-- | apps/settings_list.c | 3 |
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); |