summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2011-11-21 10:03:36 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2011-11-21 10:03:36 +0000
commitf78bcb165f7be0459ac951d7d71e24907febc32b (patch)
tree48b0293b214a7d80d811d0eb19fbcfdea1291215 /apps/gui/skin_engine
parent0ca4b38b1b04e6b7d6f5ad1f3654f8f361d8933f (diff)
downloadrockbox-f78bcb165f7be0459ac951d7d71e24907febc32b.tar.gz
rockbox-f78bcb165f7be0459ac951d7d71e24907febc32b.zip
skinengine: Load the fms the first time the fm screen is entered instead of on boot to save some ram
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31038 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_engine.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c
index ce6c985e16..68d5c9c060 100644
--- a/apps/gui/skin_engine/skin_engine.c
+++ b/apps/gui/skin_engine/skin_engine.c
@@ -52,11 +52,12 @@ static struct gui_skin_helper {
52 int (*preproccess)(enum screen_type screen, struct wps_data *data); 52 int (*preproccess)(enum screen_type screen, struct wps_data *data);
53 int (*postproccess)(enum screen_type screen, struct wps_data *data); 53 int (*postproccess)(enum screen_type screen, struct wps_data *data);
54 char* (*default_skin)(enum screen_type screen); 54 char* (*default_skin)(enum screen_type screen);
55 bool load_on_boot;
55} skin_helpers[SKINNABLE_SCREENS_COUNT] = { 56} skin_helpers[SKINNABLE_SCREENS_COUNT] = {
56 [CUSTOM_STATUSBAR] = { sb_preproccess, sb_postproccess, sb_create_from_settings }, 57 [CUSTOM_STATUSBAR] = { sb_preproccess, sb_postproccess, sb_create_from_settings, true },
57 [WPS] = { NULL, NULL, wps_default_skin }, 58 [WPS] = { NULL, NULL, wps_default_skin, true },
58#if CONFIG_TUNER 59#if CONFIG_TUNER
59 [FM_SCREEN] = { NULL, NULL, default_radio_skin } 60 [FM_SCREEN] = { NULL, NULL, default_radio_skin, false }
60#endif 61#endif
61}; 62};
62 63
@@ -155,14 +156,14 @@ void settings_apply_skins(void)
155 } 156 }
156 gui_skin_reset(&skins[i][j]); 157 gui_skin_reset(&skins[i][j]);
157 skins[i][j].gui_wps.display = &screens[j]; 158 skins[i][j].gui_wps.display = &screens[j];
158 skin_get_gwps(i, j); 159 if (skin_helpers[i].load_on_boot)
160 skin_get_gwps(i, j);
159 } 161 }
160 } 162 }
161 } 163 }
162 first_run = false; 164 first_run = false;
163 viewportmanager_theme_changed(THEME_STATUSBAR); 165 viewportmanager_theme_changed(THEME_STATUSBAR);
164#ifdef HAVE_BACKDROP_IMAGE 166#ifdef HAVE_BACKDROP_IMAGE
165 skin_backdrops_preload(); /* should maybe check the retval here... */
166 FOR_NB_SCREENS(i) 167 FOR_NB_SCREENS(i)
167 skin_backdrop_show(sb_get_backdrop(i)); 168 skin_backdrop_show(sb_get_backdrop(i));
168#endif 169#endif
@@ -191,6 +192,10 @@ void skin_load(enum skinnable_screens skin, enum screen_type screen,
191 skins[skin][screen].needs_full_update = true; 192 skins[skin][screen].needs_full_update = true;
192 if (skin_helpers[skin].postproccess) 193 if (skin_helpers[skin].postproccess)
193 skin_helpers[skin].postproccess(screen, &skins[skin][screen].data); 194 skin_helpers[skin].postproccess(screen, &skins[skin][screen].data);
195#ifdef HAVE_BACKDROP_IMAGE
196 if (loaded)
197 skin_backdrops_preload();
198#endif
194} 199}
195 200
196static char* get_skin_filename(char *buf, size_t buf_size, 201static char* get_skin_filename(char *buf, size_t buf_size,