From d028f79336840a076542ccd17bdbca2e2f25357e Mon Sep 17 00:00:00 2001 From: ltoetsch <> Date: Fri, 16 Mar 2001 16:40:17 +0000 Subject: [lcd4linux @ 2001-03-16 16:40:17 by ltoetsch] implemented time bar --- pixmap.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) (limited to 'pixmap.c') diff --git a/pixmap.c b/pixmap.c index c266a65..b63fcd7 100644 --- a/pixmap.c +++ b/pixmap.c @@ -1,4 +1,4 @@ -/* $Id: pixmap.c,v 1.5 2000/03/26 18:46:28 reinelt Exp $ +/* $Id: pixmap.c,v 1.6 2001/03/16 16:40:17 ltoetsch Exp $ * * generic pixmap driver * @@ -20,6 +20,9 @@ * * * $Log: pixmap.c,v $ + * Revision 1.6 2001/03/16 16:40:17 ltoetsch + * implemented time bar + * * Revision 1.5 2000/03/26 18:46:28 reinelt * * bug in pixmap.c that leaded to empty bars fixed @@ -67,10 +70,12 @@ #include #include +#include #include "display.h" #include "pixmap.h" #include "fontmap.h" +#include "debug.h" static int ROWS=0; static int COLS=0; @@ -136,6 +141,10 @@ int pix_put (int row, int col, char *text) int pix_bar (int type, int row, int col, int max, int len1, int len2) { int x, y, len, rev; + static int *valbuf = NULL; + static int init = 0; + static time_t old; + time_t now; row*=YRES; col*=XRES; @@ -150,9 +159,24 @@ int pix_bar (int type, int row, int col, int max, int len1, int len2) if (len1<1) len1=1; else if (len1>max) len1=max; - - if (len2<1) len2=1; - else if (len2>max) len2=max; + + if (type == BAR_T) { + if (init == 0 && valbuf == 0) { + valbuf = calloc(len2, sizeof(int)); + if (valbuf == NULL) { + error("Couldn't allocte valbuf"); + init = -1; + return -1; + } + init = 1; + debug("valbuf ok, len2=%d", len2); + time(&old); + } + } + else { + if (len2<1) len2=1; + else if (len2>max) len2=max; + } rev=0; @@ -185,6 +209,28 @@ int pix_bar (int type, int row, int col, int max, int len1, int len2) } break; + case BAR_T: + len1=max-len1; + rev=1; + time(&now); + if (now == old) { + valbuf[len2-1] += len1; + valbuf[len2-1] /= 2; + } + else { + for (; old < now; old++) + for (x=1; x