/* $Id: display.h,v 1.23 2004/01/09 17:03:07 reinelt Exp $ * * framework for device drivers * * 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: display.h,v $ * Revision 1.23 2004/01/09 17:03:07 reinelt * initiated transfer to new driver architecture * new file 'drv.c' will someday replace 'display.c' * new file 'drv_MatrixOrbital.c' will replace 'MatrixOrbital.c' * due to this 'soft' transfer lcd4linux should stay usable during the switch * (at least I hope so) * * Revision 1.22 2003/10/05 17:58:50 reinelt * libtool junk; copyright messages cleaned up * * Revision 1.21 2003/09/09 05:30:34 reinelt * even more icons stuff * * Revision 1.20 2003/09/01 04:09:34 reinelt * icons nearly finished, but MatrixOrbital only * * Revision 1.19 2003/08/24 05:17:58 reinelt * liblcd4linux patch from Patrick Schemitz * * Revision 1.18 2003/08/17 16:37:39 reinelt * more icon framework * * Revision 1.17 2003/08/17 12:11:58 reinelt * framework for icons prepared * * Revision 1.16 2003/07/24 04:48:09 reinelt * 'soft clear' needed for virtual rows * * Revision 1.15 2002/08/19 04:41:20 reinelt * introduced bar.c, moved bar stuff from display.h to bar.h * * Revision 1.14 2001/03/16 16:40:17 ltoetsch * implemented time bar * * Revision 1.13 2001/02/14 07:40:16 reinelt * * first (incomplete) GPO implementation * * Revision 1.12 2001/02/13 09:00:13 reinelt * * prepared framework for GPO's (general purpose outputs) * * Revision 1.11 2000/08/09 09:50:29 reinelt * * opened 0.98 development * removed driver-specific signal-handlers * added 'quit'-function to driver structure * added global signal-handler * * Revision 1.10 2000/03/26 18:46:28 reinelt * * bug in pixmap.c that leaded to empty bars fixed * name conflicts with X11 resolved * * Revision 1.9 2000/03/25 05:50:43 reinelt * * memory leak in Raster_flush closed * driver family logic changed * * Revision 1.8 2000/03/22 15:36:21 reinelt * * added '-l' switch (list drivers) * generic pixmap driver added * X11 Framework done * * Revision 1.7 2000/03/17 09:21:42 reinelt * * various memory statistics added * * Revision 1.6 2000/03/13 15:58:24 reinelt * * release 0.9 * moved row parsing to parser.c * all basic work finished * * Revision 1.5 2000/03/10 17:36:02 reinelt * * first unstable but running release * * Revision 1.4 2000/03/10 10:49:53 reinelt * * MatrixOrbital driver finished * * Revision 1.3 2000/03/06 06:04:06 reinelt * * minor cleanups * * Revision 1.2 2000/01/16 16:58:50 reinelt * *** empty log message *** * */ #ifndef _DISPLAY_H_ #define _DISPLAY_H_ typedef struct LCD { char *name; int rows; int cols; int xres; int yres; int bars; int icons; int gpos; int (*init) (struct LCD *Self); int (*clear) (int full); int (*put) (int x, int y, char *text); int (*bar) (int type, int x, int y, int max, int len1, int len2); int (*icon) (int num, int seq, int row, int col); int (*gpo) (int num, int val); int (*flush) (void); int (*quit) (void); } LCD; typedef struct { char *driver; LCD *Model; } FAMILY; // output file for Raster driver // has to be defined here because it's referenced // even if the raster driver is not included! extern char *output; int lcd_list (void); int lcd_init (char *driver); int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars, int *icons, int *gpos); int lcd_clear (int full); int lcd_put (int row, int col, char *text); int lcd_bar (int type, int row, int col, int max, int len1, int le2); int lcd_icon (int num, int seq, int row, int col); int lcd_gpo (int num, int val); int lcd_flush (void); int lcd_quit (void); #endif indow.c (thanks to Moe Wibble) git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@189 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-04-07[lcd4linux @ 2003-04-07 06:02:58 by reinelt]reinelt6-221/+245 further parallel port abstraction git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@188 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-04-04[lcd4linux @ 2003-04-04 06:01:59 by reinelt]reinelt8-375/+516 new parallel port abstraction scheme git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@187 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-27[lcd4linux @ 2003-02-27 07:48:57 by reinelt]reinelt2-12/+12 changed versioning scheme from 0.99 to 0.9.9 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@186 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-27[lcd4linux @ 2003-02-27 07:43:10 by reinelt]reinelt11-750/+2247 asm/msr.h: included hard-coded definition of rdtscl() if msr.h cannot be found. autoconf/automake/autoanything: switched back to 1.4. Hope it works again. git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@185 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-24[lcd4linux @ 2003-02-24 04:50:57 by reinelt]reinelt1-25/+65 cwlinux fixes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@184 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-22[lcd4linux @ 2003-02-22 07:53:09 by reinelt]reinelt23-97/+166 cfg_get(key,defval) git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@183 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-22[lcd4linux @ 2003-02-22 07:23:24 by reinelt]reinelt1-88/+102 Cwlinux fixes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@182 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-18[lcd4linux @ 2003-02-18 06:13:44 by reinelt]reinelt2-329/+327 X11 driver fixes and cleanup git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@181 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-17[lcd4linux @ 2003-02-17 06:06:12 by reinelt]reinelt1-1/+10 small bug in X11 driver: omit pixel gap between cahracters git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@180 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-17[lcd4linux @ 2003-02-17 04:27:58 by reinelt]reinelt1-13/+32 Text (curses) driver: cosmetic changes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@179 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-13[lcd4linux @ 2003-02-13 10:40:17 by reinelt]reinelt2-32/+128 changed "copyright" to "2003" added slightly different protocol for MatrixOrbital "LK202" displays git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@178 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-02-05[lcd4linux @ 2003-02-05 04:31:38 by reinelt]reinelt2-8/+29 T_EXEC: remove trailing CR/LF T_EXEC: deactivated maxlen calculation (for I don't understand what it is for :-) git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@177 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2003-01-12[lcd4linux @ 2003-01-12 06:51:27 by reinelt]reinelt1-8/+16 fixed bug in bar compaction git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@176 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-12-08[lcd4linux @ 2002-12-08 07:36:06 by reinelt]reinelt11-315/+314 autoconf/automake cleanup git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@175 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-12-06[lcd4linux @ 2002-12-06 07:38:43 by reinelt]reinelt6-1305/+2559 libgd/libpng bugfix: removed '-lpng -lz' from LDFLAGS git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@174 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-12-05[lcd4linux @ 2002-12-05 19:23:01 by reinelt]reinelt3-7/+16 fixed undefined operations found by gcc3 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@173 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-12-05[lcd4linux @ 2002-12-05 19:12:47 by reinelt]reinelt1-3/+15 sensors factor and offset patch from Petri Damsten <petri.damsten@raketti.net> git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@172 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-12-05[lcd4linux @ 2002-12-05 19:09:57 by reinelt]reinelt6-17/+29 patches for gcc-3.2 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@171 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-09-12[lcd4linux @ 2002-09-12 05:24:54 by reinelt]reinelt1-478/+199 code cleanup, character defining for bars git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@170 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-09-11[lcd4linux @ 2002-09-11 05:32:35 by reinelt]reinelt1-255/+47 changed to use new bar functions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@169 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-09-11[lcd4linux @ 2002-09-11 05:16:32 by reinelt]reinelt8-476/+1335 added Cwlinux driver git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@168 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-30[lcd4linux @ 2002-08-30 03:54:01 by reinelt]reinelt1-3/+8 bug in curses driver fixed git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@167 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-22[lcd4linux @ 2002-08-22 05:51:36 by reinelt]reinelt1-7/+4 cosmetic changes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@166 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-21[lcd4linux @ 2002-08-21 06:09:53 by reinelt]reinelt2-10/+48 some T6963 fixes, ndelay wrap git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@165 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 10:51:06 by reinelt]reinelt2-259/+60 M50530 driver using new generic bar functions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@164 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 09:43:43 by reinelt]reinelt1-261/+57 BeckmannEgle using new generic bar functions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@163 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 09:30:18 by reinelt]reinelt1-256/+106 MatrixOrbital uses generic bar funnctions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@162 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 09:11:34 by reinelt]reinelt2-257/+51 changed HD44780 to use generic bar functions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@161 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 07:52:19 by reinelt]reinelt3-8/+17 corrected type declaration of (*defchar)() git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@160 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 07:36:29 by reinelt]reinelt7-359/+481 finished bar.c, USBLCD is the first driver that uses the generic bar functions git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@159 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-19[lcd4linux @ 2002-08-19 04:41:20 by reinelt]reinelt20-32/+166 introduced bar.c, moved bar stuff from display.h to bar.h git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@158 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-18[lcd4linux @ 2002-08-18 08:11:11 by reinelt]reinelt1-26/+28 USBLCD buffered I/O git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@157 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-17[lcd4linux @ 2002-08-17 14:14:21 by reinelt]reinelt3-67/+101 USBLCD fixes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@156 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-17[lcd4linux @ 2002-08-17 13:10:22 by reinelt]reinelt9-182/+765 USBLCD driver added git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@155 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-08-17[lcd4linux @ 2002-08-17 12:54:08 by reinelt]reinelt1-7/+23 minor T6963 changes git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@154 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-04-30[lcd4linux @ 2002-04-30 07:20:15 by reinelt]reinelt2-173/+129 implemented the new ndelay(nanoseconds) in all parallel port drivers git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@153 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2002-04-29[lcd4linux @ 2002-04-29 11:00:25 by reinelt]reinelt14-2339/+5100 added Toshiba T6963 driver added ndelay() with nanosecond resolution git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@152 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-14[lcd4linux @ 2001-09-14 05:57:06 by reinelt]reinelt1-1/+5 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@151 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-13[lcd4linux @ 2001-09-13 07:40:57 by reinelt]reinelt1-0/+6 TODO update git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@150 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-12[lcd4linux @ 2001-09-12 06:17:22 by reinelt]reinelt2-1/+8 git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@149 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-12[lcd4linux @ 2001-09-12 05:58:16 by reinelt]reinelt3-9/+27 fixed bug in mail2.c git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@148 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-12[lcd4linux @ 2001-09-12 05:37:22 by reinelt]reinelt4-23/+99 fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's improved socket debugging git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@147 3ae390bd-cb1e-0410-b409-cd5a39f66f1f 2001-09-11[lcd4linux @ 2001-09-11 06:43:43 by reinelt]reinelt1-1/+10 TODO items git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@146 3ae390bd-cb1e-0410-b409-cd5a39f66f1f