]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2000-03-22 15:36:21 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 22 Mar 2000 15:36:21 +0000 (15:36 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 22 Mar 2000 15:36:21 +0000 (15:36 +0000)
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

Makefile.am
Makefile.in
XWindow.c [new file with mode: 0644]
display.c
display.h
fontmap.c [new file with mode: 0644]
lcd4linux.c
lcd4linux.conf.sample
pixmap.c [new file with mode: 0644]
pixmap.h [new file with mode: 0644]

index 86e6be138996503a8f30dff70ed5e7e4b6591e11..443f5274431e345286d52c767ccf6cf2e33dfedc 100644 (file)
@@ -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
 
 
index 9231301e6629f2c9b348a8d27942d1f6330488ed..0bb31439050a30996a080a37c0ed1e32d1b9aa16 100644 (file)
@@ -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 (file)
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 },
+  { "" }
+};
index 113babca57b00997dd2f49ace1ee4f8e15519d06..c06f36ae086877081bff8bace2fd9cfcf690b28e 100644 (file)
--- a/display.c
+++ b/display.c
@@ -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
  *
  *
  *
  * $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
  *
 
 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;
index 937d030c74aa3fb7eed93f4c02ab913052190c81..208ba837a796d7f5adbbe88fb67910b3a1017a02 100644 (file)
--- a/display.h
+++ b/display.h
@@ -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
  *
  *
  *
  * $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 (file)
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______ },
+};
index cdd03706dfd5de0ac9c07b933970f31568e34fc1..b9fd02445eacfcc6a389d82b349a548573c84a50 100644 (file)
@@ -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
  *
  *
  *
  * $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
 #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();
   
index 783ea8b57e304306eadde6491bfc1ba660448bc1..f00c93e2df91bb4a3b644b8e5c0f88381eae1641 100644 (file)
@@ -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 (file)
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 (file)
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