aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BeckmannEgle.c28
-rw-r--r--Crystalfontz.c34
-rw-r--r--Cwlinux.c86
-rw-r--r--MatrixOrbital.c22
-rw-r--r--PalmPilot.c22
-rw-r--r--SIN.c7
-rw-r--r--Skeleton.c14
-rw-r--r--T6963.c25
-rw-r--r--Text.c7
9 files changed, 188 insertions, 57 deletions
diff --git a/BeckmannEgle.c b/BeckmannEgle.c
index 622dcb6..cf52de8 100644
--- a/BeckmannEgle.c
+++ b/BeckmannEgle.c
@@ -1,4 +1,4 @@
-/* $Id: BeckmannEgle.c,v 1.15 2003/08/24 05:17:58 reinelt Exp $
+/* $Id: BeckmannEgle.c,v 1.16 2003/09/13 06:45:43 reinelt Exp $
*
* driver for Beckmann+Egle mini terminals
*
@@ -20,6 +20,9 @@
*
*
* $Log: BeckmannEgle.c,v $
+ * Revision 1.16 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.15 2003/08/24 05:17:58 reinelt
* liblcd4linux patch from Patrick Schemitz
*
@@ -95,6 +98,7 @@
#include "lock.h"
#include "display.h"
#include "bar.h"
+#include "icon.h"
#define XRES 5
#define YRES 8
@@ -110,6 +114,7 @@ static LCD Lcd;
static char *Port=NULL;
static int Device=-1;
static int Type=-1;
+static int Icons;
static char *FrameBuffer1=NULL;
static char *FrameBuffer2=NULL;
@@ -208,6 +213,8 @@ int BE_clear (int full)
{
memset (FrameBuffer1, ' ', Lcd.rows*Lcd.cols*sizeof(char));
+
+ icon_clear();
bar_clear();
if (full) {
@@ -280,7 +287,15 @@ int BE_init (LCD *Self)
BE_write (buffer, 4); // select display type
BE_write ("\033&D", 3); // cursor off
- bar_init(rows, cols, XRES, YRES, CHARS);
+ if (cfg_number("Icons", 0, 0, CHARS, &Icons)<0) return -1;
+ if (Icons>0) {
+ debug ("reserving %d of %d user-defined characters for icons", Icons, CHARS);
+ icon_init(Lcd.rows, Lcd.cols, XRES, YRES, CHARS, Icons, BE_define_char);
+ Self->icons=Icons;
+ Lcd.icons=Icons;
+ }
+
+ bar_init(rows, cols, XRES, YRES, CHARS-Icons);
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
bar_add_segment(255,255,255,255); // ASCII 255 = block
@@ -316,6 +331,12 @@ int BE_bar (int type, int row, int col, int max, int len1, int len2)
}
+int BE_icon (int num, int seq, int row, int col)
+{
+ return icon_draw (num, seq, row, col);
+}
+
+
int BE_flush (void)
{
int row, col, pos1, pos2;
@@ -326,6 +347,7 @@ int BE_flush (void)
for (row=0; row<Lcd.rows; row++) {
for (col=0; col<Lcd.cols; col++) {
c=bar_peek(row, col);
+ if (c==-1) c=icon_peek(row, col);
if (c!=-1) {
FrameBuffer1[row*Lcd.cols+col]=(char)c;
}
@@ -382,11 +404,13 @@ LCD BeckmannEgle[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: BE_init,
clear: BE_clear,
put: BE_put,
bar: BE_bar,
+ icon: BE_icon,
gpo: NULL,
flush: BE_flush,
quit: BE_quit
diff --git a/Crystalfontz.c b/Crystalfontz.c
index 5b4fe6f..95be970 100644
--- a/Crystalfontz.c
+++ b/Crystalfontz.c
@@ -1,4 +1,4 @@
-/* $Id: Crystalfontz.c,v 1.14 2003/09/09 06:54:43 reinelt Exp $
+/* $Id: Crystalfontz.c,v 1.15 2003/09/13 06:45:43 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.15 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.14 2003/09/09 06:54:43 reinelt
* new function 'cfg_number()'
*
@@ -80,6 +83,7 @@
#include "lock.h"
#include "display.h"
#include "bar.h"
+#include "icon.h"
#define XRES 5
#define YRES 8
@@ -89,6 +93,7 @@ static LCD Lcd;
static char *Port=NULL;
static speed_t Speed;
static int Device=-1;
+static int Icons;
static int GPO;
static char *FrameBuffer1=NULL;
@@ -180,6 +185,8 @@ static void CF_define_char (int ascii, char *buffer)
static int CF_clear (int full)
{
memset (FrameBuffer1, ' ', Lcd.rows*Lcd.cols*sizeof(char));
+
+ icon_clear();
bar_clear();
GPO=0;
@@ -245,7 +252,15 @@ static int CF_init (LCD *Self)
Device=CF_open();
if (Device==-1) return -1;
- bar_init(Lcd.rows, Lcd.cols, XRES, YRES, CHARS);
+ if (cfg_number("Icons", 0, 0, CHARS, &Icons)<0) return -1;
+ if (Icons>0) {
+ debug ("reserving %d of %d user-defined characters for icons", Icons, CHARS);
+ icon_init(Lcd.rows, Lcd.cols, XRES, YRES, CHARS, Icons, CF_define_char);
+ Self->icons=Icons;
+ Lcd.icons=Icons;
+ }
+
+ bar_init(Lcd.rows, Lcd.cols, XRES, YRES, CHARS-Icons);
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
bar_add_segment(255,255,255,255); // ASCII 255 = block
@@ -297,6 +312,12 @@ int CF_bar (int type, int row, int col, int max, int len1, int len2)
}
+int CF_icon (int num, int seq, int row, int col)
+{
+ return icon_draw (num, seq, row, col);
+}
+
+
static int CF_flush (void)
{
int row, col, pos1, pos2;
@@ -307,6 +328,7 @@ static int CF_flush (void)
for (row=0; row<Lcd.rows; row++) {
for (col=0; col<Lcd.cols; col++) {
c=bar_peek(row, col);
+ if (c==-1) c=icon_peek(row, col);
if (c!=-1) {
if (c!=32) c+=128; //blank
FrameBuffer1[row*Lcd.cols+col]=(char)c;
@@ -364,11 +386,13 @@ LCD Crystalfontz[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: CF_init,
clear: CF_clear,
put: CF_put,
bar: CF_bar,
+ icon: CF_icon,
gpo: NULL,
flush: CF_flush,
quit: CF_quit
@@ -379,11 +403,13 @@ LCD Crystalfontz[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: CF_init,
clear: CF_clear,
put: CF_put,
bar: CF_bar,
+ icon: CF_icon,
gpo: NULL,
flush: CF_flush,
quit: CF_quit
@@ -394,11 +420,13 @@ LCD Crystalfontz[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: CF_init,
clear: CF_clear,
put: CF_put,
bar: CF_bar,
+ icon: CF_icon,
gpo: NULL,
flush: CF_flush,
quit: CF_quit
@@ -409,11 +437,13 @@ LCD Crystalfontz[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: CF_init,
clear: CF_clear,
put: CF_put,
bar: CF_bar,
+ icon: CF_icon,
gpo: NULL,
flush: CF_flush,
quit: CF_quit
diff --git a/Cwlinux.c b/Cwlinux.c
index affffc9..b0a2865 100644
--- a/Cwlinux.c
+++ b/Cwlinux.c
@@ -1,4 +1,4 @@
-/* $Id: Cwlinux.c,v 1.13 2003/09/09 06:54:43 reinelt Exp $
+/* $Id: Cwlinux.c,v 1.14 2003/09/13 06:45:43 reinelt Exp $
*
* driver for Cwlinux serial display modules
*
@@ -20,6 +20,9 @@
*
*
* $Log: Cwlinux.c,v $
+ * Revision 1.14 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.13 2003/09/09 06:54:43 reinelt
* new function 'cfg_number()'
*
@@ -82,6 +85,7 @@
#include "lock.h"
#include "display.h"
#include "bar.h"
+#include "icon.h"
#define CHARS 8
@@ -89,6 +93,7 @@ static LCD Lcd;
static char *Port = NULL;
static speed_t Speed;
static int Device = -1;
+static int Icons;
static char *FrameBuffer1=NULL;
static char *FrameBuffer2=NULL;
@@ -220,6 +225,8 @@ int CW_clear(int full)
{
memset (FrameBuffer1, ' ', Lcd.rows*Lcd.cols*sizeof(char));
+
+ icon_clear();
bar_clear();
if (full) {
@@ -345,7 +352,15 @@ int CW_init(LCD * Self)
// backlight brightness
CW_Brightness();
- bar_init(Lcd.rows, Lcd.cols, Lcd.xres, Lcd.yres, CHARS);
+ if (cfg_number("Icons", 0, 0, CHARS, &Icons)<0) return -1;
+ if (Icons>0) {
+ debug ("reserving %d of %d user-defined characters for icons", Icons, CHARS);
+ icon_init(Lcd.rows, Lcd.cols, Lcd.xres, Lcd.yres, CHARS, Icons, CW12232_define_char);
+ Self->icons=Icons;
+ Lcd.icons=Icons;
+ }
+
+ bar_init(Lcd.rows, Lcd.cols, Lcd.xres, Lcd.yres, CHARS-Icons);
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
return 0;
@@ -370,6 +385,12 @@ int CW_bar(int type, int row, int col, int max, int len1, int len2)
}
+int CW_icon (int num, int seq, int row, int col)
+{
+ return icon_draw (num, seq, row, col);
+}
+
+
int CW_flush(void)
{
int row, col, pos1, pos2;
@@ -378,6 +399,7 @@ int CW_flush(void)
for (row = 0; row < Lcd.rows; row++) {
for (col = 0; col < Lcd.cols; col++) {
c=bar_peek(row, col);
+ if (c==-1) c=icon_peek(row, col);
if (c!=-1) {
if (c!=32) c++; //blank
FrameBuffer1[row*Lcd.cols+col]=(char)c;
@@ -442,35 +464,39 @@ int CW_quit(void)
LCD Cwlinux[] = {
- {name: "CW12232",
- rows: 4,
- cols: 20,
- xres: 6,
- yres: 8,
- bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
- gpos: 0,
- init: CW_init,
- clear: CW_clear,
- put: CW_put,
- bar: CW_bar,
- gpo: NULL,
- flush: CW12232_flush,
- quit: CW_quit
+ { name: "CW12232",
+ rows: 4,
+ cols: 20,
+ xres: 6,
+ yres: 8,
+ bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
+ gpos: 0,
+ init: CW_init,
+ clear: CW_clear,
+ put: CW_put,
+ bar: CW_bar,
+ icon: CW_icon,
+ gpo: NULL,
+ flush: CW12232_flush,
+ quit: CW_quit
},
- {name: "CW1602",
- rows: 2,
- cols: 16,
- xres: 5,
- yres: 8,
- bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
- gpos: 0,
- init: CW_init,
- clear: CW_clear,
- put: CW_put,
- bar: CW_bar,
- gpo: NULL,
- flush: CW1602_flush,
- quit: CW_quit
+ { name: "CW1602",
+ rows: 2,
+ cols: 16,
+ xres: 5,
+ yres: 8,
+ bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
+ gpos: 0,
+ init: CW_init,
+ clear: CW_clear,
+ put: CW_put,
+ bar: CW_bar,
+ icon: CW_icon,
+ gpo: NULL,
+ flush: CW1602_flush,
+ quit: CW_quit
},
{NULL}
};
diff --git a/MatrixOrbital.c b/MatrixOrbital.c
index ac947eb..1ce3b2b 100644
--- a/MatrixOrbital.c
+++ b/MatrixOrbital.c
@@ -1,4 +1,4 @@
-/* $Id: MatrixOrbital.c,v 1.40 2003/09/11 04:09:53 reinelt Exp $
+/* $Id: MatrixOrbital.c,v 1.41 2003/09/13 06:45:43 reinelt Exp $
*
* driver for Matrix Orbital serial display modules
*
@@ -20,6 +20,9 @@
*
*
* $Log: MatrixOrbital.c,v $
+ * Revision 1.41 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.40 2003/09/11 04:09:53 reinelt
* minor cleanups
*
@@ -196,8 +199,8 @@
#include "cfg.h"
#include "lock.h"
#include "display.h"
-#include "icon.h"
#include "bar.h"
+#include "icon.h"
#define XRES 5
#define YRES 8
@@ -439,21 +442,6 @@ int MO_bar (int type, int row, int col, int max, int len1, int len2)
}
-int MO_icon_old (int num, int row, int col, unsigned char *bitmap)
-{
- // icons use last ascii codes
- char ascii=CHARS-num;
-
- MO_define_char (ascii, bitmap);
- MO_goto(row, col);
- MO_write(&ascii, 1);
- FrameBuffer1[row*Lcd.cols+col]=(char)ascii;
- FrameBuffer2[row*Lcd.cols+col]=(char)ascii;
-
- return 0;
-}
-
-
int MO_icon (int num, int seq, int row, int col)
{
return icon_draw (num, seq, row, col);
diff --git a/PalmPilot.c b/PalmPilot.c
index 502374f..60dcf18 100644
--- a/PalmPilot.c
+++ b/PalmPilot.c
@@ -1,4 +1,4 @@
-/* $Id: PalmPilot.c,v 1.12 2003/09/09 06:54:43 reinelt Exp $
+/* $Id: PalmPilot.c,v 1.13 2003/09/13 06:45:43 reinelt Exp $
*
* driver for 3Com Palm Pilot
*
@@ -20,6 +20,9 @@
*
*
* $Log: PalmPilot.c,v $
+ * Revision 1.13 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.12 2003/09/09 06:54:43 reinelt
* new function 'cfg_number()'
*
@@ -92,6 +95,7 @@
#include "lock.h"
#include "display.h"
#include "bar.h"
+#include "icon.h"
#include "pixmap.h"
@@ -105,6 +109,7 @@ static int pgap=0;
static int rgap=0;
static int cgap=0;
static int border=0;
+static int icons;
static int Palm_open (void)
{
@@ -288,10 +293,18 @@ int Palm_init (LCD *Self)
return -1;
}
+ if (cfg_number("Icons", 0, 0, 8, &icons) < 0) return -1;
+ if (icons>0) {
+ info ("allocating %d icons", icons);
+ icon_init(rows, cols, xres, yres, 8, icons, pix_icon);
+ }
+
+
Self->rows=rows;
Self->cols=cols;
Self->xres=xres;
Self->yres=yres;
+ Self->icons=icons;
Lcd=*Self;
// Device=open ("PalmOrb.dat", O_WRONLY | O_CREAT | O_TRUNC, 0644);
@@ -313,6 +326,11 @@ int Palm_bar (int type, int row, int col, int max, int len1, int len2)
return pix_bar (type, row, col, max, len1, len2);
}
+int Palm_icon (int num, int seq, int row, int col)
+{
+ return icon_draw (num, seq, row, col);
+}
+
int Palm_quit (void)
{
debug ("closing port %s", Port);
@@ -328,11 +346,13 @@ LCD PalmPilot[] = {
xres: 0,
yres: 0,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T,
+ icons: 0,
gpos: 0,
init: Palm_init,
clear: Palm_clear,
put: Palm_put,
bar: Palm_bar,
+ icon: Palm_icon,
gpo: NULL,
flush: Palm_flush,
quit: Palm_quit },
diff --git a/SIN.c b/SIN.c
index 48f6233..80772ed 100644
--- a/SIN.c
+++ b/SIN.c
@@ -1,4 +1,4 @@
-/* $Id: SIN.c,v 1.12 2003/08/24 05:17:58 reinelt Exp $
+/* $Id: SIN.c,v 1.13 2003/09/13 06:45:43 reinelt Exp $
*
* driver for SIN router displays
*
@@ -20,6 +20,9 @@
*
*
* $Log: SIN.c,v $
+ * Revision 1.13 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.12 2003/08/24 05:17:58 reinelt
* liblcd4linux patch from Patrick Schemitz
*
@@ -291,11 +294,13 @@ LCD SIN[] = {
xres: XRES,
yres: YRES,
bars: BAR_L | BAR_R,
+ icons: 0,
gpos: 0,
init: SIN_init,
clear: SIN_clear,
put: SIN_put,
bar: SIN_bar,
+ icon: NULL,
gpo: NULL,
flush: SIN_flush,
quit: SIN_quit },
diff --git a/Skeleton.c b/Skeleton.c
index 7e9b0d9..40622aa 100644
--- a/Skeleton.c
+++ b/Skeleton.c
@@ -1,4 +1,4 @@
-/* $Id: Skeleton.c,v 1.10 2003/08/17 12:11:58 reinelt Exp $
+/* $Id: Skeleton.c,v 1.11 2003/09/13 06:45:43 reinelt Exp $
*
* skeleton driver for new display modules
*
@@ -20,6 +20,9 @@
*
*
* $Log: Skeleton.c,v $
+ * Revision 1.11 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.10 2003/08/17 12:11:58 reinelt
* framework for icons prepared
*
@@ -107,6 +110,11 @@ int Skel_bar (int type, int row, int col, int max, int len1, int len2)
return 0;
}
+int Skel_icon (int num, int seq, int row, int col)
+{
+ return 0;
+}
+
int Skel_gpo (int num, int val)
{
return 0;
@@ -131,11 +139,13 @@ LCD Skeleton[] = {
xres: 5,
yres: 8,
bars: BAR_L|BAR_R,
- gpo: 0,
+ icons: 0,
+ gpos: 0,
init: Skel_init,
clear: Skel_clear,
put: Skel_put,
bar: Skel_bar,
+ icon: Skel_icon,
gpo: Skel_gpo,
flush: Skel_flush,
quit: Skel_quit },
diff --git a/T6963.c b/T6963.c
index d096ebf..d49768e 100644
--- a/T6963.c
+++ b/T6963.c
@@ -1,4 +1,4 @@
-/* $Id: T6963.c,v 1.10 2003/08/16 07:31:35 reinelt Exp $
+/* $Id: T6963.c,v 1.11 2003/09/13 06:45:43 reinelt Exp $
*
* driver for display modules based on the Toshiba T6963 chip
*
@@ -20,6 +20,9 @@
*
*
* $Log: T6963.c,v $
+ * Revision 1.11 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.10 2003/08/16 07:31:35 reinelt
* double buffering in all drivers
*
@@ -74,6 +77,7 @@
#include "cfg.h"
#include "display.h"
#include "bar.h"
+#include "icon.h"
#include "parport.h"
#include "udelay.h"
#include "pixmap.h"
@@ -83,6 +87,7 @@
#define YRES 8
static LCD Lcd;
+static int Icons;
unsigned char *Buffer1, *Buffer2;
@@ -336,6 +341,14 @@ int T6_init (LCD *Self)
return -1;
}
+ if (cfg_number("Icons", 0, 0, 8, &Icons) < 0) return -1;
+ if (Icons>0) {
+ info ("allocating %d icons", Icons);
+ icon_init(Lcd.rows, Lcd.cols, Lcd.xres, Lcd.yres, 8, Icons, pix_icon);
+ Self->icons=Icons;
+ Lcd.icons=Icons;
+ }
+
Buffer1=malloc(Lcd.cols*Lcd.rows*Lcd.yres);
if (Buffer1==NULL) {
error ("T6963: malloc(%d) failed: %s", Lcd.cols*Lcd.rows*Lcd.yres, strerror(errno));
@@ -397,6 +410,12 @@ int T6_bar (int type, int row, int col, int max, int len1, int len2)
}
+int T6_icon (int num, int seq, int row, int col)
+{
+ return icon_draw (num, seq, row, col);
+}
+
+
int T6_flush (void)
{
int i, j, e;
@@ -441,11 +460,13 @@ LCD T6963[] = {
xres: 6,
yres: 8,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T,
+ icons: 0,
gpos: 0,
init: T6_init,
clear: T6_clear,
put: T6_put,
bar: T6_bar,
+ icon: T6_icon,
gpo: NULL,
flush: T6_flush,
quit: T6_quit
@@ -456,11 +477,13 @@ LCD T6963[] = {
xres: 8,
yres: 8,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2 | BAR_V2 | BAR_T,
+ icons: 0,
gpos: 0,
init: T6_init,
clear: T6_clear,
put: T6_put,
bar: T6_bar,
+ icon: T6_icon,
gpo: NULL,
flush: T6_flush,
quit: T6_quit
diff --git a/Text.c b/Text.c
index 8b24266..78ed807 100644
--- a/Text.c
+++ b/Text.c
@@ -1,4 +1,4 @@
-/* $Id: Text.c,v 1.10 2003/08/24 05:17:58 reinelt Exp $
+/* $Id: Text.c,v 1.11 2003/09/13 06:45:43 reinelt Exp $
*
* pure ncurses based text driver
*
@@ -20,6 +20,9 @@
*
*
* $Log: Text.c,v $
+ * Revision 1.11 2003/09/13 06:45:43 reinelt
+ * icons for all remaining drivers
+ *
* Revision 1.10 2003/08/24 05:17:58 reinelt
* liblcd4linux patch from Patrick Schemitz
*
@@ -255,11 +258,13 @@ LCD Text[] = {
xres: 1,
yres: 1,
bars: BAR_L | BAR_R | BAR_U | BAR_D | BAR_H2,
+ icons: 0,
gpos: 0,
init: Text_init,
clear: Text_clear,
put: Text_put,
bar: Text_bar,
+ icon: NULL,
gpo: NULL,
flush: Text_flush,
quit: Text_quit