diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_vfd.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c new file mode 100644 index 0000000..d2c63d6 --- /dev/null +++ b/common/cmd_vfd.c @@ -0,0 +1,84 @@ +/* + * (C) Copyright 2001 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +/* + * Command to load a splash screen to the VFDs. + * NOTE that this will be controlled by a key combination when + * the keyboard stuff works. For now the user has to enter a + * bitmap number (only VFD_TEST_LOGO is supported now - 16.10.2002). + * Added VFD_REMOTE_LOGO (same as VFD_TEST_LOGO but a different color) + * on 20.10.2002. + * + * This rather crudely requires that each bitmap be included as a + * header file. + */ +#include <common.h> +#include <command.h> + +#if (CONFIG_COMMANDS & CFG_CMD_VFD) +#ifdef VFD_TEST_LOGO +#include <vfd_logo.h> +#define VFD_TEST_LOGO_BMPNR 0 +#define VFD_REMOTE_LOGO_BMPNR 1 +#endif + +extern int transfer_pic(unsigned char, unsigned char *, int, int); + +int trab_vfd (ulong bitmap); + +int do_vfd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + ulong bitmap; + + if (argc != 2) { + printf ("Usage:\n%s\n", cmdtp->usage); + return 1; + } + + bitmap = simple_strtoul(argv[1], NULL, 10); + + return (trab_vfd(bitmap)); +} +#endif /* CFG_CMD_VFD */ + +#ifdef CONFIG_VFD +int trab_vfd (ulong bitmap) +{ + switch (bitmap) { +#ifdef VFD_TEST_LOGO + case VFD_TEST_LOGO_BMPNR: + transfer_pic(1, &vfd_test_logo_bitmap[0], + VFD_TEST_LOGO_HEIGHT, VFD_TEST_LOGO_WIDTH); + return 0; + case VFD_REMOTE_LOGO_BMPNR: + transfer_pic(1, &vfd_remote_logo_bitmap[0], + VFD_TEST_LOGO_HEIGHT, VFD_TEST_LOGO_WIDTH); + return 0; +#endif + default: + printf("Unknown bitmap %ld\n", bitmap); + return 1; + } + /* NOTREACHED */ +} +#endif /* CONFIG_VFD */ |