aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2004-06-07 06:56:55 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2004-06-07 06:56:55 +0000
commit4c5d6736430c906cc1ed11c759793a23bfc8e962 (patch)
tree924395fa646c60cca315e66980c67b01cfde95b6
parent9839b85f87bd113c3ba39c64c3985e6fb492cb79 (diff)
downloadlcd4linux-4c5d6736430c906cc1ed11c759793a23bfc8e962.tar.gz
[lcd4linux @ 2004-06-07 06:56:55 by reinelt]
added test plugin from Andy Baxter git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@467 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
-rw-r--r--Makefile.am1
-rw-r--r--Makefile.in13
-rw-r--r--lcd4linux.conf.sample16
-rw-r--r--plugin.c10
-rw-r--r--plugin_test.c116
5 files changed, 149 insertions, 7 deletions
diff --git a/Makefile.am b/Makefile.am
index 508e7cc..f70de52 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,6 +39,7 @@ plugin.c plugin.h \
plugin_cfg.c \
plugin_math.c \
plugin_string.c \
+plugin_test.c \
plugin_time.c
#liblcd4linux_la_DEPENDENCIES = @DRIVERS@
diff --git a/Makefile.in b/Makefile.in
index 851526a..ee35f76 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -92,7 +92,7 @@ lcd4linux_LDADD = @DRIVERS@ @PLUGINS@ @DRVLIBS@ @PLUGINLIBS@
#remove next line for liblcd4linux
lcd4linux_DEPENDENCIES = @DRIVERS@ @PLUGINS@
-lcd4linux_SOURCES = lcd4linux.c cfg.c cfg.h debug.c debug.h drv.c drv.h evaluator.c evaluator.h hash.c hash.h layout.c layout.h pid.c pid.h timer.c timer.h thread.c thread.h udelay.c udelay.h qprintf.c qprintf.h widget.c widget.h widget_text.c widget_text.h widget_bar.c widget_bar.h widget_icon.c widget_icon.h plugin.c plugin.h plugin_cfg.c plugin_math.c plugin_string.c plugin_time.c
+lcd4linux_SOURCES = lcd4linux.c cfg.c cfg.h debug.c debug.h drv.c drv.h evaluator.c evaluator.h hash.c hash.h layout.c layout.h pid.c pid.h timer.c timer.h thread.c thread.h udelay.c udelay.h qprintf.c qprintf.h widget.c widget.h widget_text.c widget_text.h widget_bar.c widget_bar.h widget_icon.c widget_icon.h plugin.c plugin.h plugin_cfg.c plugin_math.c plugin_string.c plugin_test.c plugin_time.c
#liblcd4linux_la_DEPENDENCIES = @DRIVERS@
@@ -124,7 +124,7 @@ X_PRE_LIBS = @X_PRE_LIBS@
lcd4linux_OBJECTS = lcd4linux.o cfg.o debug.o drv.o evaluator.o hash.o \
layout.o pid.o timer.o thread.o udelay.o qprintf.o widget.o \
widget_text.o widget_bar.o widget_icon.o plugin.o plugin_cfg.o \
-plugin_math.o plugin_string.o plugin_time.o
+plugin_math.o plugin_string.o plugin_test.o plugin_time.o
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
@@ -154,10 +154,11 @@ DEP_FILES = .deps/cfg.P .deps/debug.P .deps/drv.P \
.deps/plugin_math.P .deps/plugin_meminfo.P .deps/plugin_mysql.P \
.deps/plugin_netdev.P .deps/plugin_pop3.P .deps/plugin_ppp.P \
.deps/plugin_proc_stat.P .deps/plugin_seti.P .deps/plugin_string.P \
-.deps/plugin_time.P .deps/plugin_uname.P .deps/plugin_uptime.P \
-.deps/plugin_wireless.P .deps/plugin_xmms.P .deps/qprintf.P \
-.deps/thread.P .deps/timer.P .deps/udelay.P .deps/widget.P \
-.deps/widget_bar.P .deps/widget_icon.P .deps/widget_text.P
+.deps/plugin_test.P .deps/plugin_time.P .deps/plugin_uname.P \
+.deps/plugin_uptime.P .deps/plugin_wireless.P .deps/plugin_xmms.P \
+.deps/qprintf.P .deps/thread.P .deps/timer.P .deps/udelay.P \
+.deps/widget.P .deps/widget_bar.P .deps/widget_icon.P \
+.deps/widget_text.P
SOURCES = $(lcd4linux_SOURCES) $(EXTRA_lcd4linux_SOURCES)
OBJECTS = $(lcd4linux_OBJECTS)
diff --git a/lcd4linux.conf.sample b/lcd4linux.conf.sample
index 1892354..9caba03 100644
--- a/lcd4linux.conf.sample
+++ b/lcd4linux.conf.sample
@@ -437,6 +437,21 @@ Widget Lightning {
}
}
+Widget Rain {
+ class 'icon'
+ speed 200
+ bitmap {
+ row1 '...*.|.....|.....|.*...|....*|..*..|.....|*....'
+ row2 '*....|...*.|.....|.....|.*...|....*|..*..|.....'
+ row3 '.....|*....|...*.|.....|.....|.*...|....*|..*..'
+ row4 '..*..|.....|*....|...*.|.....|.....|.*...|....*'
+ row5 '....*|..*..|.....|*....|...*.|.....|.....|.*...'
+ row6 '.*...|....*|..*..|.....|*....|...*.|.....|.....'
+ row7 '.....|.*...|....*|..*..|.....|*....|...*.|.....'
+ row8 '.....|.....|.*...|....*|..*..|.....|*....|...*.'
+ }
+}
+
Widget Test {
class 'Text'
expression '1234567890123456789012345678901234567890'
@@ -455,6 +470,7 @@ Layout Default {
}
Row3 {
Col1 'Busy'
+ Col10 'Rain'
Col11 'BusyBar'
}
Row4 {
diff --git a/plugin.c b/plugin.c
index 1302d58..70af044 100644
--- a/plugin.c
+++ b/plugin.c
@@ -1,4 +1,4 @@
-/* $Id: plugin.c,v 1.31 2004/05/29 00:27:23 reinelt Exp $
+/* $Id: plugin.c,v 1.32 2004/06/07 06:56:55 reinelt Exp $
*
* plugin handler for the Evaluator
*
@@ -22,6 +22,10 @@
*
*
* $Log: plugin.c,v $
+ * Revision 1.32 2004/06/07 06:56:55 reinelt
+ *
+ * added test plugin from Andy Baxter
+ *
* Revision 1.31 2004/05/29 00:27:23 reinelt
*
* added plugin_diskstats.c
@@ -182,6 +186,8 @@ int plugin_init_math (void);
void plugin_exit_math (void);
int plugin_init_string (void);
void plugin_exit_string (void);
+int plugin_init_test (void);
+void plugin_exit_test (void);
int plugin_init_time (void);
void plugin_exit_time (void);
@@ -232,6 +238,7 @@ int plugin_init (void)
plugin_init_cfg();
plugin_init_math();
plugin_init_string();
+ plugin_init_test();
plugin_init_time();
#ifdef PLUGIN_APM
@@ -364,6 +371,7 @@ void plugin_exit(void) {
plugin_exit_cfg();
plugin_exit_math();
plugin_exit_string();
+ plugin_exit_test();
plugin_exit_time();
DeleteFunctions();
diff --git a/plugin_test.c b/plugin_test.c
new file mode 100644
index 0000000..5fc35ea
--- /dev/null
+++ b/plugin_test.c
@@ -0,0 +1,116 @@
+/* $Id: plugin_test.c,v 1.1 2004/06/07 06:56:55 reinelt Exp $
+*
+* Handy functions for testing displays and debugging code.
+*
+* Copyright 2004 Andy Baxter.
+* Based on sample plugin by:
+*
+* Copyright 2003 Michael Reinelt <reinelt@eunet.at>
+* Copyright 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+*
+* This file is part of LCD4Linux.
+*
+* LCD4Linux 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.
+*
+* LCD4Linux 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: plugin_test.c,v $
+* Revision 1.1 2004/06/07 06:56:55 reinelt
+*
+* added test plugin from Andy Baxter
+*
+*/
+
+int plugin_init_test (void);
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <ctype.h>
+
+#include "debug.h"
+#include "plugin.h"
+
+#ifdef WITH_DMALLOC
+#include <dmalloc.h>
+#endif
+
+
+// used for testing bars - keeps values for a series of 10 bars,
+// which are incremented and decremented between 0 and rmax by
+// amount rdelta every time they are read. Starting value is rstart.
+// rbar gives the number of the test bar.
+static void my_test_bar (RESULT *result, RESULT *rbar, RESULT *rmax,
+ RESULT *rstart, RESULT *rdelta)
+{
+ static double values[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
+ static double deltas[10];
+ int bar;
+ double max,delta,value;
+
+ max=R2N(rmax);
+ delta=R2N(rdelta);
+
+ // the maths is just to stop double rounding errors and bad values.
+ bar=((int)floor(R2N(rbar)+0.1)) % 10;
+ if ( fabs(delta) > 0.1 ) {
+ // don't move or init the bar if delta=0 (the widget is only browsing)
+ if (values[bar] == -1) {
+ // first time called.
+ values[bar]=R2N(rstart);
+ deltas[bar]=delta;
+ };
+ values[bar]+=deltas[bar];
+ };
+ if (values[bar] < 0 || values[bar] > max ) {
+ // turn around.
+ deltas[bar]= -deltas[bar];
+ values[bar]+= deltas[bar];
+ };
+ value=values[bar];
+ SetResult(&result, R_NUMBER, &value);
+}
+
+
+// like above, but just switches a value between 1 and -1. Can use to test
+// visibility of icons.
+static void my_test_onoff (RESULT *result, RESULT *arg1)
+{
+ static int on[10] = {1,1,1,1,1,1,1,1,1,1};
+ int i;
+ double val;
+
+ i = ((int)floor(R2N(arg1)+0.1)) % 10;
+ on[i] = -on[i];
+ val = (double)on[i];
+
+ SetResult(&result, R_NUMBER, &val);
+}
+
+
+int plugin_init_test (void)
+{
+
+ AddFunction ("test::bar", 4, my_test_bar);
+ AddFunction ("test::onoff", 1, my_test_onoff);
+
+ return 0;
+}
+
+void plugin_exit_test(void)
+{
+ // empty
+}