]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2005-02-24 07:06:45 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 24 Feb 2005 07:06:48 +0000 (07:06 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 24 Feb 2005 07:06:48 +0000 (07:06 +0000)
SimpleLCD driver added

git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@515 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

Makefile.am
Makefile.in
config.h.in
configure
drivers.m4
drv.c
drv_Crystalfontz.c
drv_LCDLinux.c
drv_SimpleLCD.c [new file with mode: 0644]
drv_generic_text.c
lcd4linux.conf.sample

index cf89cd2535949a96299518fb5badd393f9d73895..7451fd0fa3dcbacb43e7c2e9899599a15f3bea86 100644 (file)
@@ -71,6 +71,7 @@ drv_MatrixOrbital.c         \
 drv_MilfordInstruments.c    \
 drv_NULL.c                  \
 drv_RouterBoard.c           \
+drv_SimpleLCD.c             \
 drv_T6963.c                 \
 drv_USBLCD.c                \
 drv_X11.c                   \
index b64f8c69f9d3511703c68ac8e99c0b47f197a3c9..afa50c11b297544ff40fba234308682e6309cfc1 100644 (file)
@@ -99,7 +99,7 @@ lcd4linux_SOURCES =  lcd4linux.c                 cfg.c         cfg.h         deb
 
 #liblcd4linux_la_SOURCES =
 
-EXTRA_lcd4linux_SOURCES =  drv_generic_text.c          drv_generic_text.h          drv_generic_graphic.c       drv_generic_graphic.h       drv_generic_serial.c        drv_generic_serial.h        drv_generic_parport.c       drv_generic_parport.h       drv_BeckmannEgle.c          drv_BWCT.c                  drv_Crystalfontz.c          drv_Curses.c                drv_Cwlinux.c               drv_HD44780.c               drv_Image.c                 drv_LCDLinux.c              drv_LCDTerm.c               drv_M50530.c                drv_MatrixOrbital.c         drv_MilfordInstruments.c    drv_NULL.c                  drv_RouterBoard.c           drv_T6963.c                 drv_USBLCD.c                drv_X11.c                                               font_6x8.h                                              plugin_apm.c                plugin_cpuinfo.c            plugin_diskstats.c          plugin_dvb.c                plugin_exec.c               plugin_i2c_sensors.c        plugin_imon.c               plugin_isdn.c               plugin_loadavg.c            plugin_meminfo.c            plugin_mysql.c              plugin_netdev.c             plugin_pop3.c               plugin_ppp.c                plugin_proc_stat.c          plugin_seti.c               plugin_uname.c              plugin_uptime.c             plugin_wireless.c           plugin_xmms.c
+EXTRA_lcd4linux_SOURCES =  drv_generic_text.c          drv_generic_text.h          drv_generic_graphic.c       drv_generic_graphic.h       drv_generic_serial.c        drv_generic_serial.h        drv_generic_parport.c       drv_generic_parport.h       drv_BeckmannEgle.c          drv_BWCT.c                  drv_Crystalfontz.c          drv_Curses.c                drv_Cwlinux.c               drv_HD44780.c               drv_Image.c                 drv_LCDLinux.c              drv_LCDTerm.c               drv_M50530.c                drv_MatrixOrbital.c         drv_MilfordInstruments.c    drv_NULL.c                  drv_RouterBoard.c           drv_SimpleLCD.c             drv_T6963.c                 drv_USBLCD.c                drv_X11.c                                               font_6x8.h                                              plugin_apm.c                plugin_cpuinfo.c            plugin_diskstats.c          plugin_dvb.c                plugin_exec.c               plugin_i2c_sensors.c        plugin_imon.c               plugin_isdn.c               plugin_loadavg.c            plugin_meminfo.c            plugin_mysql.c              plugin_netdev.c             plugin_pop3.c               plugin_ppp.c                plugin_proc_stat.c          plugin_seti.c               plugin_uname.c              plugin_uptime.c             plugin_wireless.c           plugin_xmms.c
 
 
 EXTRA_DIST =  lcd4linux.conf.sample       lcd4kde.conf                lcd4linux.kdelnk            lcd4linux.xpm               lcd4linux.lsm               curses.m4                   AUTHORS                     CREDITS                     FAQ                         NEWS                        TODO                        README                      README.Drivers              README.Plugins              README.KDE                  plugin_sample.c
@@ -142,22 +142,22 @@ DEP_FILES =  .deps/cfg.P .deps/debug.P .deps/drv.P .deps/drv_BWCT.P \
 .deps/drv_Cwlinux.P .deps/drv_HD44780.P .deps/drv_Image.P \
 .deps/drv_LCDLinux.P .deps/drv_LCDTerm.P .deps/drv_M50530.P \
 .deps/drv_MatrixOrbital.P .deps/drv_MilfordInstruments.P \
-.deps/drv_NULL.P .deps/drv_RouterBoard.P .deps/drv_T6963.P \
-.deps/drv_USBLCD.P .deps/drv_X11.P .deps/drv_generic_graphic.P \
-.deps/drv_generic_parport.P .deps/drv_generic_serial.P \
-.deps/drv_generic_text.P .deps/evaluator.P .deps/hash.P .deps/layout.P \
-.deps/lcd4linux.P .deps/pid.P .deps/plugin.P .deps/plugin_apm.P \
-.deps/plugin_cfg.P .deps/plugin_cpuinfo.P .deps/plugin_diskstats.P \
-.deps/plugin_dvb.P .deps/plugin_exec.P .deps/plugin_i2c_sensors.P \
-.deps/plugin_imon.P .deps/plugin_isdn.P .deps/plugin_loadavg.P \
-.deps/plugin_math.P .deps/plugin_meminfo.P .deps/plugin_mysql.P \
-.deps/plugin_netdev.P .deps/plugin_pop3.P .deps/plugin_ppp.P \
-.deps/plugin_proc_stat.P .deps/plugin_seti.P .deps/plugin_string.P \
-.deps/plugin_test.P .deps/plugin_time.P .deps/plugin_uname.P \
-.deps/plugin_uptime.P .deps/plugin_wireless.P .deps/plugin_xmms.P \
-.deps/qprintf.P .deps/thread.P .deps/timer.P .deps/udelay.P \
-.deps/widget.P .deps/widget_bar.P .deps/widget_icon.P \
-.deps/widget_text.P
+.deps/drv_NULL.P .deps/drv_RouterBoard.P .deps/drv_SimpleLCD.P \
+.deps/drv_T6963.P .deps/drv_USBLCD.P .deps/drv_X11.P \
+.deps/drv_generic_graphic.P .deps/drv_generic_parport.P \
+.deps/drv_generic_serial.P .deps/drv_generic_text.P .deps/evaluator.P \
+.deps/hash.P .deps/layout.P .deps/lcd4linux.P .deps/pid.P \
+.deps/plugin.P .deps/plugin_apm.P .deps/plugin_cfg.P \
+.deps/plugin_cpuinfo.P .deps/plugin_diskstats.P .deps/plugin_dvb.P \
+.deps/plugin_exec.P .deps/plugin_i2c_sensors.P .deps/plugin_imon.P \
+.deps/plugin_isdn.P .deps/plugin_loadavg.P .deps/plugin_math.P \
+.deps/plugin_meminfo.P .deps/plugin_mysql.P .deps/plugin_netdev.P \
+.deps/plugin_pop3.P .deps/plugin_ppp.P .deps/plugin_proc_stat.P \
+.deps/plugin_seti.P .deps/plugin_string.P .deps/plugin_test.P \
+.deps/plugin_time.P .deps/plugin_uname.P .deps/plugin_uptime.P \
+.deps/plugin_wireless.P .deps/plugin_xmms.P .deps/qprintf.P \
+.deps/thread.P .deps/timer.P .deps/udelay.P .deps/widget.P \
+.deps/widget_bar.P .deps/widget_icon.P .deps/widget_text.P
 SOURCES = $(lcd4linux_SOURCES) $(EXTRA_lcd4linux_SOURCES)
 OBJECTS = $(lcd4linux_OBJECTS)
 
index 2ed609eb3c59562284c835d5d76e2bee3ea00330..b122ecb644131a3492fc00fcb31157d961dbdb03 100644 (file)
 /* RouterBoard driver */
 #undef WITH_ROUTERBOARD
 
+/* SimpleLCD driver */
+#undef WITH_SIMPLELCD
+
 /* T6963 driver */
 #undef WITH_T6963
 
index e084bf68740ac57a25a9ae65a67644e9ce6be553..f6a31d176a6826d63abf3756eadc56a885311f64 100755 (executable)
--- a/configure
+++ b/configure
@@ -870,7 +870,7 @@ Optional Packages:
                           BeckmannEgle, BWCT, CrystalFontz, Curses, Cwlinux,
                           HD44780, LCDLinux, LCDTerm, M50530, MatrixOrbital,
                           MilfordInstruments, NULL, PNG, PPM, RouterBoard,
-                          T6963, USBLCD, X11
+                          SimpleLCD, T6963, USBLCD, X11
   --with-plugins=<list>   choose which plugins to compile.
                           type --with-plugins=list for a list
                           of avaible plugins
@@ -5419,6 +5419,7 @@ for driver in $drivers; do
          T6963="yes"
          USBLCD="yes"
          X11="yes"
+         SIMPLELCD="yes"
          ;;
       BeckmannEgle)
          BECKMANNEGLE=$val
@@ -5465,6 +5466,9 @@ for driver in $drivers; do
       RouterBoard)
          ROUTERBOARD=$val
          ;;
+      SimpleLCD)
+         SIMPLELCD=$val
+         ;;
       T6963)
          T6963=$val
          ;;
@@ -5667,6 +5671,17 @@ _ACEOF
 
 fi
 
+if test "$SIMPLELCD" = "yes"; then
+   TEXT="yes"
+   SERIAL="yes"
+   DRIVERS="$DRIVERS drv_SimpleLCD.o"
+
+cat >>confdefs.h <<\_ACEOF
+#define WITH_SIMPLELCD 1
+_ACEOF
+
+fi
+
 if test "$T6963" = "yes"; then
    GRAPHIC="yes"
    PARPORT="yes"
index f98ac22ab8b78ddd503b69992786923b02fda00f..f012f3c49f2037b2718552f5738b4b46fc594c77 100644 (file)
@@ -31,7 +31,7 @@ AC_ARG_WITH(
   [                        BeckmannEgle, BWCT, CrystalFontz, Curses, Cwlinux,]
   [                        HD44780, LCDLinux, LCDTerm, M50530, MatrixOrbital,]
   [                        MilfordInstruments, NULL, PNG, PPM, RouterBoard,]
-  [                        T6963, USBLCD, X11],
+  [                        SimpleLCD, T6963, USBLCD, X11],
   drivers=$withval, 
   drivers=all
 )
@@ -70,6 +70,7 @@ for driver in $drivers; do
          T6963="yes"
          USBLCD="yes"
          X11="yes"
+         SIMPLELCD="yes"
          ;;
       BeckmannEgle)
          BECKMANNEGLE=$val
@@ -116,6 +117,9 @@ for driver in $drivers; do
       RouterBoard)
          ROUTERBOARD=$val
          ;;
+      SimpleLCD)
+         SIMPLELCD=$val
+         ;;
       T6963)
          T6963=$val
          ;;
@@ -252,6 +256,13 @@ if test "$ROUTERBOARD" = "yes"; then
    AC_DEFINE(WITH_ROUTERBOARD,1,[RouterBoard driver])
 fi
 
+if test "$SIMPLELCD" = "yes"; then
+   TEXT="yes"
+   SERIAL="yes"
+   DRIVERS="$DRIVERS drv_SimpleLCD.o"
+   AC_DEFINE(WITH_SIMPLELCD,1,[SimpleLCD driver])
+fi
+
 if test "$T6963" = "yes"; then
    GRAPHIC="yes"
    PARPORT="yes"
diff --git a/drv.c b/drv.c
index 8575615ef8a97a637eb50ef5433201846c033d8c..dcb85a8db5e5616398b8890787eee24686eb1517 100644 (file)
--- a/drv.c
+++ b/drv.c
@@ -1,4 +1,4 @@
-/* $Id: drv.c,v 1.27 2005/01/30 06:43:22 reinelt Exp $
+/* $Id: drv.c,v 1.28 2005/02/24 07:06:48 reinelt Exp $
  *
  * new framework for display drivers
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv.c,v $
+ * Revision 1.28  2005/02/24 07:06:48  reinelt
+ * SimpleLCD driver added
+ *
  * Revision 1.27  2005/01/30 06:43:22  reinelt
  * driver for LCD-Linux finished
  *
@@ -196,6 +199,7 @@ extern DRIVER drv_MatrixOrbital;
 extern DRIVER drv_MilfordInstruments;
 extern DRIVER drv_NULL;
 extern DRIVER drv_RouterBoard;
+extern DRIVER drv_SimpleLCD;
 extern DRIVER drv_T6963;
 extern DRIVER drv_USBLCD;
 extern DRIVER drv_X11;
@@ -249,6 +253,9 @@ DRIVER *Driver[] = {
 #ifdef WITH_ROUTERBOARD
   &drv_RouterBoard,
 #endif
+#ifdef WITH_SIMPLELCD
+  &drv_SimpleLCD,
+#endif
 #ifdef WITH_T6963
   &drv_T6963,
 #endif
@@ -258,6 +265,7 @@ DRIVER *Driver[] = {
 #ifdef WITH_X11
   &drv_X11,
 #endif
+
   NULL,
 };
 
index 6d5c31ef1ad87f852dc86d1f251ccb78ef85c4b0..7bdd1962e41fba40b9734e2390dd16bc364424d6 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_Crystalfontz.c,v 1.30 2005/01/18 06:30:22 reinelt Exp $
+/* $Id: drv_Crystalfontz.c,v 1.31 2005/02/24 07:06:48 reinelt Exp $
  *
  * new style driver for Crystalfontz display modules
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_Crystalfontz.c,v $
+ * Revision 1.31  2005/02/24 07:06:48  reinelt
+ * SimpleLCD driver added
+ *
  * Revision 1.30  2005/01/18 06:30:22  reinelt
  * added (C) to all copyright statements
  *
@@ -986,7 +989,7 @@ int drv_CF_init (const char *section, const int quiet)
     break;
   case 2:
     CHAR0 = 0; /* ASCII of first user-defineable char */
-    GOTO_COST = 999; /* there is no goto on 633 */
+    GOTO_COST = -1; /* there is no goto on 633 */
     drv_generic_text_real_write   = drv_CF_write2;
     drv_generic_text_real_defchar = drv_CF_defchar23;
     break;
index cf83f9c64403c8298853ea5d7da3c107abca38d1..fd78ac0cc2b0bedb3727ba4368e71c4918b4b780 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_LCDLinux.c,v 1.3 2005/02/24 06:51:40 reinelt Exp $
+/* $Id: drv_LCDLinux.c,v 1.4 2005/02/24 07:06:48 reinelt Exp $
  *
  * driver for the LCD-Linux HD44780 kernel driver
  * http://lcd-linux.sourceforge.net
@@ -24,6 +24,9 @@
  *
  *
  * $Log: drv_LCDLinux.c,v $
+ * Revision 1.4  2005/02/24 07:06:48  reinelt
+ * SimpleLCD driver added
+ *
  * Revision 1.3  2005/02/24 06:51:40  reinelt
  * LCD-Linux driver GOTO_COST corrected
  *
@@ -149,7 +152,7 @@ static void drv_LL_defchar (const int ascii, const unsigned char *matrix)
 }
 
 
-static int drv_LL_start (const char *section, const int quiet)
+static int drv_LL_start (const int quiet)
 {
   struct lcd_driver buf;
 
@@ -230,7 +233,7 @@ int drv_LL_init (const char *section, const int quiet)
   YRES  = 8;      /* pixel height of one char  */
   CHARS = 8;      /* number of user-defineable characters */
   CHAR0 = 0;      /* ASCII of first user-defineable char */
-  GOTO_COST = 1;  /* number of bytes a goto command requires */
+  GOTO_COST = -1; /* number of bytes a goto command requires */
   
   /* real worker functions */
   drv_generic_text_real_write   = drv_LL_write;
@@ -238,7 +241,7 @@ int drv_LL_init (const char *section, const int quiet)
 
 
   /* start display */
-  if ((ret=drv_LL_start (section, quiet))!=0)
+  if ((ret=drv_LL_start (quiet))!=0)
     return ret;
   
   /* initialize generic text driver */
diff --git a/drv_SimpleLCD.c b/drv_SimpleLCD.c
new file mode 100644 (file)
index 0000000..85f91bf
--- /dev/null
@@ -0,0 +1,265 @@
+/* $Id: drv_SimpleLCD.c,v 1.1 2005/02/24 07:06:48 reinelt Exp $
+ * 
+ * driver for a simple serial terminal.
+ * This driver simply send out caracters on the serial port, without any 
+ * formatting instructions for a particular LCD device. 
+ * This is useful for custom boards of for very simple LCD.
+ *
+ * I use it for tests on a custom-made board based on a AVR microcontroler
+ * and also for driver a Point-of-Sale text-only display.
+ * I assume the following :
+ * - CR (0x0d) Return to the begining of the line without erasing,
+ * - LF (0x0a) Initiate a new line (but without sending the cursor to 
+ * the begining of the line)
+ * - BS (0x08) Erase the previous caracter on the line.
+ * - It's not possible to return to the first line. Thus a back buffer is used
+ * in this driver.
+ *
+ * The code come mostly taken from the LCDTerm driver in LCD4Linux, from 
+ * Michaels Reinelt, many thanks to him.
+ *
+ * This driver is released under the GPL.
+ * 
+ * Copyright (C) 2005 Julien Aube <ob@obconseil.net>
+ * Copyright (C) 2005 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+ *
+ * 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: drv_SimpleLCD.c,v $
+ * Revision 1.1  2005/02/24 07:06:48  reinelt
+ * SimpleLCD driver added
+ *
+ */
+
+/* 
+ *
+ * exported fuctions:
+ *
+ * struct DRIVER drv_SimpleLCD
+ *
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "debug.h"
+#include "cfg.h"
+#include "qprintf.h"
+#include "plugin.h"
+#include "widget.h"
+#include "widget_text.h"
+#include "widget_icon.h"
+#include "widget_bar.h"
+#include "drv.h"
+#include "drv_generic_text.h"
+#include "drv_generic_serial.h"
+
+
+static char Name[]="SimpleLCD";
+static char *backbuffer=0;
+static int   backbuffer_size=0;
+
+/****************************************/
+/***  hardware dependant functions    ***/
+/****************************************/
+
+/** No clear function on SimpleLCD : Just send CR-LF * number of lines **/
+static void drv_SL_clear (void)
+{
+  char cmd[2] = { '\r', '\n' };
+  int i;
+  for (i=0;i<DROWS;++i) {
+    drv_generic_serial_write (cmd, 2);
+  }
+  memset(backbuffer,' ',backbuffer_size);
+}
+
+/* If full_commit = true, then the whole buffer is to be sent to screen.
+   if full_commit = false, then only the last line is to be sent (faster on slow screens)
+*/
+static void drv_SL_commit(int full_commit)
+{
+  int row;
+  char cmd[2] = { '\r', '\n' };
+  if (full_commit) {
+    for (row=0;row < DROWS; row++) {
+       drv_generic_serial_write (cmd, 2);
+       drv_generic_serial_write(backbuffer+(DCOLS*row),DCOLS);
+    }
+  } else {
+    drv_generic_serial_write (cmd, 1); /* Go to the beginning of the line only */
+    drv_generic_serial_write(backbuffer+(DCOLS*(DROWS-1)),DCOLS);
+  }
+}
+
+static void drv_SL_write (const int row, const int col, const char *data, int len)
+{
+  memcpy(backbuffer+(row*DCOLS)+col,data,len);
+  if (row == DROWS-1)
+     drv_SL_commit(0);
+  else
+     drv_SL_commit(1);
+}
+
+
+
+static int drv_SL_start (const char *section, const int quiet)
+{
+  int rows=-1, cols=-1;
+  unsigned int flags=0;
+  char *s;
+  cfg_number(section,"Options",0,0,0xffff,&flags);
+  if (drv_generic_serial_open(section, Name, flags) < 0) return -1;
+
+  s=cfg_get(section, "Size", NULL);
+  if (s==NULL || *s=='\0') {
+    error ("%s: no '%s.Size' entry from %s", Name, section, cfg_source());
+    return -1;
+  }
+  if (sscanf(s,"%dx%d",&cols,&rows)!=2 || rows<1 || cols<1) {
+    error ("%s: bad %s.Size '%s' from %s", Name, section, s, cfg_source());
+    free (s);
+    return -1;
+  }
+  
+  DROWS = rows;
+  DCOLS = cols;
+
+  backbuffer_size = DROWS * DCOLS;
+  backbuffer = malloc(backbuffer_size);
+  if ( ! backbuffer ){  
+     return -1;
+  }
+  drv_SL_clear();        /* clear */
+
+  
+  if (!quiet) {
+    char buffer[40];
+    qprintf(buffer, sizeof(buffer), "%s %dx%d", Name, DCOLS, DROWS);
+    if (drv_generic_text_greet (buffer, NULL)) {
+      sleep (3);
+      drv_SL_clear();
+    }
+  }
+  
+  return 0;
+}
+
+
+/****************************************/
+/***            plugins               ***/
+/****************************************/
+
+/* none */
+
+
+/****************************************/
+/***        widget callbacks          ***/
+/****************************************/
+
+
+/* using drv_generic_text_draw(W) */
+
+
+/****************************************/
+/***        exported functions        ***/
+/****************************************/
+
+
+/* list models */
+int drv_SL_list (void)
+{
+  printf ("generic");
+  return 0;
+}
+
+
+/* initialize driver & display */
+int drv_SL_init (const char *section, const int quiet)
+{
+  WIDGET_CLASS wc;
+  int ret;  
+  
+  /* display preferences */
+  XRES  = 5;      /* pixel width of one char  */
+  YRES  = 8;      /* pixel height of one char  */
+  CHARS = 0;      /* number of user-defineable characters */
+  CHAR0 = 0;      /* ASCII of first user-defineable char */
+
+  GOTO_COST = -1;  /* number of bytes a goto command requires */
+  
+  /* real worker functions */
+  drv_generic_text_real_write   = drv_SL_write;
+
+
+  /* start display */
+  if ((ret=drv_SL_start (section, quiet))!=0)
+    return ret;
+  
+  /* initialize generic text driver */
+  if ((ret=drv_generic_text_init(section, Name))!=0)
+    return ret;
+
+  /* register text widget */
+  wc=Widget_Text;
+  wc.draw=drv_generic_text_draw;
+  widget_register(&wc);
+  
+  /* register plugins */
+  /* none */
+
+  return 0;
+}
+
+
+/* close driver & display */
+int drv_SL_quit (const int quiet)
+{
+
+  info("%s: shutting down.", Name);
+  
+  drv_generic_text_quit();
+  
+  /* clear display */
+  drv_SL_clear();
+  
+  /* say goodbye... */
+  if (!quiet) {
+    drv_generic_text_greet ("goodbye!", NULL);
+  }
+  
+  drv_generic_serial_close();
+  
+  if ( backbuffer ) {
+    free(backbuffer) ; backbuffer=0; backbuffer_size=0;
+  }
+  return (0);
+}
+
+
+DRIVER drv_SimpleLCD = {
+  name: Name,
+  list: drv_SL_list,
+  init: drv_SL_init,
+  quit: drv_SL_quit, 
+};
+
index 793d1a2e1f82aec878da198534f1c63571574b81..b1f667525acd3e74ed271dde446357c2af445f7e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_text.c,v 1.24 2005/01/18 06:30:23 reinelt Exp $
+/* $Id: drv_generic_text.c,v 1.25 2005/02/24 07:06:48 reinelt Exp $
  *
  * generic driver helper for text-based displays
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_generic_text.c,v $
+ * Revision 1.25  2005/02/24 07:06:48  reinelt
+ * SimpleLCD driver added
+ *
  * Revision 1.24  2005/01/18 06:30:23  reinelt
  * added (C) to all copyright statements
  *
@@ -431,7 +434,7 @@ int drv_generic_text_draw (WIDGET *W)
        if (fb1[col] == fb2[col]) {
          /* If we find just one equal byte, we don't break, because this  */
          /* would require a goto, which takes several bytes, too. */
-         if (++equal > GOTO_COST) break;
+         if (GOTO_COST >= 0 && ++equal > GOTO_COST) break;
        } else {
          pos2 = col;
          equal = 0;
index 7c65fee21449553230fc97e7b9876c958132bfac..2a29036b858997fa657ed83062df4eb6c4fe8d9a 100644 (file)
@@ -165,6 +165,13 @@ Display LCDTerm {
     Icons 1
 }
 
+Display SimpleLCD {
+    Driver 'SimpleLCD'
+    Port '/dev/tts/0'
+    Speed 1200
+    Options 0
+    Size '20x2'
+}
 
 Display M50530-24x8 {
     Driver 'M50530'