diff options
author | louis <louis.braun@gmx.de> | 2015-01-19 10:50:22 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-01-19 10:50:22 +0100 |
commit | f72a1856cb51db1efa3c799c1e489a152026566b (patch) | |
tree | 7c833bede9ec33629cd1a7ecc3ab0925cc7fcf71 /libcore | |
parent | f2f7246c0b02f37a47ebf888c4d7aa1eadd77662 (diff) | |
download | vdr-plugin-skindesigner-f72a1856cb51db1efa3c799c1e489a152026566b.tar.gz vdr-plugin-skindesigner-f72a1856cb51db1efa3c799c1e489a152026566b.tar.bz2 |
added skinsetup to globals
Diffstat (limited to 'libcore')
-rw-r--r-- | libcore/skinsetup.c | 36 | ||||
-rw-r--r-- | libcore/skinsetup.h | 8 | ||||
-rw-r--r-- | libcore/skinsetupparameter.c | 11 |
3 files changed, 39 insertions, 16 deletions
diff --git a/libcore/skinsetup.c b/libcore/skinsetup.c index c01f2d7..a1484f3 100644 --- a/libcore/skinsetup.c +++ b/libcore/skinsetup.c @@ -5,15 +5,14 @@ cSkinSetup::cSkinSetup(string skin) { this->skin = skin; } -void cSkinSetup::ReadFromXML(void) { - esyslog("skindesigner: reading setup for skin %s", skin.c_str()); +bool cSkinSetup::ReadFromXML(void) { string xmlFile = "setup.xml"; cXmlParser parser; if (!parser.ReadSkinSetup(this, skin, xmlFile)) { - esyslog("skindesigner: no setup file for skin %s found", skin.c_str()); - return; + return false; } parser.ParseSkinSetup(skin); + return true; } void cSkinSetup::SetParameter(xmlChar *type, xmlChar *name, xmlChar* displayText, xmlChar *min, xmlChar *max, xmlChar *value) { @@ -44,12 +43,35 @@ void cSkinSetup::SetParameter(xmlChar *type, xmlChar *name, xmlChar* displayText } param.value = atoi((const char*)value); - parameters.push_back(param); + parameters.insert(pair<string, cSkinSetupParameter>(param.name, param)); } +void cSkinSetup::SetTranslation(string translationToken, map < string, string > transl) { + translations.insert(pair<string, map < string, string > >(translationToken, transl)); +} + +void cSkinSetup::AddToGlobals(cGlobals *globals) { + if (!globals) + return; + for (map<string, cSkinSetupParameter>::iterator p = parameters.begin(); p != parameters.end(); p++) { + string paramName = p->first; + cSkinSetupParameter param = p->second; + globals->intVars.erase(paramName); + globals->intVars.insert(pair<string,int>(paramName, param.value)); + } +} void cSkinSetup::Debug(void) { dsyslog("skindesigner: Skin \"%s\" Setup Parameters", skin.c_str()); - for (vector<cSkinSetupParameter>::iterator p = parameters.begin(); p != parameters.end(); p++) - p->Debug(); + for (map<string, cSkinSetupParameter>::iterator p = parameters.begin(); p != parameters.end(); p++) { + (p->second).Debug(); + } + dsyslog("skindesigner: Skin \"%s\" Setup Parameter Translations", skin.c_str()); + for (map<string, map<string,string> >::iterator trans = translations.begin(); trans != translations.end(); trans++) { + dsyslog("skindesigner: translation token %s", (trans->first).c_str()); + map<string,string> transValues = trans->second; + for (map<string,string>::iterator trans2 = transValues.begin(); trans2 != transValues.end(); trans2++) { + dsyslog("skindesigner: translation language %s value \"%s\"", (trans2->first).c_str(), (trans2->second).c_str()); + } + } } diff --git a/libcore/skinsetup.h b/libcore/skinsetup.h index 4f8a93c..e5fcdc8 100644 --- a/libcore/skinsetup.h +++ b/libcore/skinsetup.h @@ -8,6 +8,7 @@ #include <sstream> #include <vdr/plugin.h> #include <libxml/xmlstring.h> +#include "../libtemplate/globals.h" #include "skinsetupparameter.h" using namespace std; @@ -17,12 +18,15 @@ using namespace std; class cSkinSetup { private: string skin; - vector<cSkinSetupParameter> parameters; + map <string, cSkinSetupParameter> parameters; + map <string, map< string, string > > translations; public: cSkinSetup(string skin); virtual ~cSkinSetup(void) {}; - void ReadFromXML(void); + bool ReadFromXML(void); void SetParameter(xmlChar *type, xmlChar *name, xmlChar* displayText, xmlChar *min, xmlChar *max, xmlChar *value); + void SetTranslation(string translationToken, map < string, string > transl); + void AddToGlobals(cGlobals *globals); void Debug(void); }; diff --git a/libcore/skinsetupparameter.c b/libcore/skinsetupparameter.c index 6f142f6..e6c3672 100644 --- a/libcore/skinsetupparameter.c +++ b/libcore/skinsetupparameter.c @@ -10,15 +10,12 @@ cSkinSetupParameter::cSkinSetupParameter(void) { } void cSkinSetupParameter::Debug(void) { + string sType = "unknown"; if (type == sptBool) - dsyslog("skindesigner: type bool"); + sType = "bool"; else if (type == sptInt) - dsyslog("skindesigner: type integer"); - else - dsyslog("skindesigner: type UNKNOWN"); - dsyslog("skindesigner: name %s", name.c_str()); - dsyslog("skindesigner: displayText %s", displayText.c_str()); + sType = "int"; + dsyslog("skindesigner: name \"%s\", type %s, displayText \"%s\", Value %d", name.c_str(), sType.c_str(), displayText.c_str(), value); if (type == sptInt) dsyslog("skindesigner: min %d, max %d", min, max); - dsyslog("skindesigner: Value %d", value); }
\ No newline at end of file |