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
| -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  | 
