#include <common.h>
#include <bmp_layout.h>
#include <command.h>
+#include <asm/byteorder.h>
#if (CONFIG_COMMANDS & CFG_CMD_BMP)
static int bmp_info (ulong addr);
-static int bmp_display (ulong addr);
+static int bmp_display (ulong addr, int x, int y);
/*
* Subroutine: do_bmp
int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
ulong addr;
+ int x = 0, y = 0;
switch (argc) {
case 2: /* use load_addr as default address */
case 3: /* use argument */
addr = simple_strtoul(argv[2], NULL, 16);
break;
+ case 5:
+ addr = simple_strtoul(argv[2], NULL, 16);
+ x = simple_strtoul(argv[3], NULL, 10);
+ y = simple_strtoul(argv[4], NULL, 10);
+ break;
default:
printf ("Usage:\n%s\n", cmdtp->usage);
return 1;
if (strncmp(argv[1],"info",1) == 0) {
return (bmp_info(addr));
} else if (strncmp(argv[1],"display",1) == 0) {
- return (bmp_display(addr));
+ return (bmp_display(addr, x, y));
} else {
printf ("Usage:\n%s\n", cmdtp->usage);
return 1;
}
}
-cmd_tbl_t U_BOOT_CMD(BMP) = MK_CMD_ENTRY(
- "bmp", 3, 1, do_bmp,
+U_BOOT_CMD(
+ bmp, 5, 1, do_bmp,
"bmp - manipulate BMP image data\n",
- "info <imageAddr> - display image info\n"
- "bmp display <imageAddr> - display image\n"
+ "info <imageAddr> - display image info\n"
+ "bmp display <imageAddr> [x y] - display image at x,y\n"
);
/*
* Return: None
*
*/
-static int bmp_display(ulong addr)
+static int bmp_display(ulong addr, int x, int y)
{
- extern int lcd_display_bitmap (ulong);
+#if defined(CONFIG_LCD)
+ extern int lcd_display_bitmap (ulong, int, int);
- return (lcd_display_bitmap (addr));
+ return (lcd_display_bitmap (addr, x, y));
+#elif defined(CONFIG_VIDEO)
+ extern int video_display_bitmap (ulong, int, int);
+ return (video_display_bitmap (addr, x, y));
+#else
+# error bmp_display() requires CONFIG_LCD or CONFIG_VIDEO
+#endif
}
#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */