summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/wps_parser.c40
-rw-r--r--apps/recorder/bmp.c7
-rw-r--r--tools/Makefile2
-rw-r--r--tools/checkwps.c40
4 files changed, 72 insertions, 17 deletions
diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c
index ae50499..55b4ed9 100644
--- a/apps/gui/wps_parser.c
+++ b/apps/gui/wps_parser.c
@@ -17,18 +17,29 @@
*
****************************************************************************/
+#include <stdio.h>
+#include <string.h>
+#include "gwps.h"
+#ifdef __PCTOOL__
+#define DEBUGF printf
+#define FONT_SYSFIXED 0
+#define FONT_UI 1
+#else
+#include "debug.h"
+#endif
+
+#ifndef __PCTOOL__
#include <ctype.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include "font.h"
+
#include "atoi.h"
#include "gwps.h"
-#include "font.h"
-#ifndef __PCTOOL__
#include "settings.h"
#include "misc.h"
-#include "debug.h"
#include "plugin.h"
#ifdef HAVE_LCD_BITMAP
@@ -382,7 +393,7 @@ static bool load_bitmap(struct wps_data *wps_data,
int ret = read_bmp_file(filename, bm,
wps_data->img_buf_free,
format);
-
+ DEBUGF("Read %s, ret=%d\n",filename,ret);
if (ret > 0)
{
#if LCD_DEPTH == 16
@@ -1370,12 +1381,11 @@ static void wps_reset(struct wps_data *data)
#ifdef HAVE_LCD_BITMAP
-static void load_wps_bitmaps(struct wps_data *wps_data, char *bmpdir)
+static bool load_wps_bitmaps(struct wps_data *wps_data, char *bmpdir)
{
char img_path[MAX_PATH];
struct bitmap *bitmap;
bool *loaded;
-
int n;
for (n = 0; n < BACKDROP_BMP; n++)
{
@@ -1405,6 +1415,12 @@ static void load_wps_bitmaps(struct wps_data *wps_data, char *bmpdir)
wps_data->img[n].subimage_height = wps_data->img[n].bm.height /
wps_data->img[n].num_subimages;
}
+ else
+ {
+ /* Abort if we can't load an image */
+ DEBUGF("ERR: Failed to load image %d - %s\n",n,img_path);
+ return false;
+ }
}
}
@@ -1416,14 +1432,19 @@ static void load_wps_bitmaps(struct wps_data *wps_data, char *bmpdir)
#ifdef HAVE_REMOTE_LCD
if (wps_data->remote_wps)
#if LCD_REMOTE_DEPTH > 1
- load_remote_wps_backdrop(img_path)
+ if (!load_remote_wps_backdrop(img_path))
+ return false
#endif
;
else
#endif /* HAVE_REMOTE_LCD */
- load_wps_backdrop(img_path);
+ if (!load_wps_backdrop(img_path))
+ return false;
}
#endif /* has backdrop support */
+
+ /* If we got here, everything was OK */
+ return true;
}
#endif /* HAVE_LCD_BITMAP */
@@ -1552,7 +1573,8 @@ bool wps_data_load(struct wps_data *wps_data,
bmpdir[bmpdirlen] = 0;
/* load the bitmaps that were found by the parsing */
- load_wps_bitmaps(wps_data, bmpdir);
+ if (!load_wps_bitmaps(wps_data, bmpdir))
+ return false;
#endif
return true;
}
diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c
index 3db2cb1..f844c89 100644
--- a/apps/recorder/bmp.c
+++ b/apps/recorder/bmp.c
@@ -38,11 +38,16 @@
#ifdef HAVE_REMOTE_LCD
#include "lcd-remote.h"
#endif
+#ifndef __PCTOOL__
#include "file.h"
#include "config.h"
#include "system.h"
#include "bmp.h"
-#include "lcd.h"
+#include "debug.h"
+#else
+#undef DEBUGF
+#define DEBUGF(...)
+#endif
#ifdef __GNUC__
#define STRUCT_PACKED __attribute__((packed))
diff --git a/tools/Makefile b/tools/Makefile
index 4db43c1..94378d8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -64,7 +64,7 @@ database: database.c ../apps/tagcache.c ../apps/metadata.c \
-D__PCTOOL__ -DHAVE_TAGCACHE -DROCKBOX_HAS_LOGF -DSIMULATOR \
-DCONFIG_CODEC=1 -ldl -I../apps $+ -o $@
-checkwps: checkwps.c ../apps/gui/wps_parser.c ../apps/gui/wps_debug.c ../firmware/common/ctype.c ../apps/misc.c
+checkwps: checkwps.c ../apps/gui/wps_parser.c ../apps/gui/wps_debug.c ../firmware/common/ctype.c ../apps/misc.c ../apps/recorder/bmp.c
$(SILENT)$(CC) -g -I ../apps/gui -I../firmware/export \
-D__PCTOOL__ -DDEBUG -DROCKBOX_HAS_LOGF -DIPOD_COLOR -D ROCKBOX_DIR_LEN -D WPS_DIR=\".\" \
-I../apps -I../firmware/target/arm/ipod -I../firmware/include $+ -o $@
diff --git a/tools/checkwps.c b/tools/checkwps.c
index 92e7a5d..ddaaf49 100644
--- a/tools/checkwps.c
+++ b/tools/checkwps.c
@@ -7,15 +7,43 @@
bool debug_wps = true;
int wps_verbose_level = 0;
-int read_bmp_file(char* filename,
- struct bitmap *bm,
- int maxsize,
- int format)
+int errno;
+
+/* static endianness conversion */
+#define SWAP_16(x) ((typeof(x))(unsigned short)(((unsigned short)(x) >> 8) | \
+ ((unsigned short)(x) << 8)))
+
+#define SWAP_32(x) ((typeof(x))(unsigned long)( ((unsigned long)(x) >> 24) | \
+ (((unsigned long)(x) & 0xff0000ul) >> 8) | \
+ (((unsigned long)(x) & 0xff00ul) << 8) | \
+ ((unsigned long)(x) << 24)))
+unsigned short letoh16(unsigned short x)
{
- return 0;
+ unsigned short n = 0x1234;
+ unsigned char* ch = &n;
+
+ if (*ch == 0x34)
+ {
+ /* Little-endian */
+ return x;
+ } else {
+ return SWAP_16(x);
+ }
}
-int errno;
+unsigned int htole32(unsigned int x)
+{
+ unsigned short n = 0x1234;
+ unsigned char* ch = &n;
+
+ if (*ch == 0x34)
+ {
+ /* Little-endian */
+ return x;
+ } else {
+ return SWAP_32(x);
+ }
+}
int read_line(int fd, char* buffer, int buffer_size)
{