summaryrefslogtreecommitdiff
path: root/apps/gui/wps_parser.c
diff options
context:
space:
mode:
authorNicolas Pennequin <nicolas.pennequin@free.fr>2007-04-25 13:09:56 +0000
committerNicolas Pennequin <nicolas.pennequin@free.fr>2007-04-25 13:09:56 +0000
commit2a2b8d8a8234633779dca0fff5e7ce23ad4c48ed (patch)
treee6ffe49977691b83484dc66e67eac51e50ff85d3 /apps/gui/wps_parser.c
parent70e2846241a8ab9dd6aa570762086c3111ac0463 (diff)
downloadrockbox-2a2b8d8a8234633779dca0fff5e7ce23ad4c48ed.zip
rockbox-2a2b8d8a8234633779dca0fff5e7ce23ad4c48ed.tar.gz
rockbox-2a2b8d8a8234633779dca0fff5e7ce23ad4c48ed.tar.bz2
rockbox-2a2b8d8a8234633779dca0fff5e7ce23ad4c48ed.tar.xz
Make bitmaps use the right format in a RWPS and prevent a backdrop tag in a RWPS from clearing the main display's backdrop. This also allows future backdrop support for LCD remotes by making the parsing code aware of whether the display for a WPS is a remote or not.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13261 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/wps_parser.c')
-rw-r--r--apps/gui/wps_parser.c32
1 files changed, 24 insertions, 8 deletions
diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c
index ec98d95..b6cda91 100644
--- a/apps/gui/wps_parser.c
+++ b/apps/gui/wps_parser.c
@@ -311,9 +311,17 @@ static bool load_bitmap(struct wps_data *wps_data,
char* filename,
struct bitmap *bm)
{
+ int format;
+#ifdef HAVE_REMOTE_LCD
+ if (wps_data->remote_wps)
+ format = FORMAT_ANY|FORMAT_REMOTE;
+ else
+#endif
+ format = FORMAT_ANY|FORMAT_TRANSPARENT;
+
int ret = read_bmp_file(filename, bm,
wps_data->img_buf_free,
- FORMAT_ANY|FORMAT_TRANSPARENT);
+ format);
if (ret > 0)
{
@@ -840,9 +848,14 @@ void wps_data_init(struct wps_data *wps_data)
static void wps_reset(struct wps_data *data)
{
+#ifdef HAVE_REMOTE_LCD
+ bool rwps = data->remote_wps; /* remember whether the data is for a RWPS */
+#endif
memset(data, 0, sizeof(*data));
- data->wps_loaded = false;
wps_data_init(data);
+#ifdef HAVE_REMOTE_LCD
+ data->remote_wps = rwps;
+#endif
}
#ifdef HAVE_LCD_BITMAP
@@ -896,12 +909,15 @@ static void load_wps_bitmaps(struct wps_data *wps_data, char *bmpdir)
}
#if LCD_DEPTH > 1
- if (backdrop_bmp_name)
- {
- get_image_filename(backdrop_bmp_name, bmpdir,
- img_path, sizeof(img_path));
- load_wps_backdrop(img_path);
- }
+#ifdef HAVE_REMOTE_LCD
+ if (!wps_data->remote_wps)
+#endif
+ if (backdrop_bmp_name)
+ {
+ get_image_filename(backdrop_bmp_name, bmpdir,
+ img_path, sizeof(img_path));
+ load_wps_backdrop(img_path);
+ }
#endif
}