summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2010-02-21 20:34:32 +0000
committerThomas Martitz <kugel@rockbox.org>2010-02-21 20:34:32 +0000
commit3ff2565e33aa3b249b561d3b63db1dab8b48f413 (patch)
treee038ae391fedd43313d9d8905cfe71ff0d4bcbbe
parentec0ca10ddf58604d8ce2a5f73cedabbaa8965a75 (diff)
downloadrockbox-3ff2565e33aa3b249b561d3b63db1dab8b48f413.zip
rockbox-3ff2565e33aa3b249b561d3b63db1dab8b48f413.tar.gz
rockbox-3ff2565e33aa3b249b561d3b63db1dab8b48f413.tar.bz2
rockbox-3ff2565e33aa3b249b561d3b63db1dab8b48f413.tar.xz
Shorten settings_skins_apply() and correct some checks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24817 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/settings.c77
1 files changed, 36 insertions, 41 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 0bd073e..568e305 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -748,57 +748,52 @@ void settings_apply_skins(void)
char buf[MAX_PATH];
/* re-initialize the skin buffer before we start reloading skins */
skin_buffer_init();
+ int i;
#ifdef HAVE_LCD_BITMAP
skin_backdrop_init();
skin_font_init();
- if ( global_settings.sbs_file[0] &&
- global_settings.sbs_file[0] != 0xff )
- {
- snprintf(buf, sizeof buf, SBS_DIR "/%s.sbs",
- global_settings.sbs_file);
- sb_skin_data_load(SCREEN_MAIN, buf, true);
- }
- else
+ FOR_NB_SCREENS(i)
{
- sb_skin_data_load(SCREEN_MAIN, NULL, true);
- }
+ const char* setting;
+#ifdef HAVE_REMOTE_LCD
+ if (i == SCREEN_REMOTE)
+ setting = global_settings.rsbs_file;
+ else
#endif
- if ( global_settings.wps_file[0] &&
- global_settings.wps_file[0] != 0xff )
- {
- snprintf(buf, sizeof buf, WPS_DIR "/%s.wps",
- global_settings.wps_file);
- wps_data_load(SCREEN_MAIN, buf, true);
- }
- else
- {
- wps_data_load(SCREEN_MAIN, NULL, true);
- }
-#if defined(HAVE_REMOTE_LCD) && (NB_SCREENS > 1)
- if ( global_settings.rsbs_file[0] &&
- global_settings.rsbs_file[0] != 0xff ) {
- snprintf(buf, sizeof buf, SBS_DIR "/%s.rsbs",
- global_settings.rsbs_file);
- sb_skin_data_load(SCREEN_REMOTE, buf, true);
- }
- else
- {
- sb_skin_data_load(SCREEN_REMOTE, NULL, true);
- }
- if ( global_settings.rwps_file[0])
- {
- snprintf(buf, sizeof buf, WPS_DIR "/%s.rwps",
- global_settings.rwps_file);
- wps_data_load(SCREEN_REMOTE, buf, true);
+ setting = global_settings.sbs_file;
+ if (setting[0] && setting[0] != '-')
+ {
+ snprintf(buf, sizeof buf, SBS_DIR "/%s.%ssbs", setting,
+ i == SCREEN_MAIN? "" : "r");
+ sb_skin_data_load(i, buf, true);
+ }
+ else
+ {
+ sb_skin_data_load(i, NULL, true);
+ }
}
- else
+#endif
+ FOR_NB_SCREENS(i)
{
- wps_data_load(SCREEN_REMOTE, NULL, true);
- }
+ const char* setting = global_settings.wps_file;
+#ifdef HAVE_REMOTE_LCD
+ if (i == SCREEN_REMOTE)
+ setting = global_settings.rsbs_file;
#endif
+ if (setting[0] && setting[0] != '-')
+ {
+ snprintf(buf, sizeof buf, WPS_DIR "/%s.%swps", setting,
+ i == SCREEN_MAIN? "" : "r");
+ wps_data_load(SCREEN_MAIN, buf, true);
+ }
+ else
+ {
+ wps_data_load(SCREEN_MAIN, NULL, true);
+ }
+ }
+
viewportmanager_theme_changed(THEME_STATUSBAR);
#if LCD_DEPTH > 1 || defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
- int i;
FOR_NB_SCREENS(i)
screens[i].backdrop_show(sb_get_backdrop(i));
#endif