summaryrefslogtreecommitdiff
path: root/libtemplate
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-10-10 15:32:38 +0200
committerlouis <louis.braun@gmx.de>2014-10-10 15:32:38 +0200
commit7fbcc9d3306260fda407111f46b46097f3fa7eca (patch)
tree649d9760e8d35f5330894971263d0df07bc27561 /libtemplate
parentebe8ac563b1a393ce4b2e90d3d4ec64fd14a6f2b (diff)
downloadvdr-plugin-skindesigner-7fbcc9d3306260fda407111f46b46097f3fa7eca.tar.gz
vdr-plugin-skindesigner-7fbcc9d3306260fda407111f46b46097f3fa7eca.tar.bz2
support for global variables type 'double'
Diffstat (limited to 'libtemplate')
-rw-r--r--libtemplate/globals.h1
-rw-r--r--libtemplate/parameter.c11
-rw-r--r--libtemplate/xmlparser.c3
3 files changed, 15 insertions, 0 deletions
diff --git a/libtemplate/globals.h b/libtemplate/globals.h
index f7a959e..eda9ec9 100644
--- a/libtemplate/globals.h
+++ b/libtemplate/globals.h
@@ -27,6 +27,7 @@ public:
virtual ~cGlobals(void) {};
map <string, tColor> colors;
map <string, int> intVars;
+ map <string, double> doubleVars;
map <string, string> stringVars;
map <string, string> fonts;
map <string, map< string, string > > translations;
diff --git a/libtemplate/parameter.c b/libtemplate/parameter.c
index e7dd30a..c646f06 100644
--- a/libtemplate/parameter.c
+++ b/libtemplate/parameter.c
@@ -156,6 +156,17 @@ bool cNumericParameter::CheckExpression(int &val, string &parsedVal) {
parsedValue = parsedValue.replace(foundToken, token.size(), st.str());
}
}
+ for (map<string, double>::iterator globDouble = globals->doubleVars.begin(); globDouble != globals->doubleVars.end(); globDouble++) {
+ stringstream sToken;
+ sToken << "{" << globDouble->first << "}";
+ string token = sToken.str();
+ size_t foundToken = parsedValue.find(token);
+ if (foundToken != string::npos) {
+ stringstream st;
+ st << globDouble->second;
+ parsedValue = parsedValue.replace(foundToken, token.size(), st.str());
+ }
+ }
}
if (IsNumber(parsedValue)) {
diff --git a/libtemplate/xmlparser.c b/libtemplate/xmlparser.c
index 8c21ed9..0e2c132 100644
--- a/libtemplate/xmlparser.c
+++ b/libtemplate/xmlparser.c
@@ -291,6 +291,9 @@ void cXmlParser::InsertVariable(string name, string type, string value) {
if (!type.compare("int")) {
int val = atoi(value.c_str());
globals->intVars.insert(pair<string, int>(name, val));
+ } else if (!type.compare("double")) {
+ double val = atof(value.c_str());
+ globals->doubleVars.insert(pair<string, double>(name, val));
} else if (!type.compare("string")) {
globals->stringVars.insert(pair<string, string>(name, value));
}