]> git.webhop.me Git - lcd4linux.git/commitdiff
[lcd4linux @ 2004-06-08 21:46:38 by reinelt]
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Tue, 8 Jun 2004 21:46:38 +0000 (21:46 +0000)
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Tue, 8 Jun 2004 21:46:38 +0000 (21:46 +0000)
splash screen for X11 driver (and generic graphic driver)

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

Makefile.in
drv_X11.c
drv_generic_graphic.c
drv_generic_graphic.h
lcd4linux.conf.sample

index 1f6bfaf8f652a7e6580c7d91479071bf31f85071..8021108e14919caf077843e11d07b650e3900fed 100644 (file)
@@ -129,7 +129,8 @@ CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
 DIST_COMMON =  README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
 Makefile.am Makefile.in NEWS TODO aclocal.m4 config.guess config.h.in \
-config.sub configure configure.in install-sh missing mkinstalldirs
+config.sub configure configure.in install-sh ltmain.sh missing \
+mkinstalldirs
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
index 9deed933d6b0ce4a5d1723cc6c1d12633c5dc739..db349063938f1e398ffaaeabb69052ae95c55490 100644 (file)
--- a/drv_X11.c
+++ b/drv_X11.c
@@ -1,4 +1,4 @@
-/* $Id: drv_X11.c,v 1.4 2004/06/06 06:51:59 reinelt Exp $
+/* $Id: drv_X11.c,v 1.5 2004/06/08 21:46:38 reinelt Exp $
  *
  * new style X11 Driver for LCD4Linux 
  *
  *
  *
  * $Log: drv_X11.c,v $
+ * Revision 1.5  2004/06/08 21:46:38  reinelt
+ *
+ * splash screen for X11 driver (and generic graphic driver)
+ *
  * Revision 1.4  2004/06/06 06:51:59  reinelt
  *
  * do not display end splash screen if quiet=1
@@ -69,6 +73,7 @@
 
 #include "debug.h"
 #include "cfg.h"
+#include "qprintf.h"
 #include "timer.h"
 #include "plugin.h"
 #include "widget.h"
@@ -351,7 +356,7 @@ int drv_X11_init (char *section, int quiet)
   int ret;  
   
   // real worker functions
-  drv_generic_graphic_real_blit   = drv_X11_blit;
+  drv_generic_graphic_real_blit = drv_X11_blit;
   
   // start display
   if ((ret=drv_X11_start (section))!=0)
@@ -362,8 +367,18 @@ int drv_X11_init (char *section, int quiet)
     return ret;
   
   // initially expose window
+  drv_generic_graphic_clear();
   drv_X11_expose (0, 0, dimx+2*border, dimy+2*border);
   
+  if (!quiet) {
+    char buffer[40];
+    qprintf(buffer, sizeof(buffer), "%s %dx%d", Name, DCOLS, DROWS);
+    if (drv_generic_graphic_greet (buffer, NULL)) {
+      sleep (3);
+      drv_generic_graphic_clear();
+    }
+  }
+
   // register text widget
   wc=Widget_Text;
   wc.draw=drv_generic_graphic_draw;
index 2edc5580b3e853611bada67f9029cf237c6a11a1..de9bf0602862cbd3338ec0cc214e465952472b76 100644 (file)
  *
  *
  * $Log: drv_generic_graphic.c,v $
+ * Revision 1.8  2004/06/08 21:46:38  reinelt
+ *
+ * splash screen for X11 driver (and generic graphic driver)
+ *
  * Revision 1.7  2004/06/01 06:45:30  reinelt
  *
  * some Fixme's processed
@@ -136,7 +140,7 @@ static void drv_generic_graphic_resizeFB (int rows, int cols)
   if (cols<LCOLS) cols=LCOLS;
   
   // allocate new Layout FB
-  newFB=malloc(cols*rows*sizeof(char));
+  newFB = malloc(cols*rows*sizeof(char));
   memset (newFB, 0, rows*cols*sizeof(char));
   
   // transfer contents
@@ -155,38 +159,112 @@ static void drv_generic_graphic_resizeFB (int rows, int cols)
 }
 
 
-int drv_generic_graphic_draw (WIDGET *W)
+int drv_generic_graphic_clear (void)
 {
-  WIDGET_TEXT *Text=W->data;
-  unsigned char *txt;
-  int row, col, len;
-  int x, y;
+  memset(drv_generic_graphic_FB, 0, DCOLS*DROWS*sizeof(*drv_generic_graphic_FB));
+  drv_generic_graphic_real_blit (0, 0, DROWS * YRES, DCOLS * XRES);
+  return 0;
+}
+
+
+// ****************************************
+// *** generic text handling            ***
+// ****************************************
 
-  row=YRES*W->row;
-  col=XRES*W->col;
-  txt=Text->buffer;
-  len=strlen(txt);
+static void drv_generic_graphic_render (int row, int col, unsigned char *txt)
+{
+  int c, r, x, y;
+  int len = strlen(txt);
   
   // maybe grow layout framebuffer
-  drv_generic_graphic_resizeFB (row+YRES, col+XRES*len);
+  drv_generic_graphic_resizeFB (row + YRES, col + XRES * len);
   
+  r = row;
+  c = col;
+
   // render text into layout FB
-  while (*txt!='\0') {
-    int c=*txt;
-    for (y=0; y<YRES; y++) {
-      int mask=1<<XRES;
-      for (x=0; x<XRES; x++) {
-       mask>>=1;
-       drv_generic_graphic_FB[(row+y)*LCOLS+col+x] = Font_6x8[c][y]&mask ? 1:0;
+  while (*txt != '\0') {
+    for (y = 0; y < YRES; y++) {
+      int mask = 1 << XRES;
+      for (x = 0; x < XRES; x++) {
+       mask >>= 1;
+       drv_generic_graphic_FB[(r+y) * LCOLS + c + x] = Font_6x8[*txt][y]&mask ? 1:0;
       }
     }
-    col+=XRES;
+    c += XRES;
     txt++;
   }
   
   // flush area
-  drv_generic_graphic_real_blit (YRES*W->row, XRES*W->col, YRES, XRES*len);
+  drv_generic_graphic_real_blit (row, col, YRES, XRES*len);
+
+}
+
+
+// say hello to the user
+int drv_generic_graphic_greet (char *msg1, char *msg2)
+{
+  char *line1[] = { "* LCD4Linux " VERSION " *",
+                   "LCD4Linux " VERSION,
+                   "* LCD4Linux *",
+                   "LCD4Linux",
+                   "L4Linux",
+                   NULL };
+  
+  char *line2[] = { "http://lcd4linux.sourceforge.net",
+                   "lcd4linux.sourceforge.net",
+                   "http://lcd4linux.sf.net",
+                   "lcd4linux.sf.net",
+                   NULL };
   
+  int i;
+  int flag = 0;
+  
+  int cols = DCOLS/XRES;
+  int rows = DROWS/YRES;
+  
+  for (i = 0; line1[i]; i++) {
+    if (strlen(line1[i]) <= cols) {
+      drv_generic_graphic_render (YRES * 0 , XRES * (cols-strlen(line1[i]))/2, line1[i]);
+      flag = 1;
+      break;
+    }
+  }
+
+  if (rows >= 2) {
+    for (i = 0; line2[i]; i++) {
+      if (strlen(line2[i]) <= cols) {
+       drv_generic_graphic_render (YRES * 1, XRES * (cols-strlen(line2[i]))/2, line2[i]);
+       flag = 1;
+       break;
+      }
+    }
+  }
+  
+  if (msg1 && rows >= 3) {
+    int len = strlen(msg1);
+    if ( len <= cols) {
+      drv_generic_graphic_render (YRES * 2, XRES * (cols-len)/2, msg1);
+      flag = 1;
+    }
+  }
+  
+  if (msg2 && rows >= 4) {
+    int len = strlen(msg2);
+    if ( len <= cols) {
+      drv_generic_graphic_render (YRES * 3, XRES * (cols-len)/2, msg2);
+      flag = 1;
+    }
+  }
+
+  return flag;
+}
+
+
+int drv_generic_graphic_draw (WIDGET *W)
+{
+  WIDGET_TEXT *Text = W->data;
+  drv_generic_graphic_render (YRES * W->row, XRES * W->col, Text->buffer);
   return 0;
 }
 
index 3faef0101e5f8e742696b3d3c695d273eec9b5da..ef7ee5a6b13ae1d9b2b9efccc77b3ec9277676bb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: drv_generic_graphic.h,v 1.3 2004/06/01 06:45:30 reinelt Exp $
+/* $Id: drv_generic_graphic.h,v 1.4 2004/06/08 21:46:38 reinelt Exp $
  *
  * generic driver helper for graphic displays
  *
  *
  *
  * $Log: drv_generic_graphic.h,v $
+ * Revision 1.4  2004/06/08 21:46:38  reinelt
+ *
+ * splash screen for X11 driver (and generic graphic driver)
+ *
  * Revision 1.3  2004/06/01 06:45:30  reinelt
  *
  * some Fixme's processed
@@ -59,10 +63,12 @@ extern unsigned char *drv_generic_graphic_FB;
 void (*drv_generic_graphic_real_blit)(int row, int col, int height, int width);
 
 // generic functions and widget callbacks
-int  drv_generic_graphic_init            (char *section, char *driver);
-int  drv_generic_graphic_draw            (WIDGET *W);
-int  drv_generic_graphic_icon_draw       (WIDGET *W);
-int  drv_generic_graphic_bar_draw        (WIDGET *W);
-int  drv_generic_graphic_quit            (void);
+int drv_generic_graphic_init      (char *section, char *driver);
+int drv_generic_graphic_clear     (void);
+int drv_generic_graphic_greet     (char *msg1, char *msg2);
+int drv_generic_graphic_draw      (WIDGET *W);
+int drv_generic_graphic_icon_draw (WIDGET *W);
+int drv_generic_graphic_bar_draw  (WIDGET *W);
+int drv_generic_graphic_quit      (void);
 
 #endif
index 8af79d02570aa102bf832e61eb1a9a9ea5d3db35..903072a0cf6bf930ad503f6640455642b7a210f1 100644 (file)
@@ -593,7 +593,7 @@ Layout testMySQL {
 #Display 'LK204'
 #Display 'MI240'
 #Display 'CW12232'
-Display 'HD44780-20x4'
+#Display 'HD44780-20x4'
 #Display 'M50530-24x8'
 #Display 'CF631'
 #Display 'CF632'
@@ -601,7 +601,7 @@ Display 'HD44780-20x4'
 #Display 'Curses'
 #Display 'USBLCD'
 #Display 'T6963-240x64'
-#Display 'XWindow'
+Display 'XWindow'
 #Display 'Image'
 
 Layout  'Default'