]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2003-08-24 04:31:56 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Sun, 24 Aug 2003 04:31:56 +0000 (04:31 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Sun, 24 Aug 2003 04:31:56 +0000 (04:31 +0000)
icon.c icon.h added

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

Makefile.am
Makefile.in
MatrixOrbital.c
display.c
icon.c [new file with mode: 0644]
icon.h [new file with mode: 0644]

index 1be1d54d2f0d98586411e1d1735bd7605d115291..4b6704a316757697be189aaa2113a5980b61a796 100644 (file)
@@ -30,6 +30,7 @@ udelay.c udelay.h \
 display.c display.h \
 pixmap.c pixmap.h \
 bar.c bar.h \
+icon.c icon.h \
 fontmap.c fontmap.h \
 exec.c exec.h \
 mail2.c \
index 8fe8f6dd7ad679bdc891645166ddf736b0a232aa..5f72b3ca4d1b9b7baf474775f2cc533ae29e4fd6 100644 (file)
@@ -83,7 +83,7 @@ lcd4linux_LDFLAGS = $(X_LIBS)
 lcd4linux_LDADD = @DRIVERS@ @DRVLIBS@
 lcd4linux_DEPENDENCIES = @DRIVERS@
 
-lcd4linux_SOURCES =  lcd4linux.c debug.c debug.h cfg.c cfg.h lock.c lock.h pid.c pid.h parser.c parser.h processor.c processor.h system.c system.h isdn.c isdn.h mail.c mail.h seti.c seti.h battery.c battery.h dvb.c dvb.h filter.c filter.h udelay.c udelay.h display.c display.h pixmap.c pixmap.h bar.c bar.h fontmap.c fontmap.h exec.c exec.h mail2.c socket.c socket.h
+lcd4linux_SOURCES =  lcd4linux.c debug.c debug.h cfg.c cfg.h lock.c lock.h pid.c pid.h parser.c parser.h processor.c processor.h system.c system.h isdn.c isdn.h mail.c mail.h seti.c seti.h battery.c battery.h dvb.c dvb.h filter.c filter.h udelay.c udelay.h display.c display.h pixmap.c pixmap.h bar.c bar.h icon.c icon.h fontmap.c fontmap.h exec.c exec.h mail2.c socket.c socket.h
 
 
 EXTRA_lcd4linux_SOURCES =  parport.c parport.h BeckmannEgle.c Crystalfontz.c Cwlinux.c HD44780.c M50530.c T6963.c USBLCD.c MatrixOrbital.c PalmPilot.c Raster.c SIN.c Skeleton.c XWindow.c Text.c
@@ -118,7 +118,8 @@ PROGRAMS =  $(bin_PROGRAMS)
 
 lcd4linux_OBJECTS =  lcd4linux.o debug.o cfg.o lock.o pid.o parser.o \
 processor.o system.o isdn.o mail.o seti.o battery.o dvb.o filter.o \
-udelay.o display.o pixmap.o bar.o fontmap.o exec.o mail2.o socket.o
+udelay.o display.o pixmap.o bar.o icon.o fontmap.o exec.o mail2.o \
+socket.o
 CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -137,10 +138,10 @@ DEP_FILES =  .deps/BeckmannEgle.P .deps/Crystalfontz.P .deps/Cwlinux.P \
 .deps/Raster.P .deps/SIN.P .deps/Skeleton.P .deps/T6963.P .deps/Text.P \
 .deps/USBLCD.P .deps/XWindow.P .deps/bar.P .deps/battery.P .deps/cfg.P \
 .deps/debug.P .deps/display.P .deps/dvb.P .deps/exec.P .deps/filter.P \
-.deps/fontmap.P .deps/isdn.P .deps/lcd4linux.P .deps/lock.P \
-.deps/mail.P .deps/mail2.P .deps/parport.P .deps/parser.P .deps/pid.P \
-.deps/pixmap.P .deps/processor.P .deps/seti.P .deps/socket.P \
-.deps/system.P .deps/udelay.P
+.deps/fontmap.P .deps/icon.P .deps/isdn.P .deps/lcd4linux.P \
+.deps/lock.P .deps/mail.P .deps/mail2.P .deps/parport.P .deps/parser.P \
+.deps/pid.P .deps/pixmap.P .deps/processor.P .deps/seti.P \
+.deps/socket.P .deps/system.P .deps/udelay.P
 SOURCES = $(liblcd4linux_a_SOURCES) $(lcd4linux_SOURCES) $(EXTRA_lcd4linux_SOURCES)
 OBJECTS = $(liblcd4linux_a_OBJECTS) $(lcd4linux_OBJECTS)
 
index 36e69613f8b4efec4f504c4f9f3d474b73b3cd9e..6848a7eb2cf16293f24cf3d59179f15fd85bca78 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: MatrixOrbital.c,v 1.32 2003/08/22 03:45:08 reinelt Exp $
+/* $Id: MatrixOrbital.c,v 1.33 2003/08/24 04:31:56 reinelt Exp $
  *
  * driver for Matrix Orbital serial display modules
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: MatrixOrbital.c,v $
+ * Revision 1.33  2003/08/24 04:31:56  reinelt
+ * icon.c icon.h added
+ *
  * Revision 1.32  2003/08/22 03:45:08  reinelt
  * bug in parallel port code fixed, more icons stuff
  *
 #include "cfg.h"
 #include "lock.h"
 #include "display.h"
+#include "icon.h"
 #include "bar.h"
 
 #define XRES 5
@@ -264,6 +268,7 @@ static int MO_clear (int protocol)
   int gpo;
   
   memset (FrameBuffer1, ' ', Lcd.rows*Lcd.cols*sizeof(char));
+  icon_clear();
   bar_clear();
   GPO=0;
 
@@ -364,6 +369,8 @@ static int MO_init (LCD *Self, int protocol)
     Lcd.icons=Icons;
   }
 
+  icon_init(Lcd.rows, Lcd.cols, XRES, YRES, 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
index 84c7ae5501d9a654516761a1e3b8c82a471555db..6896928336addfff730f862058216d235d0f0b9a 100644 (file)
--- a/display.c
+++ b/display.c
@@ -1,4 +1,4 @@
-/* $Id: display.c,v 1.37 2003/08/17 16:37:39 reinelt Exp $
+/* $Id: display.c,v 1.38 2003/08/24 04:31:56 reinelt Exp $
  *
  * framework for device drivers
  *
@@ -20,6 +20,9 @@
  *
  *
  * $Log: display.c,v $
+ * Revision 1.38  2003/08/24 04:31:56  reinelt
+ * icon.c icon.h added
+ *
  * Revision 1.37  2003/08/17 16:37:39  reinelt
  * more icon framework
  *
@@ -358,9 +361,7 @@ int lcd_icon (int num, int row, int col, unsigned char *bitmap)
   if (row<1 || row>Lcd->rows)  return -1;
   if (col<1 || col>Lcd->cols)  return -1;
   if (Lcd->icon==NULL)         return  0;
-
-  // Fixme: ToDo!
-  return 0;
+  return Lcd->icon(num-1, row-1, col-1, bitmap);
 }
 
 int lcd_gpo (int num, int val)
diff --git a/icon.c b/icon.c
new file mode 100644 (file)
index 0000000..ee9440b
--- /dev/null
+++ b/icon.c
@@ -0,0 +1,97 @@
+/* $Id: icon.c,v 1.1 2003/08/24 04:31:56 reinelt Exp $
+ *
+ * generic icon and heartbeat handling
+ *
+ * written 2003 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: icon.c,v $
+ * Revision 1.1  2003/08/24 04:31:56  reinelt
+ * icon.c icon.h added
+ *
+ *
+ */
+
+
+#include <stdlib.h>
+
+#include "icon.h"
+#include "debug.h"
+
+
+static int ROWS=0;
+static int COLS=0;
+static int XRES=0;
+static int YRES=0;
+static int ICONS=0;
+
+static int *Screen;
+
+
+static int icon_get_bitmap (int num)
+{
+  int row, col;
+  char  key[15];
+  char *val;
+  
+  for (row=1; row<=8; row++) {
+    snprintf (key, sizeof(key), "Icons%d.Bitmap%d", num, row);
+    val=cfg_get(key);
+  }
+}
+
+
+int icon_init (int rows, int cols, int xres, int yres, int icons)
+{
+  if (rows<1 || cols<1) 
+    return -1;
+  
+  ROWS=rows;
+  COLS=cols;
+  XRES=xres;
+  YRES=yres;
+  ICONS=icons;
+
+  if (Screen) {
+    free (Screen);
+  }
+  
+  if ((Screen=malloc(ROWS*COLS*sizeof(*Screen)))==NULL) {
+    return -1;
+  }
+
+  icon_clear();
+
+  return 0;
+}
+
+
+void icon_clear(void)
+{
+  int n;
+
+  for (n=0; n<ROWS*COLS; n++) {
+    Screen[n]=-1;
+  }
+  
+}
+
+
+int icon_peek (int row, int col)
+{
+  return Screen[row*COLS+col];
+}
diff --git a/icon.h b/icon.h
new file mode 100644 (file)
index 0000000..dd18c73
--- /dev/null
+++ b/icon.h
@@ -0,0 +1,36 @@
+/* $Id: icon.h,v 1.1 2003/08/24 04:31:56 reinelt Exp $
+ *
+ * generic icon and heartbeat handling
+ *
+ * written 2003 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: icon.h,v $
+ * Revision 1.1  2003/08/24 04:31:56  reinelt
+ * icon.c icon.h added
+ *
+ *
+ */
+
+#ifndef _ICON_H_
+#define _ICON_H_
+
+int icon_init (int rows, int cols, int xres, int yres, int icons);
+void icon_clear(void);
+int icon_peek (int row, int col);
+
+#endif