/* $Id: USBLCD.c,v 1.20 2004/01/09 04:16:06 reinelt Exp $ * * Driver for USBLCD (see http://www.usblcd.de) * * Copyright 2002 Robin Adams, Adams IT Services * * This driver is based on HD44780.c, which is * Copyright 1999, 2000 Michael Reinelt * * This file is part of LCD4Linux. * * LCD4Linux 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, or (at your option) * any later version. * * LCD4Linux 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., 675 Mass Ave, Cambridge, MA 02139, USA. * * * $Log: USBLCD.c,v $ * Revision 1.20 2004/01/09 04:16:06 reinelt * added 'section' argument to cfg_get(), but NULLed it on all calls by now. * * Revision 1.19 2004/01/06 22:33:14 reinelt * Copyright statements cleaned up * * Revision 1.18 2003/10/05 17:58:50 reinelt * libtool junk; copyright messages cleaned up * * Revision 1.17 2003/09/11 04:09:53 reinelt * minor cleanups * * Revision 1.16 2003/09/10 03:48:23 reinelt * Icons for M50530, new processing scheme (Ticks.Text...) * * Revision 1.15 2003/09/09 11:47:47 reinelt * basic icon support for HD44780 * * Revision 1.14 2003/09/09 06:54:43 reinelt * new function 'cfg_number()' * * Revision 1.13 2003/09/09 05:30:34 reinelt * even more icons stuff * * Revision 1.12 2003/08/24 05:17:58 reinelt * liblcd4linux patch from Patrick Schemitz * * Revision 1.11 2003/08/16 07:31:35 reinelt * double buffering in all drivers * * Revision 1.10 2003/07/24 04:48:09 reinelt * 'soft clear' needed for virtual rows * * Revision 1.9 2003/04/04 06:01:59 reinelt * new parallel port abstraction scheme * * Revision 1.8 2003/02/22 07:53:10 reinelt * cfg_get(key,defval) * * Revision 1.7 2002/08/19 09:11:34 reinelt * changed HD44780 to use generic bar functions * * Revision 1.6 2002/08/19 07:52:19 reinelt * corrected type declaration of (*defchar)() * * Revision 1.5 2002/08/19 07:36:29 reinelt * * finished bar.c, USBLCD is the first driver that uses the generic bar functions * * Revision 1.4 2002/08/19 04:41:20 reinelt * introduced bar.c, moved bar stuff from display.h to bar.h * * Revision 1.3 2002/08/18 08:11:11 reinelt * USBLCD buffered I/O * * Revision 1.2 2002/08/17 14:14:21
aclocal && \
libtoolize --copy --force && \
autoheader && \
automake --add-missing --copy --foreign && \
autoconf
Lcd.cols; col++) { c=bar_peek(row, col); if (c==-1) c=icon_peek(row, col); if (c!=-1) { FrameBuffer1[row*Lcd.cols+col]=(char)c; } } for (col=0; col2) break; } else { pos2=col; equal=0; } } USBLCD_write (FrameBuffer1+row*Lcd.cols+pos1, pos2-pos1+1); } } USBLCD_send(); memcpy (FrameBuffer2, FrameBuffer1, Lcd.rows*Lcd.cols*sizeof(char)); return 0; } int USBLCD_quit (void) { info("USBLCD: shutting down."); USBLCD_send(); debug ("closing port %s", Port); close(usblcd_file); if (Buffer) { free(Buffer); Buffer=NULL; } if (FrameBuffer1) { free(FrameBuffer1); FrameBuffer1=NULL; } if (FrameBuffer2) { free(FrameBuffer2); FrameBuffer2=NULL; } return 0; } LCD USBLCD[] = { { name: "USBLCD", rows: 0, cols: 0, xres: XRES, yres: YRES, bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2, icons: 0, gpos: 0, init: USBLCD_init, clear: USBLCD_clear, put: USBLCD_put, bar: USBLCD_bar, icon: USBLCD_icon, gpo: NULL, flush: USBLCD_flush, quit: USBLCD_quit }, { NULL } };