diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2011-11-15 14:11:08 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2011-11-15 14:11:08 +0000 |
commit | 9e07ef2b0adb8fca7e5a9e516397e533653f8836 (patch) | |
tree | 0a283550421917e52ee04068b84a464976f0c4f2 /apps/gui/skin_engine/skin_engine.c | |
parent | 101693fd3047fb64e766580e80635a424fa25c4d (diff) | |
download | rockbox-9e07ef2b0adb8fca7e5a9e516397e533653f8836.tar.gz rockbox-9e07ef2b0adb8fca7e5a9e516397e533653f8836.zip |
Use buflib for all skin engine allocations.
Massive thanks to Michael Chicoine and other testers for finding the early bugs.
This removes all skin memory limitations
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30991 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine/skin_engine.c')
-rw-r--r-- | apps/gui/skin_engine/skin_engine.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c index bd875fe9e4..75862faab0 100644 --- a/apps/gui/skin_engine/skin_engine.c +++ b/apps/gui/skin_engine/skin_engine.c | |||
@@ -41,19 +41,10 @@ | |||
41 | static bool skins_initialising = true; | 41 | static bool skins_initialising = true; |
42 | 42 | ||
43 | /* App uses the host malloc to manage the buffer */ | 43 | /* App uses the host malloc to manage the buffer */ |
44 | #ifdef APPLICATION | ||
45 | #define skin_buffer NULL | ||
46 | void theme_init_buffer(void) | 44 | void theme_init_buffer(void) |
47 | { | 45 | { |
48 | skins_initialising = false; | 46 | skins_initialising = false; |
49 | } | 47 | } |
50 | #else | ||
51 | static char skin_buffer[SKIN_BUFFER_SIZE]; | ||
52 | void theme_init_buffer(void) | ||
53 | { | ||
54 | skins_initialising = false; | ||
55 | } | ||
56 | #endif | ||
57 | 48 | ||
58 | void skin_data_free_buflib_allocs(struct wps_data *wps_data); | 49 | void skin_data_free_buflib_allocs(struct wps_data *wps_data); |
59 | char* wps_default_skin(enum screen_type screen); | 50 | char* wps_default_skin(enum screen_type screen); |
@@ -95,8 +86,20 @@ void gui_sync_skin_init(void) | |||
95 | skins[j][i].gui_wps.display = &screens[i]; | 86 | skins[j][i].gui_wps.display = &screens[i]; |
96 | memset(skins[j][i].gui_wps.data, 0, sizeof(struct wps_data)); | 87 | memset(skins[j][i].gui_wps.data, 0, sizeof(struct wps_data)); |
97 | skins[j][i].data.wps_loaded = false; | 88 | skins[j][i].data.wps_loaded = false; |
89 | skins[j][i].data.buflib_handle = -1; | ||
90 | skins[j][i].data.tree = -1; | ||
91 | #ifdef HAVE_TOUCHSCREEN | ||
92 | skins[j][i].data.touchregions = -1; | ||
93 | #endif | ||
94 | #ifdef HAVE_SKIN_VARIABLES | ||
95 | skins[j][i].data.skinvars = -1; | ||
96 | #endif | ||
97 | #ifdef HAVE_LCD_BITMAP | ||
98 | skins[j][i].data.font_ids = -1; | ||
99 | skins[j][i].data.images = -1; | ||
100 | #endif | ||
98 | #ifdef HAVE_ALBUMART | 101 | #ifdef HAVE_ALBUMART |
99 | skins[j][i].data.albumart = NULL; | 102 | skins[j][i].data.albumart = -1; |
100 | skins[j][i].data.playback_aa_slot = -1; | 103 | skins[j][i].data.playback_aa_slot = -1; |
101 | #endif | 104 | #endif |
102 | } | 105 | } |
@@ -113,8 +116,6 @@ void skin_unload_all(void) | |||
113 | skin_data_free_buflib_allocs(&skins[j][i].data); | 116 | skin_data_free_buflib_allocs(&skins[j][i].data); |
114 | } | 117 | } |
115 | 118 | ||
116 | skin_buffer_init(skin_buffer, SKIN_BUFFER_SIZE); | ||
117 | |||
118 | #ifdef HAVE_LCD_BITMAP | 119 | #ifdef HAVE_LCD_BITMAP |
119 | skin_backdrop_init(); | 120 | skin_backdrop_init(); |
120 | #endif | 121 | #endif |
@@ -245,7 +246,6 @@ struct gui_wps *skin_get_gwps(enum skinnable_screens skin, enum screen_type scre | |||
245 | cpu_boost(false); | 246 | cpu_boost(false); |
246 | loading_a_sbs = false; | 247 | loading_a_sbs = false; |
247 | } | 248 | } |
248 | |||
249 | return &skins[skin][screen].gui_wps; | 249 | return &skins[skin][screen].gui_wps; |
250 | } | 250 | } |
251 | 251 | ||