/* $Id$ * $URL$ * * dynamic properties * * Copyright (C) 2006 Michael Reinelt * Copyright (C) 2006 The LCD4Linux Team * * 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. * */ /* * exported functions: * * void property_load (const char *section, const char *name, const char *defval, PROPERTY *prop) * initializes and loads a property from the config file and pre-compiles it * * void property_free (PROPERTY *prop) * frees all property allocations * * int property_eval(PROPERTY * prop) * evaluates a property; returns 1 if value has changed * * double P2N(PROPERTY * prop) * returns a (already evaluated) property as number * * char *P2S(PROPERTY * prop) * returns a (already evaluated) property as string * */ #include "config.h" #include #include #include #include "debug.h" #include "cfg.h" #include "evaluator.h" #include "property.h" #ifdef WITH_DMALLOC #include #endif void property_load(const char *section, const char *name, const char *defval, PROPERTY * prop) { char *expression; /* initialize structure */ prop->valid = 0; prop->name = NULL; prop->expression = NULL; prop->compiled = NULL; DelResult(&prop->result); /* remember the name */ prop->name = strdup(name); /* load expression from config, but do not evaluate it */ expression = cfg_get_raw(section, name, NULL); if (expression == NULL) { if (defval != NULL && *defval != '\0') debug("Notice: using default value <%s> for property '%s.%s'", defval, section, name); prop->expression = (char *) defval; } else { prop->valid = 1; prop->expression = expression; } /* pre-compile the expression */ Compile(prop->expression, &prop->compiled); } int property_valid(PROPERTY * prop) { return prop->valid; } int property_eval(PROPERTY * prop) { RESULT old; int update; /* this is a bit ugly: we need to remember the old value */ old.type = prop->result.type; old.size = prop->result.size; old.number = prop->result.number; old.string = prop->result.string != NULL ? strdup(prop->result.string) : NULL; DelResult(&prop->result); Eval(prop->compiled, &prop->result); /* check if property value has changed */ update = 1;
# 2012-07-23 Antti Palosaari <crope@iki.fi>
# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE