summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2008-03-25 21:09:58 +0000
committerDave Chapman <dave@dchapman.com>2008-03-25 21:09:58 +0000
commit7418c357c35c1813d0ed0cec427eb98768b4c68c (patch)
tree390081d494196ee1da0281ead5b6235c21f4f69c
parentffa304865ed0eb0175a741d171f89cc069f71e5d (diff)
downloadrockbox-7418c357c35c1813d0ed0cec427eb98768b4c68c.tar.gz
rockbox-7418c357c35c1813d0ed0cec427eb98768b4c68c.zip
Make checkwps compile again. Still more work is needed though, as checkwps is compiled to emulate an iPod Color - this needs changing to allow the LCD (and remote LCD) dimensions/depth to be specified on the commandline - the new %V tags are validated against the LCD characteristics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16807 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/gui/wps_parser.c1
-rw-r--r--apps/misc.c75
-rw-r--r--firmware/export/font.h2
-rw-r--r--tools/Makefile4
-rw-r--r--tools/checkwps.c52
5 files changed, 96 insertions, 38 deletions
diff --git a/apps/gui/wps_parser.c b/apps/gui/wps_parser.c
index 7aa604ecdc..ae50499960 100644
--- a/apps/gui/wps_parser.c
+++ b/apps/gui/wps_parser.c
@@ -24,6 +24,7 @@
#include <string.h>
#include "atoi.h"
#include "gwps.h"
+#include "font.h"
#ifndef __PCTOOL__
#include "settings.h"
#include "misc.h"
diff --git a/apps/misc.c b/apps/misc.c
index 8b6773dd6f..1ce65c0108 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -18,6 +18,8 @@
****************************************************************************/
#include <stdlib.h>
#include <ctype.h>
+#include "sprintf.h"
+#ifndef __PCTOOL__
#include "lang.h"
#include "string.h"
#include "config.h"
@@ -25,7 +27,6 @@
#include "dir.h"
#include "lcd.h"
#include "lcd-remote.h"
-#include "sprintf.h"
#include "errno.h"
#include "system.h"
#include "timefuncs.h"
@@ -48,15 +49,17 @@
#include "tagcache.h"
#include "scrobbler.h"
#include "sound.h"
+#endif
+
#ifdef HAVE_MMC
#include "ata_mmc.h"
#endif
#include "tree.h"
#include "eeprom_settings.h"
-#ifdef HAVE_RECORDING
+#if defined(HAVE_RECORDING) && !defined(__PCTOOL__)
#include "recording.h"
#endif
-#ifdef HAVE_LCD_BITMAP
+#if defined(HAVE_LCD_BITMAP) && !defined(__PCTOOL__)
#include "bmp.h"
#include "icons.h"
#endif /* End HAVE_LCD_BITMAP */
@@ -74,6 +77,7 @@
#endif
#endif
+#ifndef __PCTOOL__
/* Format a large-range value for output, using the appropriate unit so that
* the displayed value is in the range 1 <= display < 1000 (1024 for "binary"
* units) if possible, and 3 significant digits are shown. If a buffer is
@@ -1087,38 +1091,6 @@ void setvol(void)
settings_save();
}
-#ifdef HAVE_LCD_COLOR
-/*
- * Helper function to convert a string of 6 hex digits to a native colour
- */
-
-static int hex2dec(int c)
-{
- return (((c) >= '0' && ((c) <= '9')) ? (c) - '0' :
- (toupper(c)) - 'A' + 10);
-}
-
-int hex_to_rgb(const char* hex, int* color)
-{
- int red, green, blue;
- int i = 0;
-
- while ((i < 6) && (isxdigit(hex[i])))
- i++;
-
- if (i < 6)
- return -1;
-
- red = (hex2dec(hex[0]) << 4) | hex2dec(hex[1]);
- green = (hex2dec(hex[2]) << 4) | hex2dec(hex[3]);
- blue = (hex2dec(hex[4]) << 4) | hex2dec(hex[5]);
-
- *color = LCD_RGBPACK(red,green,blue);
-
- return 0;
-}
-#endif /* HAVE_LCD_COLOR */
-
char* strrsplt(char* str, int c)
{
char* s = strrchr(str, c);
@@ -1196,6 +1168,39 @@ char *strip_extension(char* buffer, int buffer_size, const char *filename)
return buffer;
}
+#endif /* !defined(__PCTOOL__) */
+
+#ifdef HAVE_LCD_COLOR
+/*
+ * Helper function to convert a string of 6 hex digits to a native colour
+ */
+
+static int hex2dec(int c)
+{
+ return (((c) >= '0' && ((c) <= '9')) ? (c) - '0' :
+ (toupper(c)) - 'A' + 10);
+}
+
+int hex_to_rgb(const char* hex, int* color)
+{
+ int red, green, blue;
+ int i = 0;
+
+ while ((i < 6) && (isxdigit(hex[i])))
+ i++;
+
+ if (i < 6)
+ return -1;
+
+ red = (hex2dec(hex[0]) << 4) | hex2dec(hex[1]);
+ green = (hex2dec(hex[2]) << 4) | hex2dec(hex[3]);
+ blue = (hex2dec(hex[4]) << 4) | hex2dec(hex[5]);
+
+ *color = LCD_RGBPACK(red,green,blue);
+
+ return 0;
+}
+#endif /* HAVE_LCD_COLOR */
#ifdef HAVE_LCD_BITMAP
/* A simplified scanf - used (at time of writing) by wps parsing functions.
diff --git a/firmware/export/font.h b/firmware/export/font.h
index 15d54dad04..d8c98bc4e9 100644
--- a/firmware/export/font.h
+++ b/firmware/export/font.h
@@ -27,7 +27,9 @@
#include "config.h"
#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
+#ifndef __PCTOOL__
#include "sysfont.h"
+#endif
/* max static loadable font buffer size */
#ifndef MAX_FONT_SIZE
diff --git a/tools/Makefile b/tools/Makefile
index 6351e5bec4..4db43c1b6c 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -64,9 +64,9 @@ 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
+checkwps: checkwps.c ../apps/gui/wps_parser.c ../apps/gui/wps_debug.c ../firmware/common/ctype.c ../apps/misc.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=\".\" \
+-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 $@
convbdf: convbdf.c
diff --git a/tools/checkwps.c b/tools/checkwps.c
index 950c341bfc..92e7a5db94 100644
--- a/tools/checkwps.c
+++ b/tools/checkwps.c
@@ -54,12 +54,62 @@ bool load_wps_backdrop(char* filename)
static char pluginbuf[PLUGIN_BUFFER_SIZE];
+static int dummy_func1(void)
+{
+ return 0;
+}
+
+static unsigned dummy_func2(void)
+{
+ return 0;
+}
+
void* plugin_get_buffer(size_t *buffer_size)
{
*buffer_size = PLUGIN_BUFFER_SIZE;
return pluginbuf;
}
+struct screen screens[NB_SCREENS] =
+{
+ {
+ .screen_type=SCREEN_MAIN,
+ .width=LCD_WIDTH,
+ .height=LCD_HEIGHT,
+ .depth=LCD_DEPTH,
+ .is_color=true,
+ .has_disk_led=false,
+ .getxmargin=dummy_func1,
+ .getymargin=dummy_func1,
+ .get_foreground=dummy_func2,
+ .get_background=dummy_func2,
+ },
+#ifdef HAVE_REMOTE_LCD
+ {
+ .screen_type=SCREEN_REMOTE,
+ .width=LCD_REMOTE_WIDTH,
+ .height=LCD_REMOTE_HEIGHT,
+ .depth=LCD_REMOTE_DEPTH,
+ .is_color=false,/* No color remotes yet */
+ .getxmargin=dummy_func,
+ .getymargin=dummy_func,
+ .get_foreground=dummy_func,
+ .get_background=dummy_func,
+ }
+#endif
+};
+
+#ifdef HAVE_LCD_BITMAP
+void screen_clear_area(struct screen * display, int xstart, int ystart,
+ int width, int height)
+{
+ display->set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
+ display->fillrect(xstart, ystart, width, height);
+ display->set_drawmode(DRMODE_SOLID);
+}
+#endif
+
+
int main(int argc, char **argv)
{
int res;
@@ -93,7 +143,7 @@ int main(int argc, char **argv)
}
close(fd);
- res = wps_data_load(&wps, argv[filearg], true);
+ res = wps_data_load(&wps, &screens[0], argv[filearg], true);
if (!res) {
printf("WPS parsing failure\n");