diff options
author | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2000-03-22 15:36:21 +0000 |
---|---|---|
committer | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2000-03-22 15:36:21 +0000 |
commit | 71bb97d17872618981e8723e6fd3fd613a647c9d (patch) | |
tree | cb85a9ee9f8f4adf8c61077573e696c1527f4ac5 | |
parent | 6f0d2a7f029d3d681efb9a0492b5880245a7099b (diff) | |
download | lcd4linux-71bb97d17872618981e8723e6fd3fd613a647c9d.tar.gz |
[lcd4linux @ 2000-03-22 15:36:21 by reinelt]
added '-l' switch (list drivers)
generic pixmap driver added
X11 Framework done
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@16 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to '')
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | Makefile.in | 12 | ||||
-rw-r--r-- | XWindow.c | 115 | ||||
-rw-r--r-- | display.c | 33 | ||||
-rw-r--r-- | display.h | 9 | ||||
-rw-r--r-- | fontmap.c | 837 | ||||
-rw-r--r-- | lcd4linux.c | 16 | ||||
-rw-r--r-- | lcd4linux.conf.sample | 14 | ||||
-rw-r--r-- | pixmap.c | 165 | ||||
-rw-r--r-- | pixmap.h | 44 |
10 files changed, 1231 insertions, 19 deletions
diff --git a/Makefile.am b/Makefile.am index 86e6be1..443f527 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,7 +15,10 @@ lcd4linux_SOURCES = \ isdn.c isdn.h \ filter.c filter.h \ display.c display.h \ + pixmap.c pixmap.h \ + fontmap.c fontmap.h \ Skeleton.c \ - MatrixOrbital.c + MatrixOrbital.c \ + XWindow.c diff --git a/Makefile.in b/Makefile.in index 9231301..0bb3143 100644 --- a/Makefile.in +++ b/Makefile.in @@ -68,7 +68,7 @@ CLEANFILES = *~ AM_CFLAGS = -Wall bin_PROGRAMS = lcd4linux -lcd4linux_SOURCES = lcd4linux.c cfg.c cfg.h parser.c parser.h processor.c processor.h system.c system.h isdn.c isdn.h filter.c filter.h display.c display.h Skeleton.c MatrixOrbital.c +lcd4linux_SOURCES = lcd4linux.c cfg.c cfg.h parser.c parser.h processor.c processor.h system.c system.h isdn.c isdn.h filter.c filter.h display.c display.h pixmap.c pixmap.h fontmap.c fontmap.h Skeleton.c MatrixOrbital.c XWindow.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs @@ -81,7 +81,8 @@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ lcd4linux_OBJECTS = lcd4linux.o cfg.o parser.o processor.o system.o \ -isdn.o filter.o display.o Skeleton.o MatrixOrbital.o +isdn.o filter.o display.o pixmap.o fontmap.o Skeleton.o MatrixOrbital.o \ +XWindow.o lcd4linux_LDADD = $(LDADD) lcd4linux_DEPENDENCIES = lcd4linux_LDFLAGS = @@ -97,9 +98,10 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best -DEP_FILES = .deps/MatrixOrbital.P .deps/Skeleton.P .deps/cfg.P \ -.deps/display.P .deps/filter.P .deps/isdn.P .deps/lcd4linux.P \ -.deps/parser.P .deps/processor.P .deps/system.P +DEP_FILES = .deps/MatrixOrbital.P .deps/Skeleton.P .deps/XWindow.P \ +.deps/cfg.P .deps/display.P .deps/filter.P .deps/fontmap.P .deps/isdn.P \ +.deps/lcd4linux.P .deps/parser.P .deps/pixmap.P .deps/processor.P \ +.deps/system.P SOURCES = $(lcd4linux_SOURCES) OBJECTS = $(lcd4linux_OBJECTS) diff --git a/XWindow.c b/XWindow.c new file mode 100644 index 0000000..259caf8 --- /dev/null +++ b/XWindow.c @@ -0,0 +1,115 @@ +/* $Id: XWindow.c,v 1.1 2000/03/22 15:36:21 reinelt Exp $ + * + * driver for X11 + * + * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at) + * + * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + * $Log: XWindow.c,v $ + * Revision 1.1 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * + */ + +/* + * + * exported fuctions: + * + * struct DISPLAY XWindow[] + * + */ + +#include <stdlib.h> +#include <stdio.h> + +#include "cfg.h" +#include "display.h" +#include "pixmap.h" + +#define BARS ( BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 ) + +static DISPLAY Display; + +int X_flush (void) +{ + int r, c; + + for (r=0; r<Display.rows*Display.yres; r++) { + for (c=0; c<Display.cols*Display.xres; c++) { + printf ("%c", Pixmap[r*Display.cols*Display.xres+c] ? '#':'.'); + } + printf ("\n"); + } + printf ("\n"); + return 0; +} + +int X_clear (void) +{ + if (pix_clear()!=0) + return -1; + + if (X_flush()!=0) + return -1; + + return 0; +} + +int X_init (DISPLAY *Self) +{ + int rows=-1; + int cols=-1; + + rows=atoi(cfg_get("rows")); + cols=atoi(cfg_get("columns")); + + if (rows<1 || cols<1) { + fprintf (stderr, "X11: incorrect number of rows or columns\n"); + return -1; + } + + if (pix_init (rows, cols)!=0) { + fprintf (stderr, "X11: pix_init(%d, %d) failed\n", rows, cols); + return -1; + } + + Self->rows=rows; + Self->cols=cols; + Display=*Self; + + pix_clear(); + return 0; +} + +int X_put (int row, int col, char *text) +{ + return pix_put (row, col, text); +} + +int X_bar (int type, int row, int col, int max, int len1, int len2) +{ + return pix_bar (type, row, col, max, len1, len2); +} + + +DISPLAY XWindow[] = { + { "X11", 0, 0, XRES, YRES, BARS, X_init, X_clear, X_put, X_bar, X_flush }, + { "" } +}; @@ -1,4 +1,4 @@ -/* $Id: display.c,v 1.8 2000/03/19 08:41:28 reinelt Exp $ +/* $Id: display.c,v 1.9 2000/03/22 15:36:21 reinelt Exp $ * * framework for device drivers * @@ -20,6 +20,12 @@ * * * $Log: display.c,v $ + * Revision 1.9 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * * Revision 1.8 2000/03/19 08:41:28 reinelt * * documentation available! README, README.MatrixOrbital, README.Drivers @@ -58,6 +64,9 @@ /* * exported functions: * + * lcd_list (void) + * lists all available drivers to stdout + * * lcd_init (char *display) * initializes the named driver * @@ -87,16 +96,34 @@ extern DISPLAY Skeleton[]; extern DISPLAY MatrixOrbital[]; +extern DISPLAY XWindow[]; FAMILY Driver[] = { - { "Skeleton", Skeleton }, - { "MatrixOrbital", MatrixOrbital }, + { "Skeleton", Skeleton }, + { "Matrix Orbital", MatrixOrbital }, + { "X Window System", XWindow }, { "" } }; static DISPLAY *Display = NULL; +int lcd_list (void) +{ + int i, j; + + printf ("available display drivers:"); + + for (i=0; Driver[i].name[0]; i++) { + printf ("\n %-16s:", Driver[i].name); + for (j=0; Driver[i].Display[j].name[0]; j++) { + printf (" %s", Driver[i].Display[j].name); + } + } + printf ("\n"); + return 0; +} + int lcd_init (char *display) { int i, j; @@ -1,4 +1,4 @@ -/* $Id: display.h,v 1.7 2000/03/17 09:21:42 reinelt Exp $ +/* $Id: display.h,v 1.8 2000/03/22 15:36:21 reinelt Exp $ * * framework for device drivers * @@ -20,6 +20,12 @@ * * * $Log: display.h,v $ + * 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 @@ -81,6 +87,7 @@ typedef struct { DISPLAY *Display; } FAMILY; +int lcd_list (void); int lcd_init (char *display); int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars); int lcd_clear (void); diff --git a/fontmap.c b/fontmap.c new file mode 100644 index 0000000..e8494ae --- /dev/null +++ b/fontmap.c @@ -0,0 +1,837 @@ +/* $Id: fontmap.c,v 1.1 2000/03/22 15:36:21 reinelt Exp $ + * + * 5x8 font + * + * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at) + * + * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + * $Log: fontmap.c,v $ + * Revision 1.1 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * + */ + +#include "pixmap.h" +#include "fontmap.h" + +#define b______ 0x00 +#define b_____O 0x01 +#define b____O_ 0x02 +#define b____OO 0x03 +#define b___O__ 0x04 +#define b___O_O 0x05 +#define b___OO_ 0x06 +#define b___OOO 0x07 +#define b__O___ 0x08 +#define b__O__O 0x09 +#define b__O_O_ 0x0a +#define b__O_OO 0x0b +#define b__OO__ 0x0c +#define b__OO_O 0x0d +#define b__OOO_ 0x0e +#define b__OOOO 0x0f +#define b_O____ 0x10 +#define b_O___O 0x11 +#define b_O__O_ 0x12 +#define b_O__OO 0x13 +#define b_O_O__ 0x14 +#define b_O_O_O 0x15 +#define b_O_OO_ 0x16 +#define b_O_OOO 0x17 +#define b_OO___ 0x18 +#define b_OO__O 0x19 +#define b_OO_O_ 0x1a +#define b_OO_OO 0x1b +#define b_OOO__ 0x1c +#define b_OOO_O 0x1d +#define b_OOOO_ 0x1e +#define b_OOOOO 0x1f + +unsigned char Fontmap[256][8]={ + [0x20] { b______, + b______, + b______, + b______, + b______, + b______, + b______, + b______ }, + [0x21] { b___O__, + b___O__, + b___O__, + b___O__, + b______, + b______, + b___O__, + b______ }, + [0x22] { b__O_O_, + b__O_O_, + b__O_O_, + b______, + b______, + b______, + b______, + b______ }, + [0x23] { b__O_O_, + b__O_O_, + b_OOOOO, + b__O_O_, + b_OOOOO, + b__O_O_, + b__O_O_, + b______ }, + [0x24] { b___O__, + b__OOOO, + b_O_O__, + b__OOO_, + b___O_O, + b_OOOO_, + b___O__, + b______ }, + [0x25] { b_OO___, + b_OO__O, + b____O_, + b___O__, + b__O___, + b_O__OO, + b____OO, + b______ }, + [0x26] { b__OO__, + b_O__O_, + b_O_O__, + b__O___, + b_O_O_O, + b_O__O_, + b__OO_O, + b______ }, + [0x27] { b__OO__, + b___O__, + b__O___, + b______, + b______, + b______, + b______, + b______ }, + [0x28] { b____O_, + b___O__, + b__O___, + b__O___, + b__O___, + b___O__, + b____O_, + b______ }, + [0x29] { b__O___, + b___O__, + b____O_, + b____O_, + b____O_, + b___O__, + b__O___, + b______ }, + [0x2a] { b______, + b___O__, + b_O_O_O, + b__OOO_, + b_O_O_O, + b___O__, + b______, + b______ }, + [0x2b] { b______, + b___O__, + b___O__, + b_OOOOO, + b___O__, + b___O__, + b______, + b______ }, + [0x2c] { b______, + b______, + b______, + b______, + b__OO__, + b___O__, + b__O___, + b______ }, + [0x2d] { b______, + b______, + b______, + b_OOOOO, + b______, + b______, + b______, + b______ }, + [0x2e] { b______, + b______, + b______, + b______, + b______, + b__OO__, + b__OO__, + b______ }, + [0x2f] { b______, + b_____O, + b____O_, + b___O__, + b__O___, + b_O____, + b______, + b______ }, + [0x30] { b__OOO_, + b_O___O, + b_O__OO, + b_O_O_O, + b_OO__O, + b_O___O, + b__OOO_, + b______ }, + [0x31] { b___O__, + b__OO__, + b___O__, + b___O__, + b___O__, + b___O__, + b__OOO_, + b______ }, + [0x32] { b__OOO_, + b_O___O, + b_____O, + b____O_, + b___O__, + b__O___, + b_OOOOO, + b______ }, + [0x33] { b_OOOOO, + b____O_, + b___O__, + b____O_, + b_____O, + b_O___O, + b__OOO_, + b______ }, + [0x34] { b____O_, + b___OO_, + b__O_O_, + b_O__O_, + b_OOOOO, + b____O_, + b____O_, + b______ }, + [0x35] { b_OOOOO, + b_O____, + b_O____, + b_OOOO_, + b_____O, + b_O___O, + b__OOO_, + b______ }, + [0x36] { b___OO_, + b__O___, + b_O____, + b_OOOO_, + b_O___O, + b_O___O, + b__OOO_, + b______ }, + [0x37] { b_OOOOO, + b_____O, + b____O_, + b___O__, + b__O___, + b__O___, + b__O___, + b______ }, + [0x38] { b__OOO_, + b_O___O, + b_O___O, + b__OOO_, + b_O___O, + b_O___O, + b__OOO_, + b______ }, + [0x39] { b__OOO_, + b_O___O, + b_O___O, + b__OOOO, + b_____O, + b____O_, + b__OO__, + b______ }, + [0x3a] { b______, + b__OO__, + b__OO__, + b______, + b__OO__, + b__OO__, + b______, + b______ }, + [0x3b] { b______, + b__OO__, + b__OO__, + b______, + b__OO__, + b___O__, + b__O___, + b______ }, + [0x3c] { b____O_, + b___O__, + b__O___, + b_O____, + b__O___, + b___O__, + b____O_, + b______ }, + [0x3d] { b______, + b______, + b_OOOOO, + b______, + b_OOOOO, + b______, + b______, + b______ }, + [0x3e] { b_O____, + b__O___, + b___O__, + b____O_, + b___O__, + b__O___, + b_O____, + b______ }, + [0x3f] { b__OOO_, + b_O___O, + b_____O, + b____O_, + b___O__, + b______, + b___O__, + b______ }, + [0x40] { b__OOO_, + b_O___O, + b_____O, + b__OO_O, + b_O_O_O, + b_O_O_O, + b__OOO_, + b______ }, + [0x41] { b__OOO_, + b_O___O, + b_O___O, + b_O___O, + b_OOOOO, + b_O___O, + b_O___O, + b______ }, + [0x42] { b_OOOO_, + b_O___O, + b_O___O, + b_OOOO_, + b_O___O, + b_O___O, + b_OOOO_, + b______ }, + [0x43] { b__OOO_, + b_O___O, + b_O____, + b_O____, + b_O____, + b_O___O, + b__OOO_, + b______ }, + [0x44] { b_OOO__, + b_O__O_, + b_O___O, + b_O___O, + b_O___O, + b_O__O_, + b_OOO__, + b______ }, + [0x45] { b_OOOOO, + b_O____, + b_O____, + b_OOOO_, + b_O____, + b_O____, + b_OOOOO, + b______ }, + [0x46] { b_OOOOO, + b_O____, + b_O____, + b_OOOO_, + b_O____, + b_O____, + b_O____, + b______ }, + [0x47] { b__OOO_, + b_O___O, + b_O____, + b_O_OOO, + b_O___O, + b_O___O, + b__OOOO, + b______ }, + [0x48] { b_O___O, + b_O___O, + b_O___O, + b_OOOOO, + b_O___O, + b_O___O, + b_O___O, + b______ }, + [0x49] { b__OOO_, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b__OOO_, + b______ }, + [0x4a] { b___OOO, + b____O_, + b____O_, + b____O_, + b____O_, + b_O__O_, + b__OO__, + b______ }, + [0x4b] { b_O___O, + b_O__O_, + b_O_O__, + b_OO___, + b_O_O__, + b_O__O_, + b_O___O, + b______ }, + [0x4c] { b_O____, + b_O____, + b_O____, + b_O____, + b_O____, + b_O____, + b_OOOOO, + b______ }, + [0x4d] { b_O___O, + b_OO_OO, + b_O_O_O, + b_O_O_O, + b_O___O, + b_O___O, + b_O___O, + b______ }, + [0x4e] { b_O___O, + b_O___O, + b_OO__O, + b_O_O_O, + b_O__OO, + b_O___O, + b_O___O, + b______ }, + [0x4f] { b__OOO_, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b__OOO_, + b______ }, + [0x50] { b_OOOO_, + b_O___O, + b_O___O, + b_OOOO_, + b_O____, + b_O____, + b_O____, + b______ }, + [0x51] { b__OOO_, + b_O___O, + b_O___O, + b_O___O, + b_O_O_O, + b_O__O_, + b__OO_O, + b______ }, + [0x52] { b_OOOO_, + b_O___O, + b_O___O, + b_OOOO_, + b_O_O__, + b_O__O_, + b_O___O, + b______ }, + [0x53] { b__OOOO, + b_O____, + b_O____, + b__OOO_, + b_____O, + b_____O, + b_OOOO_, + b______ }, + [0x54] { b_OOOOO, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b______ }, + [0x55] { b_O___O, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b__OOO_, + b______ }, + [0x56] { b_O___O, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b__O_O_, + b___O__, + b______ }, + [0x57] { b_O___O, + b_O___O, + b_O___O, + b_O_O_O, + b_O_O_O, + b_O_O_O, + b__O_O_, + b______ }, + [0x58] { b_O___O, + b_O___O, + b__O_O_, + b___O__, + b__O_O_, + b_O___O, + b_O___O, + b______ }, + [0x59] { b_O___O, + b_O___O, + b_O___O, + b__O_O_, + b___O__, + b___O__, + b___O__, + b______ }, + [0x5a] { b_OOOOO, + b_____O, + b____O_, + b___O__, + b__O___, + b_O____, + b_OOOOO, + b______ }, + [0x5b] { b__OOO_, + b__O___, + b__O___, + b__O___, + b__O___, + b__O___, + b__OOO_, + b______ }, + [0x5c] { b_O___O, + b__O_O_, + b_OOOOO, + b___O__, + b_OOOOO, + b___O__, + b___O__, + b______ }, + [0x5d] { b__OOO_, + b____O_, + b____O_, + b____O_, + b____O_, + b____O_, + b__OOO_, + b______ }, + [0x5e] { b___O__, + b__O_O_, + b_O___O, + b______, + b______, + b______, + b______, + b______ }, + [0x5f] { b______, + b______, + b______, + b______, + b______, + b______, + b_OOOOO, + b______ }, + [0x60] { b__O___, + b___O__, + b____O_, + b______, + b______, + b______, + b______, + b______ }, + [0x61] { b______, + b______, + b__OOO_, + b_____O, + b__OOOO, + b_O___O, + b__OOOO, + b______ }, + [0x62] { b_O____, + b_O____, + b_O____, + b_O_OO_, + b_OO__O, + b_O___O, + b_OOOO_, + b______ }, + [0x63] { b______, + b______, + b__OOO_, + b_O____, + b_O____, + b_O___O, + b__OOO_, + b______ }, + [0x64] { b_____O, + b_____O, + b_____O, + b__OO_O, + b_O__OO, + b_O___O, + b__OOOO, + b______ }, + [0x65] { b______, + b______, + b__OOO_, + b_O___O, + b_OOOOO, + b_O____, + b__OOO_, + b______ }, + [0x66] { b___OO_, + b__O__O, + b__O___, + b_OOO__, + b__O___, + b__O___, + b__O___, + b______ }, + [0x67] { b______, + b__OOOO, + b_O___O, + b_O___O, + b__OOOO, + b_____O, + b__OOO_, + b______ }, + [0x68] { b_O____, + b_O____, + b_O_OO_, + b_OO__O, + b_O___O, + b_O___O, + b_O___O, + b______ }, + [0x69] { b______, + b___O__, + b______, + b__OO__, + b___O__, + b___O__, + b__OOO_, + b______ }, + [0x6a] { b____O_, + b______, + b___OO_, + b____O_, + b____O_, + b_O__O_, + b__OO__, + b______ }, + [0x6b] { b__O___, + b__O___, + b__O__O, + b__O_O_, + b__OO__, + b__O_O_, + b__O__O, + b______ }, + [0x6c] { b__OO__, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b__OOO_, + b______ }, + [0x6d] { b______, + b______, + b_OO_O_, + b_O_O_O, + b_O_O_O, + b_O___O, + b_O___O, + b______ }, + [0x6e] { b______, + b______, + b_OOOO_, + b_O___O, + b_O___O, + b_O___O, + b_O___O, + b______ }, + [0x6f] { b______, + b______, + b__OOO_, + b_O___O, + b_O___O, + b_O___O, + b__OOO_, + b______ }, + [0x70] { b______, + b______, + b_OOOO_, + b_O___O, + b_OOOO_, + b_O____, + b_O____, + b______ }, + [0x71] { b______, + b______, + b__OO_O, + b_O__OO, + b__OOOO, + b_____O, + b_____O, + b______ }, + [0x72] { b______, + b______, + b_O_OO_, + b_OO__O, + b_O____, + b_O____, + b_O____, + b______ }, + [0x73] { b______, + b______, + b__OOO_, + b_O____, + b__OOO_, + b_____O, + b_OOOO_, + b______ }, + [0x74] { b__O___, + b_OOO__, + b__O___, + b__O___, + b__O___, + b__O__O, + b___OO_, + b______ }, + [0x75] { b______, + b______, + b_O___O, + b_O___O, + b_O___O, + b_O__OO, + b__OO_O, + b______ }, + [0x76] { b______, + b______, + b_O___O, + b_O___O, + b_O___O, + b__O_O_, + b___O__, + b______ }, + [0x77] { b______, + b______, + b_O___O, + b_O___O, + b_O___O, + b_O_O_O, + b__O_O_, + b______ }, + [0x78] { b______, + b______, + b_O___O, + b__O_O_, + b___O__, + b__O_O_, + b_O___O, + b______ }, + [0x79] { b______, + b______, + b_O___O, + b_O___O, + b__OOOO, + b_____O, + b__OOO_, + b______ }, + [0x7a] { b______, + b______, + b_OOOOO, + b____O_, + b___O__, + b__O___, + b_OOOOO, + b______ }, + [0x7b] { b____O_, + b___O__, + b___O__, + b__O___, + b___O__, + b___O__, + b____O_, + b______ }, + [0x7c] { b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b___O__, + b______ }, + [0x7d] { b__O___, + b___O__, + b___O__, + b____O_, + b___O__, + b___O__, + b__O___, + b______ }, + [0x7e] { b______, + b___O__, + b____O_, + b_OOOOO, + b____O_, + b___O__, + b______, + b______ }, + + [0x7f] { b______, + b___O__, + b__O___, + b_OOOOO, + b__O___, + b___O__, + b______, + b______ }, +}; diff --git a/lcd4linux.c b/lcd4linux.c index cdd0370..b9fd024 100644 --- a/lcd4linux.c +++ b/lcd4linux.c @@ -1,4 +1,4 @@ -/* $Id: lcd4linux.c,v 1.8 2000/03/22 07:33:50 reinelt Exp $ +/* $Id: lcd4linux.c,v 1.9 2000/03/22 15:36:21 reinelt Exp $ * * LCD4Linux * @@ -20,6 +20,12 @@ * * * $Log: lcd4linux.c,v $ + * Revision 1.9 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * * Revision 1.8 2000/03/22 07:33:50 reinelt * * FAQ added @@ -67,11 +73,12 @@ #include "display.h" #include "processor.h" +char *release="LCD4Linux V" VERSION " (c) 2000 Michael Reinelt <reinelt@eunet.at>"; int tick, tack; static void usage(void) { - printf ("LCD4Linux V" VERSION " (c) 2000 Michael Reinelt <reinelt@eunet.at>\n"); + printf ("%s\n", release); printf ("usage: lcd4linux [-h] [-l] [-f config-file]\n"); } @@ -87,7 +94,8 @@ void main (int argc, char *argv[]) usage(); exit(0); case 'l': - usage(); + printf ("%s\n", release); + lcd_list(); exit(0); case 'f': cfg=optarg; @@ -134,7 +142,7 @@ void main (int argc, char *argv[]) process_init(); lcd_clear(); - lcd_put (1, 1, "** LCD4Linux V" VERSION " **"); + lcd_put (1, 1, "* LCD4Linux V" VERSION " *"); lcd_put (2, 1, " (c) 2000 M.Reinelt"); lcd_flush(); diff --git a/lcd4linux.conf.sample b/lcd4linux.conf.sample index 783ea8b..f00c93e 100644 --- a/lcd4linux.conf.sample +++ b/lcd4linux.conf.sample @@ -1,8 +1,12 @@ -Display LCD2041 -Port /dev/ttyS2 -Speed 19200 -Contrast 160 - +#Display LCD2041 +#Port /dev/ttyS2 +#Speed 19200 +#Contrast 160 + +Display X11 +rows 2 +columns 20 + #Row1 "*** %o %v ***" #Row2 "%p CPU %r MB RAM" #Row3 "Busy %cu%% $r10cs+cb" diff --git a/pixmap.c b/pixmap.c new file mode 100644 index 0000000..ceaa1f2 --- /dev/null +++ b/pixmap.c @@ -0,0 +1,165 @@ +/* $Id: pixmap.c,v 1.1 2000/03/22 15:36:21 reinelt Exp $ + * + * generic pixmap driver + * + * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at) + * + * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + * $Log: pixmap.c,v $ + * Revision 1.1 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * + */ + +/* + * exported functions: + * + * int pix_clear(void); + * clears the pixmap + * + * int pix_init (int r, int c); + * allocates & clear pixmap wit r rows and c columns + * + * int pix_put (int row, int col, char *text); + * draws text into the pixmap + * + * int pix_bar (int type, int row, int col, int max, int len1, int len2); + * draws a bar into the pixmap + * + */ + +#include <stdlib.h> +#include <stdio.h> + +#include "display.h" +#include "pixmap.h" +#include "fontmap.h" + +static int rows=0; +static int cols=0; +unsigned char *Pixmap=NULL; + +int pix_clear(void) +{ + int i; + + for (i=0; i<rows*cols; i++) { + Pixmap[i]=0; + } + + return 0; +} + +int pix_init (int r, int c) +{ + if (r<1 || c<1) + return -1; + + if (Pixmap) + free (Pixmap); + + rows=r*YRES; + cols=c*XRES; + + if ((Pixmap=malloc (rows*cols*sizeof(unsigned char)))==NULL) + return -1; + + return pix_clear(); +} + +int pix_put (int row, int col, char *text) +{ + int c, x, y, mask; + + row*=YRES; + col*=XRES; + + while (*text && col<cols) { + c=*text; + for (y=0; y<YRES; y++) { + mask=1<<XRES; + for (x=0; x<XRES; x++) { + mask>>=1; + Pixmap[(row+y)*cols+col+x]=Fontmap[c][y]&mask?1:0; + } + } + col+=XRES; + text++; + } + return 0; +} + +int pix_bar (int type, int row, int col, int max, int len1, int len2) +{ + int i, x, y, len, rev; + unsigned char *p; + + row*=YRES; + col*=XRES; + + if (type & BAR_H) { + if (max>cols-col) + max=cols-col; + } else { + if (max>rows-row) + max=rows-row; + } + + if (len1<1) len1=1; + else if (len1>max) len1=max; + + if (len2<1) len2=1; + else if (len2>max) len2=max; + + rev=0; + + switch (type) { + case BAR_L: + len1=max-len1; + len2=max-len2; + rev=1; + + case BAR_R: + for (y=0; y<YRES; y++) { + len=y<YRES/2?len1:len2; + for (x=0; x<max; x++) { + Pixmap[(row+y)*cols+col+x]=x<len?!rev:rev; + } + } + break; + + case BAR_U: + len1=max-len1; + len2=max-len2; + rev=1; + + case BAR_D: + for (y=0; y<max; y++) { + for (x=0; x<XRES; x++) { + len=x<XRES/2?len1:len2; + Pixmap[(row+y)*cols+col+x]=y<len?!rev:rev; + } + } + break; + + } + return 0; +} + diff --git a/pixmap.h b/pixmap.h new file mode 100644 index 0000000..d5c818d --- /dev/null +++ b/pixmap.h @@ -0,0 +1,44 @@ +/* $Id: pixmap.h,v 1.1 2000/03/22 15:36:21 reinelt Exp $ + * + * generic pixmap driver + * + * Copyright 1999, 2000 by Michael Reinelt (reinelt@eunet.at) + * + * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * + * $Log: pixmap.h,v $ + * Revision 1.1 2000/03/22 15:36:21 reinelt + * + * added '-l' switch (list drivers) + * generic pixmap driver added + * X11 Framework done + * + */ + +#ifndef _PIXMAP_H_ +#define _PIXMAP_H_ + +#define XRES 6 +#define YRES 8 + +extern unsigned char *Pixmap; + +int pix_clear(void); +int pix_init (int r, int c); +int pix_put (int row, int col, char *text); +int pix_bar (int type, int row, int col, int max, int len1, int len2); + +#endif |