summaryrefslogtreecommitdiff
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
parentebe8ac563b1a393ce4b2e90d3d4ec64fd14a6f2b (diff)
downloadvdr-plugin-skindesigner-7fbcc9d3306260fda407111f46b46097f3fa7eca.tar.gz
vdr-plugin-skindesigner-7fbcc9d3306260fda407111f46b46097f3fa7eca.tar.bz2
support for global variables type 'double'
-rw-r--r--HISTORY1
-rw-r--r--dtd/globals.dtd2
-rw-r--r--libtemplate/globals.h1
-rw-r--r--libtemplate/parameter.c11
-rw-r--r--libtemplate/xmlparser.c3
-rw-r--r--skins/metrixhd/themes/default/globals.xml1
6 files changed, 18 insertions, 1 deletions
diff --git a/HISTORY b/HISTORY
index 36ebb19..03fae6a 100644
--- a/HISTORY
+++ b/HISTORY
@@ -16,3 +16,4 @@ Version 0.0.2
- added {durationhours} and {durationminutes} tokens in several view elements
- added discusage icons to menu header view element so that it discusage can be displayed in every menu view
- added numeric day, month and year tokens in different view elements
+- support for global variables type "double"
diff --git a/dtd/globals.dtd b/dtd/globals.dtd
index 570fa15..e6246d6 100644
--- a/dtd/globals.dtd
+++ b/dtd/globals.dtd
@@ -13,7 +13,7 @@
<!ELEMENT var (#PCDATA)>
<!ATTLIST var
name NMTOKEN #REQUIRED
- type (int|string) #REQUIRED>
+ type (int|double|string) #REQUIRED>
<!ELEMENT token (trans)+>
<!ATTLIST token
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));
}
diff --git a/skins/metrixhd/themes/default/globals.xml b/skins/metrixhd/themes/default/globals.xml
index 6732249..11c3e1f 100644
--- a/skins/metrixhd/themes/default/globals.xml
+++ b/skins/metrixhd/themes/default/globals.xml
@@ -28,6 +28,7 @@
<var type="int" name="border">5</var>
<var type="int" name="fadeTime">0</var>
<var type="string" name="stringglobal">hützligrütz</var>
+ <var type="double" name="pi">3.14</var>
</variables>
<!--
translations used in the skin