summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2007-05-29 19:00:36 +0000
committerDave Chapman <dave@dchapman.com>2007-05-29 19:00:36 +0000
commitf0d4fc6c6b146197c0fc51753d838252766aeda2 (patch)
tree14a80b9a30d14b63c50f3350f9c2cececdc1baef /tools
parentbe0cbc940641264fe536ea1b3c1153f627367f55 (diff)
downloadrockbox-f0d4fc6c6b146197c0fc51753d838252766aeda2.zip
rockbox-f0d4fc6c6b146197c0fc51753d838252766aeda2.tar.gz
rockbox-f0d4fc6c6b146197c0fc51753d838252766aeda2.tar.bz2
rockbox-f0d4fc6c6b146197c0fc51753d838252766aeda2.tar.xz
Commit my patch from FS#7179 - a standalone command-line checkwps tool. To build, just type "make checkwps" in tools and run it with "checkwps wpsname.wps".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13517 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile5
-rw-r--r--tools/checkwps.c91
2 files changed, 96 insertions, 0 deletions
diff --git a/tools/Makefile b/tools/Makefile
index a25447c..ac9fbac 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -47,6 +47,11 @@ 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
+ $(SILENT)$(CC) -g -I ../apps/gui -I../firmware/export \
+-D__PCTOOL__ -DDEBUG -DROCKBOX_HAS_LOGF -DIPOD_COLOR -D ROCKBOX_DIR_LEN=255 -D WPS_DIR=\".\" \
+-I../apps -I../firmware/target/arm/ipod -I../firmware/include $+ -o $@
+
convbdf: convbdf.c
$(SILENT)$(CC) -g $+ -o $@
diff --git a/tools/checkwps.c b/tools/checkwps.c
new file mode 100644
index 0000000..74ce1e8
--- /dev/null
+++ b/tools/checkwps.c
@@ -0,0 +1,91 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "gwps.h"
+
+#define MIN(x,y) ((x) > (y) ? (y) : (x))
+
+bool debug_wps = true;
+
+int read_bmp_file(char* filename,
+ struct bitmap *bm,
+ int maxsize,
+ int format)
+{
+ return 0;
+}
+
+int errno;
+
+int read_line(int fd, char* buffer, int buffer_size)
+{
+ int count = 0;
+ int num_read = 0;
+
+ errno = 0;
+
+ while (count < buffer_size)
+ {
+ unsigned char c;
+
+ if (1 != read(fd, &c, 1))
+ break;
+
+ num_read++;
+
+ if ( c == '\n' )
+ break;
+
+ if ( c == '\r' )
+ continue;
+
+ buffer[count++] = c;
+ }
+
+ buffer[MIN(count, buffer_size - 1)] = 0;
+
+ return errno ? -1 : num_read;
+}
+
+bool load_wps_backdrop(char* filename)
+{
+ return true;
+}
+
+static char pluginbuf[PLUGIN_BUFFER_SIZE];
+
+void* plugin_get_buffer(size_t *buffer_size)
+{
+ *buffer_size = PLUGIN_BUFFER_SIZE;
+ return pluginbuf;
+}
+
+int main(int argc, char **argv)
+{
+ int res;
+ int fd;
+
+ struct wps_data wps;
+
+ if (argc != 2) {
+ printf("Usage: checkwps filename.wps\n");
+ return 1;
+ }
+
+ fd = open(argv[1], O_RDONLY);
+ if (fd < 0) {
+ printf("Failed to open %s\n",argv[1]);
+ return 2;
+ }
+ close(fd);
+
+ res = wps_data_load(&wps, argv[1], true);
+
+ if (!res) {
+ printf("WPS parsing failure\n");
+ return 3;
+ }
+
+ printf("WPS parsed OK\n");
+ return 0;
+}
+