Index: 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 */