diff options
author | louis <louis.braun@gmx.de> | 2014-10-10 15:32:38 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2014-10-10 15:32:38 +0200 |
commit | 7fbcc9d3306260fda407111f46b46097f3fa7eca (patch) | |
tree | 649d9760e8d35f5330894971263d0df07bc27561 /libtemplate | |
parent | ebe8ac563b1a393ce4b2e90d3d4ec64fd14a6f2b (diff) | |
download | vdr-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.h | 1 | ||||
-rw-r--r-- | libtemplate/parameter.c | 11 | ||||
-rw-r--r-- | libtemplate/xmlparser.c | 3 |
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)); } |