diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2011-04-10 13:25:47 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2011-04-10 13:25:47 +0000 |
commit | d09f97880a51d915feae563248b1bdcbcd845156 (patch) | |
tree | 29a8c6d6ceed9b76eb9a8f53dbf7c2084763ce98 /apps/gui | |
parent | b66239b4363863d3db22fe89ca9909eea11f5097 (diff) | |
download | rockbox-d09f97880a51d915feae563248b1bdcbcd845156.tar.gz rockbox-d09f97880a51d915feae563248b1bdcbcd845156.zip |
Support loading backdrops from anywhere in the filesystem. Fixes FS#12041
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29700 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui')
-rw-r--r-- | apps/gui/skin_engine/skin_backdrops.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/apps/gui/skin_engine/skin_backdrops.c b/apps/gui/skin_engine/skin_backdrops.c index 3e04beaae0..12950a666c 100644 --- a/apps/gui/skin_engine/skin_backdrops.c +++ b/apps/gui/skin_engine/skin_backdrops.c | |||
@@ -113,10 +113,7 @@ bool skin_backdrops_preload(void) | |||
113 | if (screen == SCREEN_MAIN && global_settings.backdrop_file[0] && | 113 | if (screen == SCREEN_MAIN && global_settings.backdrop_file[0] && |
114 | global_settings.backdrop_file[0] != '-' && filename[0] == '-') | 114 | global_settings.backdrop_file[0] != '-' && filename[0] == '-') |
115 | { | 115 | { |
116 | char* temp = filename+2; /* slightly hacky to get a buffer */ | 116 | filename = global_settings.backdrop_file; |
117 | size_t size = sizeof(backdrops[i].name) - 2; | ||
118 | snprintf(temp, size, BACKDROP_DIR "/%s.bmp", global_settings.backdrop_file); | ||
119 | filename = temp; | ||
120 | } | 117 | } |
121 | if (*filename && *filename != '-') | 118 | if (*filename && *filename != '-') |
122 | { | 119 | { |
@@ -156,7 +153,6 @@ void skin_backdrop_unload(int backdrop_id) | |||
156 | void skin_backdrop_load_setting(void) | 153 | void skin_backdrop_load_setting(void) |
157 | { | 154 | { |
158 | int i; | 155 | int i; |
159 | char filename[MAX_PATH]; | ||
160 | for(i=0;i<SKINNABLE_SCREENS_COUNT*NB_SCREENS;i++) | 156 | for(i=0;i<SKINNABLE_SCREENS_COUNT*NB_SCREENS;i++) |
161 | { | 157 | { |
162 | if (backdrops[i].name[0] == '-' && backdrops[i].screen == SCREEN_MAIN) | 158 | if (backdrops[i].name[0] == '-' && backdrops[i].screen == SCREEN_MAIN) |
@@ -166,11 +162,11 @@ void skin_backdrop_load_setting(void) | |||
166 | { | 162 | { |
167 | if (!backdrops[i].buffer) | 163 | if (!backdrops[i].buffer) |
168 | backdrops[i].buffer = (char*)skin_buffer_alloc(LCD_BACKDROP_BYTES); | 164 | backdrops[i].buffer = (char*)skin_buffer_alloc(LCD_BACKDROP_BYTES); |
169 | snprintf(filename, sizeof filename, BACKDROP_DIR "/%s.bmp", | 165 | |
170 | global_settings.backdrop_file); | ||
171 | bool loaded = backdrops[i].buffer && | 166 | bool loaded = backdrops[i].buffer && |
172 | screens[SCREEN_MAIN].backdrop_load(filename, | 167 | screens[SCREEN_MAIN].backdrop_load( |
173 | backdrops[i].buffer); | 168 | global_settings.backdrop_file, |
169 | backdrops[i].buffer); | ||
174 | backdrops[i].name[2] = loaded ? '.' : '\0'; | 170 | backdrops[i].name[2] = loaded ? '.' : '\0'; |
175 | return; | 171 | return; |
176 | } | 172 | } |