]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2003-07-24 04:48:09 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 24 Jul 2003 04:48:09 +0000 (04:48 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Thu, 24 Jul 2003 04:48:09 +0000 (04:48 +0000)
'soft clear' needed for virtual rows

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

18 files changed:
BeckmannEgle.c
Crystalfontz.c
Cwlinux.c
HD44780.c
M50530.c
MatrixOrbital.c
PalmPilot.c
Raster.c
SIN.c
Skeleton.c
T6963.c
Text.c
USBLCD.c
XWindow.c
display.c
display.h
lcd4linux.c
processor.c

index 8eff04686a5787c61336c7fc40bbe4e2417462f3..48467f401e82971e369374a092b86592b1f60e3a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: BeckmannEgle.c,v 1.12 2003/02/22 07:53:09 reinelt Exp $
+/* $Id: BeckmannEgle.c,v 1.13 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for Beckmann+Egle mini terminals
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: BeckmannEgle.c,v $
+ * Revision 1.13  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.12  2003/02/22 07:53:09  reinelt
  * cfg_get(key,defval)
  *
@@ -194,7 +197,7 @@ static void BE_define_char (int ascii, char *buffer)
 }
 
 
-int BE_clear (void)
+int BE_clear (int full)
 {
   int row, col;
 
@@ -206,7 +209,9 @@ int BE_clear (void)
 
   bar_clear();
 
-  BE_write ("\033&#", 3);
+  if (full)
+    BE_write ("\033&#", 3);
+  
   return 0;
 }
 
@@ -268,7 +273,7 @@ int BE_init (LCD *Self)
   bar_add_segment(  0,  0,255, 32); // ASCII  32 = blank
   bar_add_segment(255,255,255,255); // ASCII 255 = block
 
-  BE_clear();
+  BE_clear(1);
 
   return 0;
 }
index e672c84c83ac1c2ba74fb0d6dde2fb65728f1aa2..a1bea63f3a2c28dfb30ad22b757972bf1a655cdb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: Crystalfontz.c,v 1.9 2003/02/22 07:53:09 reinelt Exp $
+/* $Id: Crystalfontz.c,v 1.10 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for display modules from Crystalfontz
  *
@@ -19,6 +19,9 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  * $Log: Crystalfontz.c,v $
+ * Revision 1.10  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.9  2003/02/22 07:53:09  reinelt
  * cfg_get(key,defval)
  *
@@ -232,7 +235,7 @@ char cmd_contrast[2]={ CRYFON_CONTRAST_CTRL, };
        return 0;
 }
 
-int cryfonclear() {
+int cryfonclear(int full) {
        memset(Txtbuf,' ',tdim);
        memset(Barbuf,0,bdim);
        return 0;
index fe894318043219a374dc1d9143256c9fd333a299..6bb9cfa54fa5a9f24cbb05682c07b97cdc3813d5 100644 (file)
--- a/Cwlinux.c
+++ b/Cwlinux.c
@@ -1,4 +1,4 @@
-/* $Id: Cwlinux.c,v 1.8 2003/05/19 05:55:17 reinelt Exp $
+/* $Id: Cwlinux.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for Cwlinux serial display modules
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: Cwlinux.c,v $
+ * Revision 1.9  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.8  2003/05/19 05:55:17  reinelt
  * Cwlinux sleep optimization
  *
@@ -199,7 +202,7 @@ static void CW1602_define_char (int ascii, char *buffer)
 }
 
 
-int CW_clear(void)
+int CW_clear(int full)
 {
   int row, col;
 
@@ -211,17 +214,19 @@ int CW_clear(void)
 
   bar_clear();
 
+  if (full) {
 #if 0
-  CW_write("\376X\375",3);
+    CW_write("\376X\375",3);
 #else
-  // for some mysterious reason, we have to sleep after 
-  // the command _and_ after the CMD_END...
-  usleep(20);
-  CW_write("\376X",2);
-  usleep(20);
-  CW_write("\375",1);
-  usleep(20);
+    // for some mysterious reason, we have to sleep after 
+    // the command _and_ after the CMD_END...
+    usleep(20);
+    CW_write("\376X",2);
+    usleep(20);
+    CW_write("\375",1);
+    usleep(20);
 #endif
+  }
 
   return 0;
 }
@@ -308,7 +313,7 @@ int CW_init(LCD * Self)
   info ("Cwlinux Firmware %d.%d", (int)buffer[0], (int)buffer[1]);
 #endif
 
-  CW_clear();
+  CW_clear(1);
 
   // auto line wrap off
   CW_write ("\376D\375", 3);
index 5367ac2c8a9a8079add36c511f26252fd990abbf..a35d7b5f1acaef0458a5fb4efac7ec6224ec6f4f 100644 (file)
--- a/HD44780.c
+++ b/HD44780.c
@@ -1,4 +1,4 @@
-/* $Id: HD44780.c,v 1.28 2003/04/07 06:02:58 reinelt Exp $
+/* $Id: HD44780.c,v 1.29 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for display modules based on the HD44780 chip
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: HD44780.c,v $
+ * Revision 1.29  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.28  2003/04/07 06:02:58  reinelt
  * further parallel port abstraction
  *
@@ -247,7 +250,7 @@ static void HD_define_char (int ascii, char *buffer)
 }
 
 
-int HD_clear (void)
+int HD_clear (int full)
 {
   int row, col;
 
@@ -260,8 +263,12 @@ int HD_clear (void)
   bar_clear();
 
   GPO=0;
-  HD_setGPO (GPO);         // All GPO's off
-  HD_command (0x01, 1640); // clear display
+
+  if (full) {
+    HD_command (0x01, 1640); // clear display
+    HD_setGPO (GPO);         // All GPO's off
+  }
+
   return 0;
 }
 
@@ -325,7 +332,7 @@ int HD_init (LCD *Self)
   bar_add_segment(  0,  0,255, 32); // ASCII  32 = blank
   bar_add_segment(255,255,255,255); // ASCII 255 = block
   
-  HD_clear();
+  HD_clear(1);
   
   return 0;
 }
index 37ffe7c3960dac2ca8ec51568031e9440de07955..e079463a364eb16bc8719fd8df46e1e976c80dcb 100644 (file)
--- a/M50530.c
+++ b/M50530.c
@@ -1,4 +1,4 @@
-/* $Id: M50530.c,v 1.8 2003/04/07 06:02:59 reinelt Exp $
+/* $Id: M50530.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for display modules based on the M50530 chip
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: M50530.c,v $
+ * Revision 1.9  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.8  2003/04/07 06:02:59  reinelt
  * further parallel port abstraction
  *
@@ -145,7 +148,7 @@ static void M5_define_char (int ascii, char *buffer)
 }
 
 
-int M5_clear (void)
+int M5_clear (int full)
 {
   int row, col;
 
@@ -158,9 +161,12 @@ int M5_clear (void)
   bar_clear();
 
   GPO=0;
-  M5_setGPO (GPO);           // All GPO's off
 
-  M5_command (0x0001, 1250); // clear display
+  if (full) {
+    M5_command (0x0001, 1250); // clear display
+    M5_setGPO (GPO);           // All GPO's off
+  }
+  
   return 0;
 }
 
@@ -214,12 +220,11 @@ int M5_init (LCD *Self)
   M5_command (0x0020, 20); // set display mode
   M5_command (0x0050, 20); // set entry mode
   M5_command (0x0030, 20); // set display mode
-  M5_command (0x0001, 1250); // clear display
   
   bar_init(rows, cols, XRES, YRES, CHARS);
   bar_add_segment(0,0,255,32); // ASCII 32 = blank
   
-  M5_clear();
+  M5_clear(1);
   
   return 0;
 }
index 60d3525d7313b1e343c06ec9e8dd2097dd9ac881..822fec60c8f5a2a8f992307dd0a9bd2f7b875dd9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: MatrixOrbital.c,v 1.27 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: MatrixOrbital.c,v 1.28 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for Matrix Orbital serial display modules
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: MatrixOrbital.c,v $
+ * Revision 1.28  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.27  2003/02/22 07:53:10  reinelt
  * cfg_get(key,defval)
  *
@@ -254,6 +257,8 @@ static int MO_clear (int protocol)
 
   bar_clear();
 
+  GPO=0;
+
   switch (protocol) {
   case 1:
     MO_write ("\014",  1);  // Clear Screen
@@ -269,18 +274,17 @@ static int MO_clear (int protocol)
     break;
   }
   
-  GPO=0;
   return 0;
 }
 
-int MO_clear1 (void)
+int MO_clear1 (int full)
 {
-  return MO_clear(1);
+  return MO_clear(full?1:0);
 }
 
-int MO_clear2 (void)
+int MO_clear2 (int full)
 {
-  return MO_clear(2);
+  return MO_clear(full?2:0);
 }
 
 
index 1fad1edfe397028a0bcf98bcceb8275b65af953d..9527dfe041bf17f4159a5199082a5843c9ba8c6b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: PalmPilot.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: PalmPilot.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for 3Com Palm Pilot
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: PalmPilot.c,v $
+ * Revision 1.9  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.8  2003/02/22 07:53:10  reinelt
  * cfg_get(key,defval)
  *
@@ -193,12 +196,15 @@ int Palm_flush (void)
   return 0;
 }
 
-int Palm_clear (void)
+int Palm_clear (int full)
 {
   if (pix_clear()!=0) 
     return -1;
   
-  return Palm_flush();
+  if (full)
+    return Palm_flush();
+
+  return 0;
 }
 
 int Palm_init (LCD *Self)
index ae55349390fd8d3d1b860339f88d802956a0f7a0..0bc6d3dbd402deac6717e66424c0c1e9a3f347b7 100644 (file)
--- a/Raster.c
+++ b/Raster.c
@@ -1,4 +1,4 @@
-/* $Id: Raster.c,v 1.21 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: Raster.c,v 1.22 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for raster formats
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: Raster.c,v $
+ * Revision 1.22  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.21  2003/02/22 07:53:10  reinelt
  * cfg_get(key,defval)
  *
@@ -322,7 +325,7 @@ int PNG_flush (void)
 #endif
 
 
-int Raster_clear (void)
+int Raster_clear (int full)
 {
   if (pix_clear()!=0) 
     return -1;
diff --git a/SIN.c b/SIN.c
index 432978dcdbb6eac0d13087847d31c27ee0c8dc28..c878feefa074bbb9cc226cc33c1e45b7cc33df68 100644 (file)
--- a/SIN.c
+++ b/SIN.c
@@ -1,4 +1,4 @@
-/* $Id: SIN.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: SIN.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for SIN router displays
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: SIN.c,v $
+ * Revision 1.9  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.8  2003/02/22 07:53:10  reinelt
  * cfg_get(key,defval)
  *
@@ -155,7 +158,7 @@ static void SIN_write (char *string, int len)
   }
 }
 
-int SIN_clear (void)
+int SIN_clear (int full)
 {
   int row, col;
 
@@ -165,7 +168,9 @@ int SIN_clear (void)
     }
   }
   
-  SIN_write ("\033 ",2);
+  if (full)
+    SIN_write ("\033 ",2);
+  
   return 0;
 }
 
index c37124b0bf5b6a454696284ad1778eea671efa23..4b3ce965976dd21476bc71937858768d0535d97e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: Skeleton.c,v 1.7 2001/03/09 13:08:11 ltoetsch Exp $
+/* $Id: Skeleton.c,v 1.8 2003/07/24 04:48:09 reinelt Exp $
  *
  * skeleton driver for new display modules
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: Skeleton.c,v $
+ * Revision 1.8  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.7  2001/03/09 13:08:11  ltoetsch
  * Added Text driver
  *
@@ -71,7 +74,7 @@
 
 static LCD Lcd;
 
-int Skel_clear (void)
+int Skel_clear (int full)
 {
   return 0;
 }
diff --git a/T6963.c b/T6963.c
index e7b72631240e747bdad56486646fdfc2d4c0497b..22125f34867527dca4895d6ea7494b28509b5913 100644 (file)
--- a/T6963.c
+++ b/T6963.c
@@ -1,4 +1,4 @@
-/* $Id: T6963.c,v 1.6 2003/04/07 06:03:00 reinelt Exp $
+/* $Id: T6963.c,v 1.7 2003/07/24 04:48:09 reinelt Exp $
  *
  * driver for display modules based on the Toshiba T6963 chip
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: T6963.c,v $
+ * Revision 1.7  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.6  2003/04/07 06:03:00  reinelt
  * further parallel port abstraction
  *
@@ -290,23 +293,26 @@ static void T6_memcpy(unsigned short addr, unsigned char *data, int len)
 }
 
 
-int T6_clear (void)
+int T6_clear (int full)
 {
   int rows;
   
-  rows=(Lcd.rows>8 ? 8 : Lcd.rows);
-  
-  T6_memset(0x0000, 0, Lcd.cols*rows);    // clear text area 
-  T6_memset(0x0200, 0, Lcd.cols*rows*8);  // clear graphic area
-  
-  if (Lcd.rows>8) {
-    T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows));    // clear text area #2
-    T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8);  // clear graphic area #2
+  if (full) {
+    
+    rows=(Lcd.rows>8 ? 8 : Lcd.rows);
+    
+    T6_memset(0x0000, 0, Lcd.cols*rows);    // clear text area 
+    T6_memset(0x0200, 0, Lcd.cols*rows*8);  // clear graphic area
+    
+    if (Lcd.rows>8) {
+      T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows));    // clear text area #2
+      T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8);  // clear graphic area #2
+    }
+    
+    memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
+    memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2));
   }
-
-  memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
-  memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2));
-
+  
   return pix_clear();
 }
 
@@ -363,7 +369,7 @@ int T6_init (LCD *Self)
   T6_write_cmd (0xa0);            // Set Cursor Pattern: 1 line cursor
   T6_send_word (0x21, 0x0000);    // Set Cursor Pointer to (0,0)
 
-  T6_clear();
+  T6_clear(1);
   
   return 0;
 }
diff --git a/Text.c b/Text.c
index f354ec05aae5d23cdce1530e0ac5ee7ed54f4bbc..abd663379400b39a9e5e801087d307267e9f6b20 100644 (file)
--- a/Text.c
+++ b/Text.c
@@ -1,4 +1,4 @@
-/* $Id: Text.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: Text.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
  *
  * pure ncurses based text driver
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: Text.c,v $
+ * Revision 1.9  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.8  2003/02/22 07:53:10  reinelt
  * cfg_get(key,defval)
  *
@@ -97,10 +100,12 @@ static WINDOW *w, *err_win;
 static int err_rows;
 
 
-int Text_clear (void)
+int Text_clear (int full)
 {
-  werase(w);
-  box(w, 0, 0);
+  if (full) {
+    werase(w);
+    box(w, 0, 0);
+  }
   return 0;
 }
 
@@ -148,7 +153,7 @@ int Text_init (LCD *Self)
     wmove(err_win, 1 , 0);
     wrefresh(err_win);
   }
-  Text_clear();
+  Text_clear(1);
   return w ? 0 : -1;
 }
 
index a2479e9fab04a22130d31554458088ce2a49e8a1..6d58c61ad85a48d51d1001dee2fdcd155aaca971 100644 (file)
--- a/USBLCD.c
+++ b/USBLCD.c
@@ -1,4 +1,4 @@
-/* $Id: USBLCD.c,v 1.9 2003/04/04 06:01:59 reinelt Exp $
+/* $Id: USBLCD.c,v 1.10 2003/07/24 04:48:09 reinelt Exp $
  *
  * Driver for USBLCD ( see http://www.usblcd.de )
  * This Driver is based on HD44780.c
@@ -22,6 +22,9 @@
  *
  *
  * $Log: USBLCD.c,v $
+ * Revision 1.10  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.9  2003/04/04 06:01:59  reinelt
  * new parallel port abstraction scheme
  *
@@ -190,19 +193,20 @@ static void USBLCD_define_char (int ascii, char *buffer)
 }
 
 
-int USBLCD_clear (void)
+int USBLCD_clear (int full)
 {
   int row, col;
-
+  
   for (row=0; row<Lcd.rows; row++) {
     for (col=0; col<Lcd.cols; col++) {
       Txt[row][col]='\t';
     }
   }
-
+  
   bar_clear();
-
-  USBLCD_command (0x01); // clear display
+  
+  if (full)
+    USBLCD_command (0x01); // clear display
 
   return 0;
 }
@@ -251,7 +255,7 @@ int USBLCD_init (LCD *Self)
   bar_add_segment(  0,  0,255, 32); // ASCII  32 = blank
   bar_add_segment(255,255,255,255); // ASCII 255 = block
 
-  USBLCD_clear();
+  USBLCD_clear(1);
   USBLCD_send();
 
   return 0;
index 0e77c075de7b9285fd68086ffcef3794d36d88df..2902ebfd9d02032bbf9589ce5bcc878fa379c08f 100644 (file)
--- a/XWindow.c
+++ b/XWindow.c
@@ -1,4 +1,4 @@
-/* $Id: XWindow.c,v 1.31 2003/04/12 16:23:10 reinelt Exp $
+/* $Id: XWindow.c,v 1.32 2003/07/24 04:48:09 reinelt Exp $
  *
  * X11 Driver for LCD4Linux 
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: XWindow.c,v $
+ * Revision 1.32  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.31  2003/04/12 16:23:10  reinelt
  * small glitch in XWindow.c (thanks to Moe Wibble)
  *
@@ -436,7 +439,7 @@ int xlcdinit(LCD *Self)
 }
 
 
-int xlcdclear() 
+int xlcdclear(int full
 {
   return pix_clear();
 }
index c376284596a585d5933572a9bac317ee386e5e42..89b6f864917438a4b36749bd44e2d5aac112bc8d 100644 (file)
--- a/display.c
+++ b/display.c
@@ -1,4 +1,4 @@
-/* $Id: display.c,v 1.34 2002/12/05 19:09:57 reinelt Exp $
+/* $Id: display.c,v 1.35 2003/07/24 04:48:09 reinelt Exp $
  *
  * framework for device drivers
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: display.c,v $
+ * Revision 1.35  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.34  2002/12/05 19:09:57  reinelt
  * patches for gcc-3.2
  *
@@ -314,10 +317,10 @@ int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars, int *gpos)
   return 0;
 }
 
-int lcd_clear (void)
+int lcd_clear (int full)
 {
   if (Lcd->clear==NULL) return 0;
-  return Lcd->clear();
+  return Lcd->clear(full);
 }
 
 int lcd_put (int row, int col, char *text)
index 8d3db89c217c04316d5f08c40e35265c3206a348..374ede61aa5dfb5e56286e985c6454f809ab36c4 100644 (file)
--- a/display.h
+++ b/display.h
@@ -1,4 +1,4 @@
-/* $Id: display.h,v 1.15 2002/08/19 04:41:20 reinelt Exp $
+/* $Id: display.h,v 1.16 2003/07/24 04:48:09 reinelt Exp $
  *
  * framework for device drivers
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: display.h,v $
+ * Revision 1.16  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.15  2002/08/19 04:41:20  reinelt
  * introduced bar.c, moved bar stuff from display.h to bar.h
  *
@@ -96,7 +99,7 @@ typedef struct LCD {
   int bars;
   int gpos;
   int (*init) (struct LCD *Self);
-  int (*clear) (void);
+  int (*clear) (int full);
   int (*put) (int x, int y, char *text);
   int (*bar) (int type, int x, int y, int max, int len1, int len2);
   int (*gpo) (int num, int val);
@@ -112,7 +115,7 @@ typedef struct {
 int lcd_list (void);
 int lcd_init (char *driver);
 int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars, int *gpos);
-int lcd_clear (void);
+int lcd_clear (int full);
 int lcd_put (int row, int col, char *text);
 int lcd_bar (int type, int row, int col, int max, int len1, int len2);
 int lcd_gpo (int num, int val);
index 36e21d4712572cb759eaf8afb8e39d15b108eb26..dee44fda1e24c5745a170b4ac3ff94c5cf1537f2 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: lcd4linux.c,v 1.38 2003/06/13 05:11:11 reinelt Exp $
+/* $Id: lcd4linux.c,v 1.39 2003/07/24 04:48:09 reinelt Exp $
  *
  * LCD4Linux
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: lcd4linux.c,v $
+ * Revision 1.39  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.38  2003/06/13 05:11:11  reinelt
  * error message cosmetics
  *
@@ -431,11 +434,11 @@ int main (int argc, char *argv[])
   tack=atoi(cfg_get("tack","500"));
 
   process_init();
-  lcd_clear();
+  lcd_clear(1);
 
   if (!quiet && hello()) {
     sleep (3);
-    lcd_clear();
+    lcd_clear(1);
   }
   
   debug ("starting main loop");
@@ -450,7 +453,7 @@ int main (int argc, char *argv[])
 
   debug ("leaving main loop");
   
-  lcd_clear();
+  lcd_clear(1);
   if (!quiet) hello();
   lcd_quit();
   
index 46aed32052b95b0e341d61c7b706439fa6f7c219..a70c798a8fc519a8e27b69f6e60d3f2878466c9c 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: processor.c,v 1.34 2003/07/21 06:34:14 reinelt Exp $
+/* $Id: processor.c,v 1.35 2003/07/24 04:48:09 reinelt Exp $
  *
  * main data processing
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: processor.c,v $
+ * Revision 1.35  2003/07/24 04:48:09  reinelt
+ * 'soft clear' needed for virtual rows
+ *
  * Revision 1.34  2003/07/21 06:34:14  reinelt
  * bars on virtual rows fixed
  *
@@ -801,6 +804,7 @@ void process (int smooth)
     while (offset>=lines) {
       offset-=lines;
     }
+    lcd_clear(0); // soft clear
   }
   
   for (i=1; i<=rows; i++) {