|
@@ -32,7 +32,7 @@
|
|
|
#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
|
|
@@ -47,6 +47,7 @@ static int bmp_display (ulong addr);
|
|
|
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 */
|
|
@@ -55,6 +56,11 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|
|
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;
|
|
@@ -66,7 +72,7 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|
|
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;
|
|
@@ -74,10 +80,10 @@ int do_bmp(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|
|
}
|
|
|
|
|
|
U_BOOT_CMD(
|
|
|
- bmp, 3, 1, do_bmp,
|
|
|
+ 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"
|
|
|
);
|
|
|
|
|
|
/*
|
|
@@ -115,11 +121,17 @@ static int bmp_info(ulong addr)
|
|
|
* Return: None
|
|
|
*
|
|
|
*/
|
|
|
-static int bmp_display(ulong addr)
|
|
|
+static int bmp_display(ulong addr, int x, int y)
|
|
|
{
|
|
|
- extern int lcd_display_bitmap (ulong);
|
|
|
+#ifdef CONFIG_LCD
|
|
|
+ extern int lcd_display_bitmap (ulong, int, int);
|
|
|
|
|
|
- return (lcd_display_bitmap (addr));
|
|
|
+ return (lcd_display_bitmap (addr, x, y));
|
|
|
+#endif
|
|
|
+#ifdef CONFIG_VIDEO
|
|
|
+ extern int video_display_bitmap (ulong, int, int);
|
|
|
+ return (video_display_bitmap (addr, x, y));
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
#endif /* (CONFIG_COMMANDS & CFG_CMD_BMP) */
|