#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@
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)
.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)
-/* $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
*
*
*
* $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
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);
plugin_init_cfg();
plugin_init_math();
plugin_init_string();
+ plugin_init_test();
plugin_init_time();
#ifdef PLUGIN_APM
plugin_exit_cfg();
plugin_exit_math();
plugin_exit_string();
+ plugin_exit_test();
plugin_exit_time();
DeleteFunctions();
--- /dev/null
+/* $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
+}