]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2004-01-23 07:04:03 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Fri, 23 Jan 2004 07:04:39 +0000 (07:04 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Fri, 23 Jan 2004 07:04:39 +0000 (07:04 +0000)
icons finished!

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

drv_Crystalfontz.c
drv_HD44780.c
drv_MatrixOrbital.c
drv_generic_text.c
drv_generic_text.h
lcd4linux.conf.sample
widget_icon.c
widget_icon.h

index 112119dd70c6c3f5d1fa05c034764f9f59041ba6..c4a856faf18ba9ec18b8636858354076be8d72ef 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_Crystalfontz.c,v 1.3 2004/01/23 04:53:34 reinelt Exp $
+/* $Id: drv_Crystalfontz.c,v 1.4 2004/01/23 07:04:03 reinelt Exp $
  *
  * new style driver for Crystalfontz display modules
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_Crystalfontz.c,v $
+ * Revision 1.4  2004/01/23 07:04:03  reinelt
+ * icons finished!
+ *
  * Revision 1.3  2004/01/23 04:53:34  reinelt
  * icon widget added (not finished yet!)
  *
@@ -53,8 +56,8 @@
 #include "plugin.h"
 #include "widget.h"
 #include "widget_text.h"
-#include "widget_bar.h"
 #include "widget_icon.h"
+#include "widget_bar.h"
 #include "drv.h"
 #include "drv_generic_text.h"
 #include "drv_generic_serial.h"
@@ -110,7 +113,7 @@ static void drv_CF_goto (int row, int col)
 }
 
 
-static void drv_CF_define_char (int ascii, char *buffer)
+static void drv_CF_defchar (int ascii, char *buffer)
 {
   char cmd[2]="\031n"; // set custom char bitmap
 
@@ -206,23 +209,9 @@ static void plugin_backlight (RESULT *result, RESULT *arg1)
 // ***        widget callbacks          ***
 // ****************************************
 
-
-int drv_CF_draw_text (WIDGET *W)
-{
-  return drv_generic_text_draw_text(W, 4, drv_CF_goto, drv_generic_serial_write);
-}
-
-
-int drv_CF_draw_icon (WIDGET *W)
-{
-  return drv_generic_text_draw_icon(W, drv_CF_define_char, drv_CF_goto, drv_generic_serial_write);
-}
-
-
-int drv_CF_draw_bar (WIDGET *W)
-{
-  return drv_generic_text_draw_bar(W, 4, drv_CF_define_char, drv_CF_goto, drv_generic_serial_write);
-}
+// using drv_generic_text_draw(W)
+// using drv_generic_text_icon_draw(W)
+// using drv_generic_text_bar_draw(W)
 
 
 // ****************************************
@@ -248,11 +237,19 @@ int drv_CF_init (char *section)
   WIDGET_CLASS wc;
   int ret;  
   
-  XRES=6;    // pixel width  of one char 
-  YRES=8;    // pixel height of one char 
-  CHARS=8;   // number of user-defineable chars
-  CHAR0=128; // ascii of first user-defineable chars
-  
+  // display preferences
+  XRES  = 6;      // pixel width of one char 
+  YRES  = 8;      // pixel height of one char 
+  CHARS = 8;      // number of user-defineable characters
+  CHAR0 = 128;    // ASCII of first user-defineable char
+  GOTO_COST = 3;  // number of bytes a goto command requires
+
+  // real worker functions
+  drv_generic_text_real_write   = drv_generic_serial_write;
+  drv_generic_text_real_goto    = drv_CF_goto;
+  drv_generic_text_real_defchar = drv_CF_defchar;
+
+
   // start display
   if ((ret=drv_CF_start (section))!=0)
     return ret;
@@ -274,17 +271,17 @@ int drv_CF_init (char *section)
   
   // register text widget
   wc=Widget_Text;
-  wc.draw=drv_CF_draw_text;
-  widget_register(&wc);
-  
-  // register bar widget
-  wc=Widget_Bar;
-  wc.draw=drv_CF_draw_bar;
+  wc.draw=drv_generic_text_draw;
   widget_register(&wc);
   
   // register icon widget
   wc=Widget_Icon;
-  wc.draw=drv_CF_draw_icon;
+  wc.draw=drv_generic_text_icon_draw;
+  widget_register(&wc);
+  
+  // register bar widget
+  wc=Widget_Bar;
+  wc.draw=drv_generic_text_bar_draw;
   widget_register(&wc);
   
   // register plugins
index 8fffb5b72c079b2d66f8dac7d148310074378846..60092f902718617d2efcc5a59017e226a0f843de 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_HD44780.c,v 1.4 2004/01/23 04:53:48 reinelt Exp $
+/* $Id: drv_HD44780.c,v 1.5 2004/01/23 07:04:17 reinelt Exp $
  *
  * new style driver for HD44780-based displays
  *
@@ -29,6 +29,9 @@
  *
  *
  * $Log: drv_HD44780.c,v $
+ * Revision 1.5  2004/01/23 07:04:17  reinelt
+ * icons finished!
+ *
  * Revision 1.4  2004/01/23 04:53:48  reinelt
  * icon widget added (not finished yet!)
  *
@@ -69,6 +72,7 @@
 #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"
@@ -101,7 +105,6 @@ static char Name[]="HD44780";
 
 
 static int Bits=0;
-static int GPO=0;
 static int Controllers = 0;
 static int Controller  = 0;
 
@@ -113,6 +116,8 @@ static unsigned char SIGNAL_GPO;
 
 // Fixme
 static int GPOS;
+// static int GPO=0;
+
 
 // ****************************************
 // ***  hardware dependant functions    ***
@@ -371,7 +376,7 @@ static void drv_HD_write (char *string, int len)
 }
 
 
-static void drv_HD_define_char (int ascii, char *buffer)
+static void drv_HD_defchar (int ascii, char *buffer)
 {
   // define chars on *both* controllers!
   drv_HD_command (0x03, 0x40|8*ascii, T_EXEC);
@@ -408,16 +413,9 @@ static void drv_HD_setGPO (int bits)
 // ****************************************
 
 
-int drv_HD_draw_text (WIDGET *W)
-{
-  return drv_generic_text_draw_text(W, 2, drv_HD_goto, drv_HD_write);
-}
-
-
-int drv_HD_draw_bar (WIDGET *W)
-{
-  return drv_generic_text_draw_bar(W, 2, drv_HD_define_char, drv_HD_goto, drv_HD_write);
-}
+// using drv_generic_text_draw(W)
+// using drv_generic_text_icon_draw(W)
+// using drv_generic_text_bar_draw(W)
 
 
 // ****************************************
@@ -440,11 +438,19 @@ int drv_HD_init (char *section)
   int asc255bug;
   int ret;  
   
-  XRES=5;  // pixel width  of one char 
-  YRES=8;  // pixel height of one char 
-  CHARS=8; // number of user-defineable chars
-  CHAR0=0; // ascii of first user-defineable chars
+  // display preferences
+  XRES  = 5;      // pixel width of one char 
+  YRES  = 8;      // pixel height of one char 
+  CHARS = 8;      // number of user-defineable characters
+  CHAR0 = 0;      // ASCII of first user-defineable char
+  GOTO_COST = 2;  // number of bytes a goto command requires
   
+  // real worker functions
+  drv_generic_text_real_write   = drv_HD_write;
+  drv_generic_text_real_goto    = drv_HD_goto;
+  drv_generic_text_real_defchar = drv_HD_defchar;
+
+
   // start display
   if ((ret=drv_HD_start (section))!=0)
     return ret;
@@ -453,6 +459,10 @@ int drv_HD_init (char *section)
   if ((ret=drv_generic_text_init(section, Name))!=0)
     return ret;
 
+  // initialize generic icon driver
+  if ((ret=drv_generic_text_icon_init())!=0)
+    return ret;
+  
   // initialize generic bar driver
   if ((ret=drv_generic_text_bar_init())!=0)
     return ret;
@@ -468,12 +478,17 @@ int drv_HD_init (char *section)
   
   // register text widget
   wc=Widget_Text;
-  wc.draw=drv_HD_draw_text;
+  wc.draw=drv_generic_text_draw;
+  widget_register(&wc);
+  
+  // register icon widget
+  wc=Widget_Icon;
+  wc.draw=drv_generic_text_icon_draw;
   widget_register(&wc);
   
   // register bar widget
   wc=Widget_Bar;
-  wc.draw=drv_HD_draw_bar;
+  wc.draw=drv_generic_text_bar_draw;
   widget_register(&wc);
   
   // register plugins
index 7549502d2d04cd1675f4cc199c8f27fcb0c062f4..dfa2ee261390023d85335b6367008b694e87ff3b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_MatrixOrbital.c,v 1.17 2004/01/23 04:53:50 reinelt Exp $
+/* $Id: drv_MatrixOrbital.c,v 1.18 2004/01/23 07:04:22 reinelt Exp $
  *
  * new style driver for Matrix Orbital serial display modules
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_MatrixOrbital.c,v $
+ * Revision 1.18  2004/01/23 07:04:22  reinelt
+ * icons finished!
+ *
  * Revision 1.17  2004/01/23 04:53:50  reinelt
  * icon widget added (not finished yet!)
  *
 #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"
@@ -183,7 +187,7 @@ static void drv_MO_goto (int row, int col)
 }
 
 
-static void drv_MO_define_char (int ascii, char *buffer)
+static void drv_MO_defchar (int ascii, char *buffer)
 {
   char cmd[3]="\376N";
 
@@ -419,17 +423,9 @@ static void plugin_rpm (RESULT *result, RESULT *arg1)
 // ***        widget callbacks          ***
 // ****************************************
 
-
-int drv_MO_draw_text (WIDGET *W)
-{
-  return drv_generic_text_draw_text(W, 5, drv_MO_goto, drv_generic_serial_write);
-}
-
-
-int drv_MO_draw_bar (WIDGET *W)
-{
-  return drv_generic_text_draw_bar(W, 5, drv_MO_define_char, drv_MO_goto, drv_generic_serial_write);
-}
+// using drv_generic_text_draw(W)
+// using drv_generic_text_icon_draw(W)
+// using drv_generic_text_bar_draw(W)
 
 
 // ****************************************
@@ -455,11 +451,19 @@ int drv_MO_init (char *section)
   WIDGET_CLASS wc;
   int ret;  
   
-  XRES=5;  // pixel width  of one char 
-  YRES=8;  // pixel height of one char 
-  CHARS=8; // number of user-defineable chars
-  CHAR0=0; // ascii of first user-defineable chars
+  // display preferences
+  XRES=5;      // pixel width of one char 
+  YRES=8;      // pixel height of one char 
+  CHARS=8;     // number of user-defineable characters
+  CHAR0=0;     // ASCII of first user-defineable char
+  GOTO_COST=4; // number of bytes a goto command requires
   
+  // real worker functions
+  drv_generic_text_real_write   = drv_generic_serial_write;
+  drv_generic_text_real_goto    = drv_MO_goto;
+  drv_generic_text_real_defchar = drv_MO_defchar;
+
+
   // start display
   if ((ret=drv_MO_start (section))!=0)
     return ret;
@@ -468,6 +472,10 @@ int drv_MO_init (char *section)
   if ((ret=drv_generic_text_init(section, Name))!=0)
     return ret;
 
+  // initialize generic icon driver
+  if ((ret=drv_generic_text_icon_init())!=0)
+    return ret;
+  
   // initialize generic bar driver
   if ((ret=drv_generic_text_bar_init())!=0)
     return ret;
@@ -478,12 +486,17 @@ int drv_MO_init (char *section)
   
   // register text widget
   wc=Widget_Text;
-  wc.draw=drv_MO_draw_text;
+  wc.draw=drv_generic_text_draw;
+  widget_register(&wc);
+  
+  // register icon widget
+  wc=Widget_Icon;
+  wc.draw=drv_generic_text_icon_draw;
   widget_register(&wc);
   
   // register bar widget
   wc=Widget_Bar;
-  wc.draw=drv_MO_draw_bar;
+  wc.draw=drv_generic_text_bar_draw;
   widget_register(&wc);
   
   // register plugins
index ebc855995831dba11e942358183f10f4c7636cdc..9609373bb64924f3bcfc9b7b4fbf5ed164431b28 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_text.c,v 1.5 2004/01/23 04:53:54 reinelt Exp $
+/* $Id: drv_generic_text.c,v 1.6 2004/01/23 07:04:23 reinelt Exp $
  *
  * generic driver helper for text-based displays
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_generic_text.c,v $
+ * Revision 1.6  2004/01/23 07:04:23  reinelt
+ * icons finished!
+ *
  * Revision 1.5  2004/01/23 04:53:54  reinelt
  * icon widget added (not finished yet!)
  *
@@ -93,16 +96,18 @@ static char *Driver=NULL;
 int DROWS, DCOLS; // display size
 int LROWS, LCOLS; // layout size
 int XRES,  YRES;  // pixels of one char cell
+int GOTO_COST;    // number of bytes a goto command requires
 int CHARS, CHAR0; // number of user-defineable characters, ASCII of first char
 int ICONS;        // number of user-defineable characters reserved for icons
 
-char *LayoutFB    = NULL;
-char *DisplayFB   = NULL;
-static BAR *BarFB = NULL;
+
+static char *LayoutFB    = NULL;
+static char *DisplayFB   = NULL;
 
 static int nSegment=0;
 static int fSegment=0;
 static SEGMENT Segment[128];
+static BAR *BarFB = NULL;
 
 
 
@@ -169,9 +174,7 @@ void drv_generic_text_resizeFB (int rows, int cols)
 
 
 
-int drv_generic_text_draw_text (WIDGET *W, int goto_len, 
-                              void (*drv_goto)(int row, int col), 
-                              void (*drv_write)(char *buffer, int len))
+int drv_generic_text_draw (WIDGET *W)
 {
   WIDGET_TEXT *Text=W->data;
   char *txt, *fb1, *fb2;
@@ -196,19 +199,19 @@ int drv_generic_text_draw_text (WIDGET *W, int goto_len,
     for (; col<=end && col<DCOLS; col++) {
       int pos1, pos2, equal;
       if (fb1[col]==fb2[col]) continue;
-      drv_goto (row, col);
+      drv_generic_text_real_goto (row, col);
       for (pos1=col, pos2=pos1, col++, equal=0; col<=end && col<DCOLS; col++) {
        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_len) break;
+         if (++equal>GOTO_COST) break;
        } else {
          pos2=col;
          equal=0;
        }
       }
-      memcpy    (fb2+pos1, fb1+pos1, pos2-pos1+1);
-      drv_write (fb2+pos1,           pos2-pos1+1);
+      memcpy                      (fb2+pos1, fb1+pos1, pos2-pos1+1);
+      drv_generic_text_real_write (fb2+pos1,           pos2-pos1+1);
     }
   }
 
@@ -220,11 +223,9 @@ int drv_generic_text_draw_text (WIDGET *W, int goto_len,
 // *** generic icon handling            ***
 // ****************************************
 
-int drv_generic_text_draw_icon (WIDGET *W,
-                               void (*drv_defchar)(int ascii, char *buffer),
-                               void (*drv_goto)(int row, int col), 
-                               void (*drv_write)(char *buffer, int len))
+int drv_generic_text_icon_draw (WIDGET *W)
 {
+  static int icon_counter=0;
   WIDGET_ICON *Icon = W->data;
   int row, col;
   
@@ -234,11 +235,35 @@ int drv_generic_text_draw_icon (WIDGET *W,
   // maybe grow layout framebuffer
   drv_generic_text_resizeFB (row+1, col+1);
   
+  // icon deactivated?
+  if (Icon->ascii==-2) return 0;
+  
+  // ASCII already assigned?
+  if (Icon->ascii==-1) {
+    if (icon_counter>=ICONS) {
+      error ("cannot process icon '%s': out of icons", W->name);
+      Icon->ascii=-2;
+      return -1;
+    }
+    icon_counter++;
+    Icon->ascii=CHAR0+CHARS-icon_counter;
+  }
+
   // maybe redefine icon
   if (Icon->curmap!=Icon->prvmap) {
-    debug ("Michi: I'm redefining me...");
+    drv_generic_text_real_defchar(Icon->ascii, Icon->bitmap+YRES*Icon->curmap);
   }
+
+  // transfer icon into layout buffer
+  LayoutFB[row*LCOLS+col]=Icon->ascii;
   
+  // maybe send icon to the display
+  if (DisplayFB[row*DCOLS+col]!=Icon->ascii) {
+    DisplayFB[row*DCOLS+col]=Icon->ascii;
+    drv_generic_text_real_goto (row, col);
+    drv_generic_text_real_write (DisplayFB+row*DCOLS+col, 1);
+  }
+
   return 0;
   
 }
@@ -462,7 +487,7 @@ static void drv_generic_text_bar_pack_segments (void)
 }
 
 
-static void drv_generic_text_bar_define_chars (void(*defchar)(int ascii, char *matrix))
+static void drv_generic_text_bar_define_chars(void)
 {
   int c, i, j;
   char buffer[8];
@@ -507,15 +532,12 @@ static void drv_generic_text_bar_define_chars (void(*defchar)(int ascii, char *m
       }
       break;
     }
-    defchar(CHAR0+c, buffer);
+    drv_generic_text_real_defchar(CHAR0+c, buffer);
   }
 }
 
 
-int drv_generic_text_draw_bar (WIDGET *W, int goto_len, 
-                              void (*drv_defchar)(int ascii, char *buffer),
-                              void (*drv_goto)(int row, int col), 
-                              void (*drv_write)(char *buffer, int len))
+int drv_generic_text_bar_draw (WIDGET *W)
 {
   WIDGET_BAR *Bar = W->data;
   int row, col, len, res, max, val1, val2;
@@ -552,7 +574,7 @@ int drv_generic_text_draw_bar (WIDGET *W, int goto_len,
   // process all bars
   drv_generic_text_bar_create_segments ();
   drv_generic_text_bar_pack_segments ();
-  drv_generic_text_bar_define_chars(drv_defchar);
+  drv_generic_text_bar_define_chars();
   
   // reset usage flags
   for (s=0; s<nSegment; s++) {
@@ -580,19 +602,19 @@ int drv_generic_text_draw_bar (WIDGET *W, int goto_len,
     for (col=0; col<DCOLS; col++) {
       int pos1, pos2, equal;
       if (LayoutFB[row*LCOLS+col]==DisplayFB[row*DCOLS+col]) continue;
-      drv_goto (row, col);
+      drv_generic_text_real_goto (row, col);
       for (pos1=col, pos2=pos1, col++, equal=0; col<DCOLS; col++) {
        if (LayoutFB[row*LCOLS+col]==DisplayFB[row*DCOLS+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_len) break;
+         if (++equal>GOTO_COST) break;
        } else {
          pos2=col;
          equal=0;
        }
       }
-      memcpy    (DisplayFB+row*DCOLS+pos1, LayoutFB+row*LCOLS+pos1, pos2-pos1+1);
-      drv_write (DisplayFB+row*DCOLS+pos1,                          pos2-pos1+1);
+      memcpy                      (DisplayFB+row*DCOLS+pos1, LayoutFB+row*LCOLS+pos1, pos2-pos1+1);
+      drv_generic_text_real_write (DisplayFB+row*DCOLS+pos1,                          pos2-pos1+1);
     }
   }
   
index 46e93d6b7f3beec7d8ac2b5055cdc751fad335b0..dbdd9bad6bffa73ea6ba363b359c16ab306de066 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_text.h,v 1.3 2004/01/23 04:53:55 reinelt Exp $
+/* $Id: drv_generic_text.h,v 1.4 2004/01/23 07:04:24 reinelt Exp $
  *
  * generic driver helper for text-based displays
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: drv_generic_text.h,v $
+ * Revision 1.4  2004/01/23 07:04:24  reinelt
+ * icons finished!
+ *
  * Revision 1.3  2004/01/23 04:53:55  reinelt
  * icon widget added (not finished yet!)
  *
 
 extern int DROWS, DCOLS; // display size
 extern int LROWS, LCOLS; // layout size
-extern int XRES,  YRES;  // pixels of one char cell
+extern int XRES,  YRES;  // pixel width/height of one char 
+extern int GOTO_COST;    // number of bytes a goto command requires
 extern int CHARS, CHAR0; // number of user-defineable characters, ASCII of first char
 extern int ICONS;        // number of user-defineable characters reserved for icons
 
-extern char *LayoutFB;
-extern char *DisplayFB;
-
-
-int  drv_generic_text_init      (char *section, char *driver);
+// these functions must be implemented by the real driver
+void (*drv_generic_text_real_goto)(int row, int col);
+void (*drv_generic_text_real_write)(char *buffer, int len);
+void (*drv_generic_text_real_defchar)(int ascii, char *buffer);
 
-void drv_generic_text_resizeFB  (int rows, int cols);
 
-int  drv_generic_text_draw_text (WIDGET *W, int goto_len, 
-                                void (*drv_goto)(int row, int col), 
-                                void (*drv_write)(char *buffer, int len));
-
-int  drv_generic_text_icon_init  (void);
-
-int  drv_generic_text_bar_init  (void);
+int  drv_generic_text_init            (char *section, char *driver);
+void drv_generic_text_resizeFB        (int rows, int cols);
+int  drv_generic_text_draw            (WIDGET *W);
+int  drv_generic_text_icon_init       (void);
+int  drv_generic_text_icon_draw       (WIDGET *W);
+int  drv_generic_text_bar_init        (void);
 void drv_generic_text_bar_add_segment (int val1, int val2, DIRECTION dir, int ascii);
-int  drv_generic_text_draw_bar  (WIDGET *W, int goto_len, 
-                                void (*drv_defchar)(int ascii, char *buffer),
-                                void (*drv_goto)(int row, int col), 
-                                void (*drv_write)(char *buffer, int len));
-
-int  drv_generic_text_quit      (void);
+int  drv_generic_text_bar_draw        (WIDGET *W);
+int  drv_generic_text_quit            (void);
 
 
 
index fda6b671bb6771db4b1fc7770d3f0e8498c17f37..76a55d1e07fe0e840d303597fc1b60671ac2893f 100644 (file)
@@ -9,7 +9,7 @@ Display LK204 {
 
 
 Display CF632 {
-    Icons 2
+    Icons 7
     Driver 'Crystalfontz'
     Model '632'
     Port '/dev/tts/0'
@@ -104,7 +104,7 @@ Widget LoadBar {
 
 Widget Heartbeat {
     class 'Icon'
-    speed 100
+    speed 800
     Bitmap {
        Row1 '.....|.....'
        Row2 '.*.*.|.*.*.'
@@ -117,6 +117,91 @@ Widget Heartbeat {
     }
 }
 
+Widget EKG {
+    class 'Icon'
+    speed 50
+    Bitmap {
+       Row1 '.....|.....|.....|.....|.....|.....|.....|.....'
+       Row2 '.....|....*|...*.|..*..|.*...|*....|.....|.....'
+       Row3 '.....|....*|...*.|..*..|.*...|*....|.....|.....'
+       Row4 '.....|....*|...**|..**.|.**..|**...|*....|.....'
+       Row5 '.....|....*|...**|..**.|.**..|**...|*....|.....'
+       Row6 '.....|....*|...*.|..*.*|.*.*.|*.*..|.*...|*....'
+       Row7 '*****|*****|****.|***..|**..*|*..**|..***|.****'
+       Row8 '.....|.....|.....|.....|.....|.....|.....|.....'
+    }
+}
+Widget Karo {
+    class 'Icon'
+    speed 200
+    Bitmap {
+       Row1 '.....|.....|.....|.....|..*..|.....|.....|.....'
+       Row2 '.....|.....|.....|..*..|.*.*.|..*..|.....|.....'
+       Row3 '.....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....'
+       Row4 '.....|..*..|.*.*.|*...*|.....|*...*|.*.*.|..*..'
+       Row5 '.....|.....|..*..|.*.*.|*...*|.*.*.|..*..|.....'
+       Row6 '.....|.....|.....|..*..|.*.*.|..*..|.....|.....'
+       Row7 '.....|.....|.....|.....|..*..|.....|.....|.....'
+       Row8 '.....|.....|.....|.....|.....|.....|.....|.....'
+    }
+}
+Widget Heart {
+    class 'Icon'
+    speed 250
+    Bitmap {
+       Row1 '.....|.....|.....|.....|.....|.....'
+       Row2 '.*.*.|.....|.*.*.|.....|.....|.....'
+       Row3 '*****|.*.*.|*****|.*.*.|.*.*.|.*.*.'
+       Row4 '*****|.***.|*****|.***.|.***.|.***.'
+       Row5 '.***.|.***.|.***.|.***.|.***.|.***.'
+       Row6 '.***.|..*..|.***.|..*..|..*..|..*..'
+       Row7 '..*..|.....|..*..|.....|.....|.....'
+       Row8 '.....|.....|.....|.....|.....|.....'
+    }
+}
+Widget Blob {
+    class 'Icon'
+    speed 250
+    Bitmap {
+       Row1 '.....|.....|.....'
+       Row2 '.....|.....|.***.'
+       Row3 '.....|.***.|*...*'
+       Row4 '..*..|.*.*.|*...*'
+       Row5 '.....|.***.|*...*'
+       Row6 '.....|.....|.***.'
+       Row7 '.....|.....|.....'
+       Row8 '.....|.....|.....'
+    }
+}
+Widget Wave {
+    class 'Icon'
+    speed 100
+    Bitmap {
+       Row1 '..**.|.**..|**...|*....|.....|.....|.....|.....|....*|...**'
+       Row2 '.*..*|*..*.|..*..|.*...|*....|.....|.....|....*|...*.|..*..'
+       Row3 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...'
+       Row4 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...'
+       Row5 '*....|....*|...*.|..*..|.*...|*....|....*|...*.|..*..|.*...'
+       Row6 '.....|.....|....*|...*.|..*..|.*..*|*..*.|..*..|.*...|*....'
+       Row7 '.....|.....|.....|....*|...**|..**.|.**..|**...|*....|.....'
+       Row8 '.....|.....|.....|.....|.....|.....|.....|.....|.....|.....'
+    }
+}
+Widget Squirrel {
+    class 'Icon'
+    speed 100
+    Bitmap {
+       Row1 '.....|.....|.....|.....|.....|.....'
+       Row2 '.....|.....|.....|.....|.....|.....'
+       Row3 '.....|.....|.....|.....|.....|.....'
+       Row4 '**...|.**..|..**.|...**|....*|.....'
+       Row5 '*****|*****|*****|*****|*****|*****'
+       Row6 '...**|..**.|.**..|**...|*....|.....'
+       Row7 '.....|.....|.....|.....|.....|.....'
+       Row8 '.....|.....|.....|.....|.....|.....'
+    }
+}
+
 
 Layout Default {
     Row1 {
@@ -139,12 +224,16 @@ Layout Default {
 Layout L16x2 {
     Row1 {
        Col1  'Busy'
-       Col10 'Heartbeat'
        Col11 'BusyBar'
     }
     Row2 {
-       Col1 'Load'
-       Col11 'LoadBar'
+       Col1 'Heartbeat'
+       Col2 'EKG'
+       Col3 'Karo'
+       Col4 'Heart'
+       Col5 'Blob'
+       Col6 'Wave'
+       Col7 'Squirrel'
     }
 }
 
index e30fbfe36dd240b59953146cd482a3be09f6f672..4cae01af905562ce199a479e710fad4bb05274c0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: widget_icon.c,v 1.1 2004/01/23 04:54:03 reinelt Exp $
+/* $Id: widget_icon.c,v 1.2 2004/01/23 07:04:39 reinelt Exp $
  *
  * icon widget handling
  *
@@ -21,6 +21,9 @@
  *
  *
  * $Log: widget_icon.c,v $
+ * Revision 1.2  2004/01/23 07:04:39  reinelt
+ * icons finished!
+ *
  * Revision 1.1  2004/01/23 04:54:03  reinelt
  * icon widget added (not finished yet!)
  *
@@ -153,6 +156,11 @@ int widget_icon_init (WIDGET *Self)
   // The timer will be reactivated on every call to widget_icon_update(). 
   // We do the initial call here...
   Icon->prvmap=-1;
+
+  // reset ascii 
+  Icon->ascii=-1;
+  
+  // just do it!
   widget_icon_update(Self);
 
   return 0;
index 88bad6c4e73a38e095c6803cfddc7eca92b900d8..7bae55aaac566769587a1168b7f69ddadcb84b9a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: widget_icon.h,v 1.1 2004/01/23 04:54:04 reinelt Exp $
+/* $Id: widget_icon.h,v 1.2 2004/01/23 07:04:39 reinelt Exp $
  *
  * icon widget handling
  *
@@ -23,6 +23,9 @@
  *
  *
  * $Log: widget_icon.h,v $
+ * Revision 1.2  2004/01/23 07:04:39  reinelt
+ * icons finished!
+ *
  * Revision 1.1  2004/01/23 04:54:04  reinelt
  * icon widget added (not finished yet!)
  *
@@ -35,6 +38,7 @@
 typedef struct WIDGET_ICON {
   char *speed_expr; // expression for update interval
   int   speed;      // update interval (msec)
+  int   ascii;      // ascii code of icon (depends on the driver)
   int   curmap;     // current bitmap sequence
   int   prvmap;     // previous bitmap sequence 
   int   maxmap;     // number of bitmap sequences