aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widget_gpo.c48
-rw-r--r--widget_gpo.h11
2 files changed, 26 insertions, 33 deletions
diff --git a/widget_gpo.c b/widget_gpo.c
index 08e15f6..74b8f61 100644
--- a/widget_gpo.c
+++ b/widget_gpo.c
@@ -4,7 +4,7 @@
* GPO widget handling
*
* Copyright (C) 2005 Michael Reinelt <reinelt@eunet.at>
- * Copyright (C) 2005 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+ * Copyright (C) 2005, 2006, 2007 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -40,7 +40,7 @@
#include "debug.h"
#include "cfg.h"
-#include "evaluator.h"
+#include "property.h"
#include "timer.h"
#include "widget.h"
#include "widget_gpo.h"
@@ -54,24 +54,23 @@ void widget_gpo_update(void *Self)
{
WIDGET *W = (WIDGET *) Self;
WIDGET_GPO *GPO = W->data;
- RESULT result = { 0, 0, 0, NULL };
- int val;
+ /* evaluate properties */
+ property_eval(&GPO->expression);
+ property_eval(&GPO->update);
- /* evaluate expression */
- val = 0;
- if (GPO->tree != NULL) {
- Eval(GPO->tree, &result);
- val = R2N(&result);
- DelResult(&result);
- }
GPO->num = W->row;
- GPO->val = val;
+ GPO->val = P2N(&GPO->expression);
/* finally, draw it! */
if (W->class->draw)
W->class->draw(W);
+ /* add a new one-shot timer */
+ if (P2N(&GPO->update) > 0) {
+ timer_add(widget_gpo_update, Self, P2N(&GPO->update), 1);
+ }
+
}
@@ -89,25 +88,15 @@ int widget_gpo_init(WIDGET * Self)
GPO = malloc(sizeof(WIDGET_GPO));
memset(GPO, 0, sizeof(WIDGET_GPO));
- /* get raw expression (we evaluate them ourselves) */
- GPO->expression = cfg_get_raw(section, "expression", NULL);
-
- /* sanity check */
- if (GPO->expression == NULL || *GPO->expression == '\0') {
- error("widget %s has no expression, using '0.0'", Self->name);
- GPO->expression = "0";
- }
-
- /* compile expression */
- Compile(GPO->expression, &GPO->tree);
-
- /* update interval (msec), default 1 sec */
- cfg_number(section, "update", 1000, 10, -1, &(GPO->update));
+ /* load properties */
+ property_load(section, "expression", "0", &GPO->expression);
+ property_load(section, "update", "1000", &GPO->update);
free(section);
Self->data = GPO;
- timer_add(widget_gpo_update, Self, GPO->update, 0);
+ /* fire it the first time */
+ widget_gpo_update(Self);
return 0;
}
@@ -118,10 +107,11 @@ int widget_gpo_quit(WIDGET * Self)
if (Self) {
if (Self->data) {
WIDGET_GPO *GPO = Self->data;
- DelTree(GPO->tree);
+ property_free(&GPO->expression);
+ property_free(&GPO->update);
free(Self->data);
+ Self->data = NULL;
}
- Self->data = NULL;
}
return 0;
}
diff --git a/widget_gpo.h b/widget_gpo.h
index 4e4b128..d263c47 100644
--- a/widget_gpo.h
+++ b/widget_gpo.h
@@ -4,7 +4,7 @@
* GPO widget handling
*
* Copyright (C) 2005 Michael Reinelt <reinelt@eunet.at>
- * Copyright (C) 2005 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
+ * Copyright (C) 2005, 2006, 2007 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
*
* This file is part of LCD4Linux.
*
@@ -28,10 +28,13 @@
#ifndef _WIDGET_GPO_H_
#define _WIDGET_GPO_H_
+
+#include "property.h"
+
+
typedef struct WIDGET_GPO {
- char *expression; /* expression that delivers the value */
- void *tree; /* pre-compiled expression that delivers the value */
- int update; /* update interval (msec) */
+ PROPERTY expression; /* main GPO expression */
+ PROPERTY update; /* update interval (msec) */
int num; /* GPO number */
int val; /* GPO value */
} WIDGET_GPO;
s='tag-annotated-deco' href='/debian/dtv-scan-tables.git/tag/?h=upstream/0%2bgit20151202.3864e0a'>upstream/0+git20151202.3864e0aJonathan McCrohan840-4057/+18230 2015-05-05d/control: various fixes found by libconfig-model-dpkg-perlJonathan McCrohan2-5/+13 2015-04-01Release 0+git20150208.f2053b3-1Jonathan McCrohan1-2/+2 2015-04-01Describe changes made in snapshotJonathan McCrohan1-0/+3 2015-04-01New Upstream Snapshot (commit f2053b3)Jonathan McCrohan1-0/+6 2015-04-01Imported Upstream version 0+git20150208.f2053b3upstream/0+git20150208.f2053b3Jonathan McCrohan32-333/+483 2014-12-28Release 0+git20141218.b46a22c-1debian/0+git20141218.b46a22c-1Jonathan McCrohan1-2/+2 2014-12-28Updated AU DVB-T files; Thanks Brian Burch! (Closes LP: #1393280)Jonathan McCrohan1-0/+1 2014-12-28New Upstream Snapshot (commit b46a22c)Jonathan McCrohan1-0/+6 2014-12-28Imported Upstream version 0+git20141218.b46a22cupstream/0+git20141218.b46a22cJonathan McCrohan535-639/+317 2014-10-20Release 0+git20141009.d26b627-1debian/0+git20141009.d26b627-1Jonathan McCrohan1-2/+2 2014-10-20Fix up packaging to account for move to DVBv5Jonathan McCrohan2-2/+6 2014-10-20delete d/dtv-scan-files.install; Upstream now supplies a MakefileJonathan McCrohan2-4/+1 2014-10-15d/control: update Standards Version to 3.9.6Jonathan McCrohan2-1/+3 2014-10-15d/control: add Build-Depends on dvb-toolsJonathan McCrohan2-1/+2 2014-10-15New Upstream Snapshot (commit d26b627)Jonathan McCrohan1-0/+10 2014-10-15Imported Upstream version 0+git20141009.d26b627upstream/0+git20141009.d26b627Jonathan McCrohan2010-11120/+159271 2014-07-23Release 0+git20140611.14bd6c7-1debian/0+git20140611.14bd6c7-1Jonathan McCrohan1-2/+2 2014-07-23New Upstream Snapshot (commit 14bd6c7)Jonathan McCrohan1-2/+3 2014-07-23Imported Upstream version 0+git20140611.14bd6c7upstream/0+git20140611.14bd6c7Jonathan McCrohan7-11/+60 2014-05-13New Upstream Snapshot (commit 1246b27)Jonathan McCrohan1-0/+6 2014-05-13Imported Upstream version 0+git20140512.1246b27upstream/0+git20140512.1246b27Jonathan McCrohan391-301/+3983 2014-04-05Release 0+git20140326.cfc2975-1debian/0+git20140326.cfc2975-1Jonathan McCrohan1-2/+2 2014-04-05d/control: update Homepage (upstream has moved from Gitweb to cgit)Jonathan McCrohan2-1/+2 2014-04-05New Upstream Snapshot (commit cfc2975)Jonathan McCrohan1-0/+6 2014-04-05Imported Upstream version 0+git20140326.cfc2975upstream/0+git20140326.cfc2975Jonathan McCrohan118-656/+877 2014-01-16Release 0+git20140107.1850cf8-1debian/0+git20140107.1850cf8-1Jonathan McCrohan1-2/+2 2014-01-16Update Standards Version to 3.9.5Jonathan McCrohan2-1/+9 No changes required