rendered paste bodyIndex: apps/recorder/backdrop.c
===================================================================
--- apps/recorder/backdrop.c (révision 13256)
+++ apps/recorder/backdrop.c (copie de travail)
@@ -26,14 +26,9 @@
static fb_data main_backdrop[LCD_HEIGHT][LCD_WIDTH] __attribute__ ((aligned (16)));
static fb_data wps_backdrop[LCD_HEIGHT][LCD_WIDTH] __attribute__ ((aligned (16)));
#elif LCD_DEPTH == 2
-#if LCD_PIXELFORMAT == VERTICAL_PACKING
-static fb_data main_backdrop[(LCD_HEIGHT+3)/4][LCD_WIDTH];
-static fb_data wps_backdrop[(LCD_HEIGHT+3)/4][LCD_WIDTH];
-#else
-static fb_data main_backdrop[LCD_HEIGHT][LCD_FBWIDTH];
-static fb_data wps_backdrop[LCD_HEIGHT][LCD_FBWIDTH];
+static fb_data main_backdrop[LCD_FBHEIGHT][LCD_FBWIDTH];
+static fb_data wps_backdrop[LCD_FBHEIGHT][LCD_FBWIDTH];
#endif
-#endif
static bool main_backdrop_valid = false;
static bool wps_backdrop_valid = false;
Index: apps/settings.c
===================================================================
--- apps/settings.c (révision 13256)
+++ apps/settings.c (copie de travail)
@@ -751,6 +751,9 @@
else
{
wps_data_init(gui_wps[0].data);
+#ifdef HAVE_REMOTE_LCD
+ gui_wps[0].data->remote_wps = false;
+#endif
}
#if LCD_DEPTH > 1
@@ -777,7 +780,10 @@
wps_data_load(gui_wps[1].data, buf, true);
}
else
+ {
wps_data_init(gui_wps[1].data);
+ gui_wps[1].data->remote_wps = false;
+ }
#endif
#ifdef HAVE_LCD_BITMAP
Index: apps/gui/gwps.c
===================================================================
--- apps/gui/gwps.c (révision 13256)
+++ apps/gui/gwps.c (copie de travail)
@@ -741,6 +741,9 @@
FOR_NB_SCREENS(i)
{
wps_data_init(&wps_datas[i]);
+#ifdef HAVE_REMOTE_LCD
+ wps_datas[i].remote_wps = (i != 0);
+#endif
gui_wps_init(&gui_wps[i]);
gui_wps_set_data(&gui_wps[i], &wps_datas[i]);
gui_wps_set_statusbar(&gui_wps[i], &statusbars.statusbars[i]);
Index: apps/gui/gwps.h
===================================================================
--- apps/gui/gwps.h (révision 13256)
+++ apps/gui/gwps.h (copie de travail)
@@ -312,6 +312,11 @@
unsigned short wps_progress_pat[8];
bool full_line_progressbar;
#endif
+
+#ifdef HAVE_REMOTE_LCD
+ bool remote_wps;
+#endif
+
/* Number of lines in the WPS. During WPS parsing, this is
the index of the line being parsed. */
int num_lines;
Index: apps/gui/wps_parser.c
===================================================================
--- apps/gui/wps_parser.c (révision 13257)
+++ apps/gui/wps_parser.c (copie de travail)
@@ -311,9 +311,17 @@
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 @@
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,13 +909,16 @@
}
#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
}
#endif /* HAVE_LCD_BITMAP */