diff options
| author | Dave Chapman <dave@dchapman.com> | 2007-05-29 19:00:36 +0000 |
|---|---|---|
| committer | Dave Chapman <dave@dchapman.com> | 2007-05-29 19:00:36 +0000 |
| commit | f0d4fc6c6b146197c0fc51753d838252766aeda2 (patch) | |
| tree | 14a80b9a30d14b63c50f3350f9c2cececdc1baef /tools | |
| parent | be0cbc940641264fe536ea1b3c1153f627367f55 (diff) | |
| download | rockbox-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/Makefile | 5 | ||||
| -rw-r--r-- | tools/checkwps.c | 91 |
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; +} + |