mirror of
https://projects.vdr-developer.org/git/vdr-plugin-skindesigner.git
synced 2023-10-19 17:58:31 +02:00
introduced globals.xml in skinpath, theme.xml in theme path
This commit is contained in:
parent
5733a49940
commit
a74cb93163
3
HISTORY
3
HISTORY
@ -175,3 +175,6 @@ Version 0.1.6
|
||||
|
||||
- fixed bug that onpause view potentially starts during setting cutting
|
||||
marks
|
||||
- made all globals variables private
|
||||
- introduced globals.xml in skinpath, theme.xml in theme path. theme.xml
|
||||
adds its vakues and potentially overrides valués from globals.xml
|
20
designer.c
20
designer.c
@ -146,17 +146,9 @@ bool cSkinDesigner::SetCustomToken(string option) {
|
||||
return true;
|
||||
|
||||
if (isNumber(val)) {
|
||||
map<string, int>::iterator hit = globals->customIntTokens.find(key);
|
||||
if (hit != globals->customIntTokens.end()) {
|
||||
globals->customIntTokens.erase(key);
|
||||
}
|
||||
globals->customIntTokens.insert(pair<string,int>(key, atoi(val.c_str())));
|
||||
globals->AddCustomInt(key, atoi(val.c_str()));
|
||||
} else {
|
||||
map<string, string>::iterator hit = globals->customStringTokens.find(key);
|
||||
if (hit != globals->customStringTokens.end()) {
|
||||
globals->customStringTokens.erase(key);
|
||||
}
|
||||
globals->customStringTokens.insert(pair<string,string>(key, val));
|
||||
globals->AddCustomString(key, val);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -164,13 +156,7 @@ bool cSkinDesigner::SetCustomToken(string option) {
|
||||
void cSkinDesigner::ListCustomTokens(void) {
|
||||
if (!globals)
|
||||
return;
|
||||
|
||||
for (map<string, string>::iterator it = globals->customStringTokens.begin(); it != globals->customStringTokens.end(); it++) {
|
||||
dsyslog("skindesigner: custom string token \"%s\" = \"%s\"", (it->first).c_str(), (it->second).c_str());
|
||||
}
|
||||
for (map<string, int>::iterator it = globals->customIntTokens.begin(); it != globals->customIntTokens.end(); it++) {
|
||||
dsyslog("skindesigner: custom int token \"%s\" = \"%d\"", (it->first).c_str(), it->second);
|
||||
}
|
||||
globals->ListCustomTokens();
|
||||
}
|
||||
|
||||
/*********************************************************************************
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?xml encoding="UTF-8"?>
|
||||
|
||||
<!ELEMENT globals (colors,variables,translations,fonts)>
|
||||
<!ELEMENT globals (colors | variables | translations | fonts)*>
|
||||
<!ELEMENT colors (color)*>
|
||||
<!ELEMENT variables (var)*>
|
||||
<!ELEMENT translations (token)*>
|
||||
|
@ -90,6 +90,12 @@ bool isNumber(const string& s) {
|
||||
return !s.empty() && it == s.end();
|
||||
}
|
||||
|
||||
bool IsToken(const string& token) {
|
||||
if ((token.find("{") == 0) && (token.find("}") == (token.size()-1)))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool FileExists(const string &fullpath) {
|
||||
struct stat buffer;
|
||||
return (stat (fullpath.c_str(), &buffer) == 0);
|
||||
|
@ -12,6 +12,7 @@ int Minimum(int a, int b, int c, int d, int e, int f);
|
||||
std::string CutText(string &text, int width, string fontName, int fontSize);
|
||||
std::string StrToLowerCase(string str);
|
||||
bool isNumber(const string& s);
|
||||
bool IsToken(const string& token);
|
||||
bool FileExists(const string &fullpath);
|
||||
bool FileExists(const string &path, const string &name, const string &ext);
|
||||
bool FolderExists(const string &path);
|
||||
|
@ -102,8 +102,7 @@ void cSkinSetup::AddToGlobals(cGlobals *globals) {
|
||||
return;
|
||||
for (map < string, cSkinSetupParameter* >::iterator p = parameters.begin(); p != parameters.end(); p++) {
|
||||
cSkinSetupParameter *param = p->second;
|
||||
globals->intVars.erase(param->name);
|
||||
globals->intVars.insert(pair<string,int>(param->name, param->value));
|
||||
globals->AddInt(param->name, param->value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "globals.h"
|
||||
#include "xmlparser.h"
|
||||
#include "../config.h"
|
||||
#include <locale.h>
|
||||
|
||||
cGlobals::cGlobals(void) {
|
||||
@ -11,15 +12,134 @@ cGlobals::cGlobals(void) {
|
||||
}
|
||||
|
||||
bool cGlobals::ReadFromXML(void) {
|
||||
//globals.xml is mandatory
|
||||
string xmlFile = "globals.xml";
|
||||
cXmlParser parser;
|
||||
if (!parser.ReadGlobals(this, xmlFile))
|
||||
if (!parser.ReadGlobals(this, xmlFile, true))
|
||||
return false;
|
||||
if (!parser.ParseGlobals())
|
||||
return false;
|
||||
//theme.xml is optional
|
||||
xmlFile = "theme.xml";
|
||||
if (parser.ReadGlobals(this, xmlFile, false)) {
|
||||
parser.ParseGlobals();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void cGlobals::AddColor(string &name, tColor &col) {
|
||||
colors.erase(name);
|
||||
colors.insert(pair<string, tColor>(name, col));
|
||||
}
|
||||
|
||||
bool cGlobals::GetColor(string &name, tColor &col) {
|
||||
int size = name.size();
|
||||
if (size < 2)
|
||||
return false;
|
||||
string nameCutted = name.substr(1, size-2);
|
||||
map <string, tColor>::iterator hit = colors.find(nameCutted);
|
||||
if (hit != colors.end()) {
|
||||
col = hit->second;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cGlobals::AddFont(string &name, string &font) {
|
||||
fonts.erase(name);
|
||||
fonts.insert(pair<string, string>(name, font));
|
||||
}
|
||||
|
||||
bool cGlobals::GetFont(string name, string &font) {
|
||||
int size = name.size();
|
||||
if (size < 2)
|
||||
return false;
|
||||
string nameCutted = name.substr(1, size-2);
|
||||
map<string,string>::iterator hit = fonts.find(nameCutted);
|
||||
if (hit != fonts.end()) {
|
||||
font = hit->second;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cGlobals::AddInt(string &name, int value) {
|
||||
intVars.erase(name);
|
||||
intVars.insert(pair<string, int>(name, value));
|
||||
}
|
||||
|
||||
void cGlobals::ReplaceIntVars(string &value) {
|
||||
for (map<string, int>::iterator it = intVars.begin(); it != intVars.end(); it++) {
|
||||
stringstream sToken;
|
||||
sToken << "{" << it->first << "}";
|
||||
string token = sToken.str();
|
||||
size_t foundToken = value.find(token);
|
||||
if (foundToken != string::npos) {
|
||||
stringstream st;
|
||||
st << it->second;
|
||||
value = value.replace(foundToken, token.size(), st.str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool cGlobals::GetInt(string name, int &val) {
|
||||
map < string, int >::iterator hit = intVars.find(name);
|
||||
if (hit != intVars.end()) {
|
||||
val = hit->second;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cGlobals::AddDouble(string &name, string &value) {
|
||||
doubleVars.erase(name);
|
||||
if (config.replaceDecPoint) {
|
||||
if (value.find_first_of('.') != string::npos) {
|
||||
std::replace( value.begin(), value.end(), '.', config.decPoint);
|
||||
}
|
||||
}
|
||||
double val = atof(value.c_str());
|
||||
doubleVars.insert(pair<string, double>(name, val));
|
||||
}
|
||||
|
||||
void cGlobals::ReplaceDoubleVars(string &value) {
|
||||
for (map<string, double>::iterator it = doubleVars.begin(); it != doubleVars.end(); it++) {
|
||||
stringstream sToken;
|
||||
sToken << "{" << it->first << "}";
|
||||
string token = sToken.str();
|
||||
size_t foundToken = value.find(token);
|
||||
if (foundToken != string::npos) {
|
||||
stringstream st;
|
||||
st << it->second;
|
||||
string doubleVal = st.str();
|
||||
value = value.replace(foundToken, token.size(), doubleVal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cGlobals::AddString(string &name, string &value) {
|
||||
stringVars.erase(name);
|
||||
stringVars.insert(pair<string, string>(name, value));
|
||||
}
|
||||
|
||||
void cGlobals::ReplaceStringVars(string &value) {
|
||||
for (map<string,string>::iterator it = stringVars.begin(); it != stringVars.end(); it++) {
|
||||
stringstream sToken;
|
||||
sToken << "{" << it->first << "}";
|
||||
string token = sToken.str();
|
||||
size_t foundToken = value.find(token);
|
||||
if (foundToken != string::npos) {
|
||||
value = value.replace(foundToken, token.size(), it->second);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool cGlobals::AddTranslation(string name, map < string, string > transl) {
|
||||
translations.erase(name);
|
||||
translations.insert(pair<string, map < string, string > >(name, transl));
|
||||
}
|
||||
|
||||
bool cGlobals::Translate(string text, string &translation) {
|
||||
string transStart = "{tr(";
|
||||
string transEnd = ")}";
|
||||
@ -63,6 +183,34 @@ string cGlobals::DoTranslate(string token) {
|
||||
return translation;
|
||||
}
|
||||
|
||||
void cGlobals::AddCustomInt(string &name, int value) {
|
||||
customIntTokens.erase(name);
|
||||
customIntTokens.insert(pair<string,int>(name, value));
|
||||
}
|
||||
|
||||
void cGlobals::AddCustomString(string &name, string &value) {
|
||||
customStringTokens.erase(name);
|
||||
customStringTokens.insert(pair<string,string>(name, value));
|
||||
}
|
||||
|
||||
bool cGlobals::GetCustomInt(string name, int &val) {
|
||||
map < string, int >::iterator hit = customIntTokens.find(name);
|
||||
if (hit != customIntTokens.end()) {
|
||||
val = hit->second;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cGlobals::ListCustomTokens(void) {
|
||||
for (map<string, string>::iterator it = customStringTokens.begin(); it != customStringTokens.end(); it++) {
|
||||
dsyslog("skindesigner: custom string token \"%s\" = \"%s\"", (it->first).c_str(), (it->second).c_str());
|
||||
}
|
||||
for (map<string, int>::iterator it = customIntTokens.begin(); it != customIntTokens.end(); it++) {
|
||||
dsyslog("skindesigner: custom int token \"%s\" = \"%d\"", (it->first).c_str(), it->second);
|
||||
}
|
||||
}
|
||||
|
||||
void cGlobals::Debug(void) {
|
||||
dsyslog("skindesigner: GLOBAL VARIABLES");
|
||||
for (map <string, tColor>::iterator col = colors.begin(); col != colors.end(); col++) {
|
||||
@ -80,7 +228,7 @@ void cGlobals::Debug(void) {
|
||||
for (map <string, string>::iterator font = fonts.begin(); font != fonts.end(); font++) {
|
||||
dsyslog("skindesigner: Font \"%s\": \"%s\"", (font->first).c_str(), (font->second).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 > tokenTrans = trans->second;
|
||||
@ -88,5 +236,4 @@ void cGlobals::Debug(void) {
|
||||
dsyslog("skindesigner: language %s, translation %s", (transTok->first).c_str(), (transTok->second).c_str());
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
@ -22,19 +22,37 @@ class cGlobals {
|
||||
private:
|
||||
string language;
|
||||
string DoTranslate(string token);
|
||||
public:
|
||||
cGlobals(void);
|
||||
virtual ~cGlobals(void) {};
|
||||
map <string, tColor> colors;
|
||||
map <string, string> fonts;
|
||||
map <string, int> intVars;
|
||||
map <string, double> doubleVars;
|
||||
map <string, string> stringVars;
|
||||
map <string, string> fonts;
|
||||
map <string, map< string, string > > translations;
|
||||
map <string, string> customStringTokens;
|
||||
map <string, int> customIntTokens;
|
||||
public:
|
||||
cGlobals(void);
|
||||
virtual ~cGlobals(void) {};
|
||||
bool ReadFromXML(void);
|
||||
void AddColor(string &name, tColor &col);
|
||||
bool GetColor(string &name, tColor &col);
|
||||
void AddFont(string &name, string &font);
|
||||
bool GetFont(string name, string &font);
|
||||
void AddInt(string &name, int value);
|
||||
void ReplaceIntVars(string &value);
|
||||
bool GetInt(string name, int &val);
|
||||
void AddDouble(string &name, string &value);
|
||||
void ReplaceDoubleVars(string &value);
|
||||
void AddString(string &name, string &value);
|
||||
void ReplaceStringVars(string &value);
|
||||
bool AddTranslation(string name, map < string, string > transl);
|
||||
bool Translate(string text, string &translation);
|
||||
void AddCustomInt(string &name, int value);
|
||||
void AddCustomString(string &name, string &value);
|
||||
bool GetCustomInt(string name, int &val);
|
||||
map <string, string> GetCustomStringTokens(void) { return customStringTokens; };
|
||||
map <string, int> GetCustomIntTokens(void) { return customIntTokens; };
|
||||
void ListCustomTokens(void);
|
||||
void Debug(void);
|
||||
};
|
||||
|
||||
|
@ -146,34 +146,8 @@ bool cNumericParameter::CheckExpression(int &val, string &parsedVal) {
|
||||
}
|
||||
|
||||
if (globals) {
|
||||
for (map<string, int>::iterator globInt = globals->intVars.begin(); globInt != globals->intVars.end(); globInt++) {
|
||||
stringstream sToken;
|
||||
sToken << "{" << globInt->first << "}";
|
||||
string token = sToken.str();
|
||||
size_t foundToken = parsedValue.find(token);
|
||||
if (foundToken != string::npos) {
|
||||
stringstream st;
|
||||
st << globInt->second;
|
||||
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;
|
||||
string doubleVal = st.str();
|
||||
if (config.replaceDecPoint) {
|
||||
if (doubleVal.find_first_of('.') != string::npos) {
|
||||
std::replace( doubleVal.begin(), doubleVal.end(), '.', config.decPoint);
|
||||
}
|
||||
}
|
||||
parsedValue = parsedValue.replace(foundToken, token.size(), doubleVal);
|
||||
}
|
||||
}
|
||||
globals->ReplaceIntVars(parsedValue);
|
||||
globals->ReplaceDoubleVars(parsedValue);
|
||||
}
|
||||
|
||||
if (IsNumber(parsedValue)) {
|
||||
@ -339,15 +313,12 @@ bool cConditionalParameter::Evaluate(map < string, int > *intTokens, map < strin
|
||||
|
||||
int cConditionalParameter::EvaluateParameter(string token, map < string, int > *intTokens, map < string, string > *stringTokens) {
|
||||
//first check globals
|
||||
map < string, int >::iterator hitGlobals = globals->intVars.find(token);
|
||||
if (hitGlobals != globals->intVars.end()) {
|
||||
return hitGlobals->second;
|
||||
}
|
||||
int result = 0;
|
||||
if (globals->GetInt(token, result))
|
||||
return result;
|
||||
//then check custom tokens
|
||||
map < string, int >::iterator hitCustomTokens = globals->customIntTokens.find(token);
|
||||
if (hitCustomTokens != globals->customIntTokens.end()) {
|
||||
return hitCustomTokens->second;
|
||||
}
|
||||
if (globals->GetCustomInt(token, result))
|
||||
return result;
|
||||
//then check tokens
|
||||
if (intTokens) {
|
||||
map < string, int >::iterator hit = intTokens->find(token);
|
||||
|
@ -777,16 +777,11 @@ bool cTemplateFunction::SetAlign(eParamType type, string value) {
|
||||
|
||||
bool cTemplateFunction::SetFont(eParamType type, string value) {
|
||||
//check if token
|
||||
if ((value.find("{") == 0) && (value.find("}") == (value.size()-1))) {
|
||||
value = value.substr(1, value.size()-2);
|
||||
map<string,string>::iterator hit = globals->fonts.find(value);
|
||||
if (hit != globals->fonts.end()) {
|
||||
fontName = hit->second;
|
||||
} else {
|
||||
map<string,string>::iterator def = globals->fonts.find("vdrOsd");
|
||||
if (def == globals->fonts.end())
|
||||
if (IsToken(value)) {
|
||||
if (!globals->GetFont(value, fontName)) {
|
||||
if (!globals->GetFont("{vdrOsd}", fontName)) {
|
||||
return false;
|
||||
fontName = def->second;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//if no token, directly use input
|
||||
@ -820,15 +815,10 @@ bool cTemplateFunction::SetImageType(eParamType type, string value) {
|
||||
|
||||
bool cTemplateFunction::SetColor(eParamType type, string value) {
|
||||
if (globals) {
|
||||
for (map<string, tColor>::iterator col = globals->colors.begin(); col != globals->colors.end(); col++) {
|
||||
stringstream sColName;
|
||||
sColName << "{" << col->first << "}";
|
||||
string colName = sColName.str();
|
||||
if (!colName.compare(value)) {
|
||||
tColor colVal = col->second;
|
||||
colorParameters.insert(pair<eParamType, tColor>(type, colVal));
|
||||
return true;
|
||||
}
|
||||
tColor colVal = 0x00000000;
|
||||
if (globals->GetColor(value, colVal)) {
|
||||
colorParameters.insert(pair<eParamType, tColor>(type, colVal));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (value.size() != 8)
|
||||
@ -844,15 +834,7 @@ bool cTemplateFunction::SetColor(eParamType type, string value) {
|
||||
bool cTemplateFunction::SetTextTokens(string value) {
|
||||
textTokens.clear();
|
||||
//first replace globals
|
||||
for (map<string,string>::iterator globStr = globals->stringVars.begin(); globStr != globals->stringVars.end(); globStr++) {
|
||||
stringstream sToken;
|
||||
sToken << "{" << globStr->first << "}";
|
||||
string token = sToken.str();
|
||||
size_t foundToken = value.find(token);
|
||||
if (foundToken != string::npos) {
|
||||
value = value.replace(foundToken, token.size(), globStr->second);
|
||||
}
|
||||
}
|
||||
globals->ReplaceStringVars(value);
|
||||
//now tokenize
|
||||
bool tokenFound = true;
|
||||
while (tokenFound) {
|
||||
|
@ -105,8 +105,8 @@ public:
|
||||
int GetNumPixmapsViewElement(eViewElement ve);
|
||||
int GetNumListViewMenuItems(void);
|
||||
bool GetScalingWindow(cRect &scalingWindow);
|
||||
map<string,string> GetCustomStringTokens(void) { return globals->customStringTokens; };
|
||||
map<string,int> GetCustomIntTokens(void) { return globals->customIntTokens; };
|
||||
map<string,string> GetCustomStringTokens(void) { return globals->GetCustomStringTokens(); };
|
||||
map<string,int> GetCustomIntTokens(void) { return globals->GetCustomIntTokens(); };
|
||||
//Checks for parsing template XML files
|
||||
bool ValidSubView(const char *subView);
|
||||
bool ValidViewElement(const char *viewElement);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "templateviewlist.h"
|
||||
#include "../config.h"
|
||||
#include "../libcore/helpers.h"
|
||||
|
||||
cTemplateViewList::cTemplateViewList(void) : cTemplateViewElement() {
|
||||
listElement = NULL;
|
||||
@ -87,16 +88,11 @@ int cTemplateViewList::GetAverageFontWidth(void) {
|
||||
string paramFontSize = fontFunc->GetParameter(ptFontSize);
|
||||
|
||||
string fontName = "";
|
||||
if ((fontNameToken.find("{") == 0) && (fontNameToken.find("}") == (fontNameToken.size()-1))) {
|
||||
fontNameToken = fontNameToken.substr(1, fontNameToken.size()-2);
|
||||
map<string,string>::iterator hit = globals->fonts.find(fontNameToken);
|
||||
if (hit != globals->fonts.end()) {
|
||||
fontName = hit->second;
|
||||
} else {
|
||||
map<string,string>::iterator def = globals->fonts.find("vdrOsd");
|
||||
if (def == globals->fonts.end())
|
||||
if (IsToken(fontNameToken)) {
|
||||
if (!globals->GetFont(fontNameToken, fontName)) {
|
||||
if (!globals->GetFont("{vdrOsd}", fontName)) {
|
||||
return defaultAverageFontWidth;
|
||||
fontName = def->second;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//if no token, directly use input
|
||||
@ -135,16 +131,11 @@ cFont *cTemplateViewList::GetTextAreaFont(void) {
|
||||
string paramFontSize = fontFunc->GetParameter(ptFontSize);
|
||||
|
||||
string fontName = "";
|
||||
if ((fontNameToken.find("{") == 0) && (fontNameToken.find("}") == (fontNameToken.size()-1))) {
|
||||
fontNameToken = fontNameToken.substr(1, fontNameToken.size()-2);
|
||||
map<string,string>::iterator hit = globals->fonts.find(fontNameToken);
|
||||
if (hit != globals->fonts.end()) {
|
||||
fontName = hit->second;
|
||||
} else {
|
||||
map<string,string>::iterator def = globals->fonts.find("vdrOsd");
|
||||
if (def == globals->fonts.end())
|
||||
if (IsToken(fontNameToken)) {
|
||||
if (!globals->GetFont(fontNameToken, fontName)) {
|
||||
if (!globals->GetFont("{vdrOsd}", fontName)) {
|
||||
return NULL;
|
||||
fontName = def->second;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//if no token, directly use input
|
||||
|
@ -89,7 +89,7 @@ bool cXmlParser::ReadPluginView(string plugName, int templateNumber, string temp
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cXmlParser::ReadGlobals(cGlobals *globals, string xmlFile) {
|
||||
bool cXmlParser::ReadGlobals(cGlobals *globals, string xmlFile, bool mandatory) {
|
||||
this->globals = globals;
|
||||
|
||||
string xmlPath = GetPath(xmlFile);
|
||||
@ -101,20 +101,30 @@ bool cXmlParser::ReadGlobals(cGlobals *globals, string xmlFile) {
|
||||
|
||||
doc = xmlCtxtReadFile(ctxt, xmlPath.c_str(), NULL, XML_PARSE_NOENT | XML_PARSE_DTDVALID);
|
||||
|
||||
if (doc == NULL ) {
|
||||
esyslog("skindesigner: ERROR: Globals %s not parsed successfully.", xmlPath.c_str());
|
||||
if (doc == NULL) {
|
||||
if (mandatory) {
|
||||
esyslog("skindesigner: ERROR: Globals %s not parsed successfully.", xmlPath.c_str());
|
||||
} else {
|
||||
dsyslog("skindesigner: Globals %s not parsed successfully.", xmlPath.c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
root = xmlDocGetRootElement(doc);
|
||||
|
||||
if (ctxt->valid == 0) {
|
||||
esyslog("skindesigner: Failed to validate %s", xmlPath.c_str());
|
||||
if (mandatory) {
|
||||
esyslog("skindesigner: ERROR: Failed to validate %s", xmlPath.c_str());
|
||||
} else {
|
||||
dsyslog("skindesigner: Failed to validate %s", xmlPath.c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (root == NULL) {
|
||||
esyslog("skindesigner: ERROR: Globals %s is empty", xmlPath.c_str());
|
||||
if (mandatory) {
|
||||
esyslog("skindesigner: ERROR: Globals %s is empty", xmlPath.c_str());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -234,7 +244,6 @@ bool cXmlParser::ParsePluginView(string plugName, int templateNumber) {
|
||||
|
||||
bool cXmlParser::ParseGlobals(void) {
|
||||
xmlNodePtr node = root->xmlChildrenNode;
|
||||
|
||||
while (node != NULL) {
|
||||
if (node->type != XML_ELEMENT_NODE) {
|
||||
node = node->next;
|
||||
@ -304,6 +313,8 @@ string cXmlParser::GetPath(string xmlFile) {
|
||||
string activeTheme = Setup.OSDTheme;
|
||||
string path = "";
|
||||
if (!xmlFile.compare("globals.xml")) {
|
||||
path = *cString::sprintf("%s%s/%s", *config.skinPath, activeSkin.c_str(), xmlFile.c_str());
|
||||
} else if (!xmlFile.compare("theme.xml")) {
|
||||
path = *cString::sprintf("%s%s/themes/%s/%s", *config.skinPath, activeSkin.c_str(), activeTheme.c_str(), xmlFile.c_str());
|
||||
} else if (!xmlFile.compare("setup.xml")) {
|
||||
path = *cString::sprintf("%s%s/%s", *config.skinPath, activeSkin.c_str(), xmlFile.c_str());
|
||||
@ -424,7 +435,7 @@ void cXmlParser::InsertColor(string name, string value) {
|
||||
str << value;
|
||||
tColor colVal;
|
||||
str >> std::hex >> colVal;
|
||||
globals->colors.insert(pair<string, tColor>(name, colVal));
|
||||
globals->AddColor(name, colVal);
|
||||
}
|
||||
|
||||
void cXmlParser::ParseGlobalVariables(xmlNodePtr node) {
|
||||
@ -476,17 +487,11 @@ void cXmlParser::ParseGlobalVariables(xmlNodePtr node) {
|
||||
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));
|
||||
globals->AddInt(name, val);
|
||||
} else if (!type.compare("double")) {
|
||||
if (config.replaceDecPoint) {
|
||||
if (value.find_first_of('.') != string::npos) {
|
||||
std::replace( value.begin(), value.end(), '.', config.decPoint);
|
||||
}
|
||||
}
|
||||
double val = atof(value.c_str());
|
||||
globals->doubleVars.insert(pair<string, double>(name, val));
|
||||
globals->AddDouble(name, value);
|
||||
} else if (!type.compare("string")) {
|
||||
globals->stringVars.insert(pair<string, string>(name, value));
|
||||
globals->AddString(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -523,8 +528,11 @@ void cXmlParser::ParseGlobalFonts(xmlNodePtr node) {
|
||||
}
|
||||
if (ok) {
|
||||
fontValue = xmlNodeListGetString(doc, node->xmlChildrenNode, 1);
|
||||
if (fontName && fontValue)
|
||||
globals->fonts.insert(pair<string, string>((const char*)fontName, (const char*)fontValue));
|
||||
if (fontName && fontValue) {
|
||||
string fN = (const char*)fontName;
|
||||
string fV = (const char*)fontValue;
|
||||
globals->AddFont(fN, fV);
|
||||
}
|
||||
}
|
||||
if (fontName)
|
||||
xmlFree(fontName);
|
||||
@ -607,7 +615,7 @@ void cXmlParser::ParseTranslations(xmlNodePtr node) {
|
||||
nodeTrans = nodeTrans->next;
|
||||
}
|
||||
if (globals) {
|
||||
globals->translations.insert(pair<string, map < string, string > >((const char*)tokenName, tokenTranslations));
|
||||
globals->AddTranslation((const char*)tokenName, tokenTranslations);
|
||||
} else if (skinSetup) {
|
||||
skinSetup->SetTranslation((const char*)tokenName, tokenTranslations);
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ public:
|
||||
virtual ~cXmlParser(void);
|
||||
bool ReadView(cTemplateView *view, string xmlFile);
|
||||
bool ReadPluginView(string plugName, int templateNumber, string templateName);
|
||||
bool ReadGlobals(cGlobals *globals, string xmlFile);
|
||||
bool ReadGlobals(cGlobals *globals, string xmlFile, bool mandatory);
|
||||
bool ReadSkinSetup(cSkinSetup *skinSetup, string skin, string xmlFile);
|
||||
bool ParseView(void);
|
||||
bool ParsePluginView(string plugName, int templateNumber);
|
||||
|
@ -1,20 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
<!DOCTYPE globals SYSTEM "../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrGray">FF999999</color>
|
||||
<color name="clrRedTrans">55FF0000</color>
|
||||
<color name="clrBlackTrans">99000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
@ -274,10 +265,5 @@
|
||||
if an invalid font is used in a template, vdrOsd is used as default.
|
||||
-->
|
||||
<fonts>
|
||||
<font name="light">Source Sans Pro:Light</font>
|
||||
<font name="bold">Source Sans Pro:Bold</font>
|
||||
<font name="semibold">Source Sans Pro:Semibold</font>
|
||||
<font name="regular">Source Sans Pro:Regular</font>
|
||||
<font name="digital">DS-Digital:Normal</font>
|
||||
</fonts>
|
||||
</globals>
|
46
skins/blackhole/themes/default/theme.xml
Normal file
46
skins/blackhole/themes/default/theme.xml
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrGray">FF999999</color>
|
||||
<color name="clrRedTrans">55FF0000</color>
|
||||
<color name="clrBlackTrans">99000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
variabls of type int can also be used as conditions, just
|
||||
set such a variable to 1 for true and 0 for false
|
||||
-->
|
||||
<variables>
|
||||
</variables>
|
||||
<!--
|
||||
The three Fonts FontOSD, FontFix and FontSml configured in VDR
|
||||
can be used in all template "font" attributes with this tokens:
|
||||
{vdrOsd}
|
||||
{vdrFix}
|
||||
{vdrSml}
|
||||
If you like to use further fonts, just define them below.
|
||||
Syntax:
|
||||
<font name="tokenname">fontname</font>
|
||||
These fonts can then also be used in all templates in the "font"
|
||||
attribute.
|
||||
if an invalid font is used in a template, vdrOsd is used as default.
|
||||
-->
|
||||
<fonts>
|
||||
<font name="light">Source Sans Pro:Light</font>
|
||||
<font name="bold">Source Sans Pro:Bold</font>
|
||||
<font name="semibold">Source Sans Pro:Semibold</font>
|
||||
<font name="regular">Source Sans Pro:Regular</font>
|
||||
<font name="digital">DS-Digital:Normal</font>
|
||||
</fonts>
|
||||
</globals>
|
@ -1,23 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
<!DOCTYPE globals SYSTEM "../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrTransBlack">C0000000</color>
|
||||
<color name="clrSemiTransBlack">D0000000</color>
|
||||
<color name="clrBlueLight">FF1E8BD7</color>
|
||||
<color name="clrTransBlueLight">C01E8BD7</color>
|
||||
<color name="clrTransWhite">C0FFFFFF</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrDarkGray">FF14141E</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
@ -25,8 +13,6 @@
|
||||
set such a variable to 1 for true and 0 for false
|
||||
-->
|
||||
<variables>
|
||||
<var type="string" name="stringglobal">hützligrütz</var>
|
||||
<var type="double" name="pi">3.14</var>
|
||||
</variables>
|
||||
<!--
|
||||
translations used in the skin
|
||||
@ -287,7 +273,5 @@
|
||||
if an invalid font is used in a template, vdrOsd is used as default.
|
||||
-->
|
||||
<fonts>
|
||||
<font name="light">VDROpen Sans Light:Light</font>
|
||||
<font name="semibold">VDROpen Sans Semibold:Semibold</font>
|
||||
</fonts>
|
||||
</globals>
|
53
skins/metrixhd/themes/default/theme.xml
Normal file
53
skins/metrixhd/themes/default/theme.xml
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrTransBlack">C0000000</color>
|
||||
<color name="clrSemiTransBlack">D0000000</color>
|
||||
<color name="clrBlueLight">FF1E8BD7</color>
|
||||
<color name="clrTransBlueLight">C01E8BD7</color>
|
||||
<color name="clrTransWhite">C0FFFFFF</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrDarkGray">FF14141E</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
variabls of type int can also be used as conditions, just
|
||||
set such a variable to 1 for true and 0 for false
|
||||
-->
|
||||
<variables>
|
||||
<var type="string" name="stringglobal">hützligrütz</var>
|
||||
<var type="double" name="pi">3.14</var>
|
||||
</variables>
|
||||
<!--
|
||||
translations used in the skin
|
||||
-->
|
||||
<translations>
|
||||
</translations>
|
||||
<!--
|
||||
The three Fonts FontOSD, FontFix and FontSml configured in VDR
|
||||
can be used in all template "font" attributes with this tokens:
|
||||
{vdrOsd}
|
||||
{vdrFix}
|
||||
{vdrSml}
|
||||
If you like to use further fonts, just define them below.
|
||||
Syntax:
|
||||
<font name="tokenname">fontname</font>
|
||||
These fonts can then also be used in all templates in the "font"
|
||||
attribute.
|
||||
if an invalid font is used in a template, vdrOsd is used as default.
|
||||
-->
|
||||
<fonts>
|
||||
<font name="light">VDROpen Sans Light:Light</font>
|
||||
<font name="semibold">VDROpen Sans Semibold:Semibold</font>
|
||||
</fonts>
|
||||
</globals>
|
@ -1,29 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
<!DOCTYPE globals SYSTEM "../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrTransWhite">99FFFFFF</color>
|
||||
<color name="clrBlack">FF000000</color>
|
||||
<color name="clrProgressbar">FF3D0000</color>
|
||||
<color name="clrBorder">FF2B0000</color>
|
||||
<color name="clrGray">FF858585</color>
|
||||
<color name="clrBackground">B0000000</color>
|
||||
<color name="clrTransBlack">99000000</color>
|
||||
<color name="clrTransBlackDark">DF000000</color>
|
||||
<color name="clrTransRed">99FF0000</color>
|
||||
<color name="clrFontMenuItem">FFFFFFFF</color>
|
||||
<color name="clrFontMenuItemSelected">FFFFFFFF</color>
|
||||
<color name="clrFontInactive">FF858585</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
@ -31,7 +13,6 @@
|
||||
set such a variable to 1 for true and 0 for false
|
||||
-->
|
||||
<variables>
|
||||
<var type="int" name="fadeTime">300</var>
|
||||
</variables>
|
||||
<!--
|
||||
translations used in the skin
|
28
skins/nopacity/themes/darkred/theme.xml
Normal file
28
skins/nopacity/themes/darkred/theme.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrTransWhite">99FFFFFF</color>
|
||||
<color name="clrBlack">FF000000</color>
|
||||
<color name="clrProgressbar">FF3D0000</color>
|
||||
<color name="clrBorder">FF2B0000</color>
|
||||
<color name="clrGray">FF858585</color>
|
||||
<color name="clrBackground">B0000000</color>
|
||||
<color name="clrTransBlack">99000000</color>
|
||||
<color name="clrTransBlackDark">DF000000</color>
|
||||
<color name="clrTransRed">99FF0000</color>
|
||||
<color name="clrFontMenuItem">FFFFFFFF</color>
|
||||
<color name="clrFontMenuItemSelected">FFFFFFFF</color>
|
||||
<color name="clrFontInactive">FF858585</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<variables>
|
||||
<var type="int" name="fadeTime">300</var>
|
||||
</variables>
|
||||
</globals>
|
@ -1,288 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<!--
|
||||
define all your needed colors here
|
||||
-->
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrTransWhite">99FFFFFF</color>
|
||||
<color name="clrBlack">FF000000</color>
|
||||
<color name="clrProgressbar">FF8EAB21</color>
|
||||
<color name="clrBorder">FF4C5C11</color>
|
||||
<color name="clrGray">FF858585</color>
|
||||
<color name="clrBackground">B012273F</color>
|
||||
<color name="clrTransBlack">99000000</color>
|
||||
<color name="clrTransBlackDark">CC000000</color>
|
||||
<color name="clrTransRed">99FF0000</color>
|
||||
<color name="clrFontMenuItem">FFFFFFFF</color>
|
||||
<color name="clrFontMenuItemSelected">FF363636</color>
|
||||
<color name="clrFontInactive">FF858585</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<!--
|
||||
these variables can be used everywhere in the templates
|
||||
variabls of type int can also be used as conditions, just
|
||||
set such a variable to 1 for true and 0 for false
|
||||
-->
|
||||
<variables>
|
||||
<var type="int" name="fadeTime">300</var>
|
||||
</variables>
|
||||
<!--
|
||||
translations used in the skin
|
||||
-->
|
||||
<translations>
|
||||
<token name="tr(free)">
|
||||
<trans lang="en_EN">free</trans>
|
||||
<trans lang="de_DE">frei</trans>
|
||||
</token>
|
||||
<token name="tr(transponder)">
|
||||
<trans lang="en_EN">Transponder</trans>
|
||||
<trans lang="de_DE">Transponder</trans>
|
||||
</token>
|
||||
<token name="tr(now)">
|
||||
<trans lang="en_EN">Now</trans>
|
||||
<trans lang="de_DE">Jetzt</trans>
|
||||
</token>
|
||||
<token name="tr(next)">
|
||||
<trans lang="en_EN">Next</trans>
|
||||
<trans lang="de_DE">Nachfolgend</trans>
|
||||
</token>
|
||||
<token name="tr(nextschedules)">
|
||||
<trans lang="en_EN">Next Schedules</trans>
|
||||
<trans lang="de_DE">Nachfolgende Sendungen</trans>
|
||||
</token>
|
||||
<token name="tr(reruns)">
|
||||
<trans lang="en_EN">Reruns</trans>
|
||||
<trans lang="de_DE">Wiederholungen</trans>
|
||||
</token>
|
||||
<token name="tr(rerunsof)">
|
||||
<trans lang="en_EN">Reruns of</trans>
|
||||
<trans lang="de_DE">Wiederholungen von</trans>
|
||||
</token>
|
||||
<token name="tr(actors)">
|
||||
<trans lang="en_EN">Actors</trans>
|
||||
<trans lang="de_DE">Schauspieler</trans>
|
||||
</token>
|
||||
<token name="tr(episode)">
|
||||
<trans lang="en_EN">Episode</trans>
|
||||
<trans lang="de_DE">Folge</trans>
|
||||
</token>
|
||||
<token name="tr(season)">
|
||||
<trans lang="en_EN">Season</trans>
|
||||
<trans lang="de_DE">Staffel</trans>
|
||||
</token>
|
||||
<token name="tr(gueststars)">
|
||||
<trans lang="en_EN">Guest Stars</trans>
|
||||
<trans lang="de_DE">Gaststars</trans>
|
||||
</token>
|
||||
<token name="tr(seriesfirstaired)">
|
||||
<trans lang="en_EN">Series First Aired</trans>
|
||||
<trans lang="de_DE">Erstausstrahlung der Serie</trans>
|
||||
</token>
|
||||
<token name="tr(episodefirstaired)">
|
||||
<trans lang="en_EN">Episode First Aired</trans>
|
||||
<trans lang="de_DE">Erstausstrahlung der Episode</trans>
|
||||
</token>
|
||||
<token name="tr(network)">
|
||||
<trans lang="en_EN">Network</trans>
|
||||
<trans lang="de_DE">TV Station</trans>
|
||||
</token>
|
||||
<token name="tr(genre)">
|
||||
<trans lang="en_EN">Genre</trans>
|
||||
<trans lang="de_DE">Genre</trans>
|
||||
</token>
|
||||
<token name="tr(status)">
|
||||
<trans lang="en_EN">Status</trans>
|
||||
<trans lang="de_DE">Status</trans>
|
||||
</token>
|
||||
<token name="tr(rating)">
|
||||
<trans lang="en_EN">Rating</trans>
|
||||
<trans lang="de_DE">Bewertung</trans>
|
||||
</token>
|
||||
<token name="tr(episoderating)">
|
||||
<trans lang="en_EN">Episode Rating</trans>
|
||||
<trans lang="de_DE">Bewertung der Folge</trans>
|
||||
</token>
|
||||
<token name="tr(recinfo)">
|
||||
<trans lang="en_EN">Recording Information</trans>
|
||||
<trans lang="de_DE">Aufnahme Informationen</trans>
|
||||
</token>
|
||||
<token name="tr(seriesgalery)">
|
||||
<trans lang="en_EN">Series Galery</trans>
|
||||
<trans lang="de_DE">Serien Galerie</trans>
|
||||
</token>
|
||||
<token name="tr(moviegalery)">
|
||||
<trans lang="en_EN">Movie Galery</trans>
|
||||
<trans lang="de_DE">Spielfilm Galerie</trans>
|
||||
</token>
|
||||
<token name="tr(originaltitle)">
|
||||
<trans lang="en_EN">Original Title</trans>
|
||||
<trans lang="de_DE">Originaltitel</trans>
|
||||
</token>
|
||||
<token name="tr(budget)">
|
||||
<trans lang="en_EN">Budget</trans>
|
||||
<trans lang="de_DE">Budget</trans>
|
||||
</token>
|
||||
<token name="tr(revenue)">
|
||||
<trans lang="en_EN">Revenue</trans>
|
||||
<trans lang="de_DE">Einnahmen</trans>
|
||||
</token>
|
||||
<token name="tr(adult)">
|
||||
<trans lang="en_EN">Adult</trans>
|
||||
<trans lang="de_DE">Nur für Erwachsene</trans>
|
||||
</token>
|
||||
<token name="tr(releasedate)">
|
||||
<trans lang="en_EN">Release Date</trans>
|
||||
<trans lang="de_DE">Erscheinungsdatum</trans>
|
||||
</token>
|
||||
<token name="tr(runtime)">
|
||||
<trans lang="en_EN">Runtime</trans>
|
||||
<trans lang="de_DE">Laufzeit</trans>
|
||||
</token>
|
||||
<token name="tr(popularity)">
|
||||
<trans lang="en_EN">Popularity</trans>
|
||||
<trans lang="de_DE">Popularität</trans>
|
||||
</token>
|
||||
<token name="tr(voteaverage)">
|
||||
<trans lang="en_EN">Vote Average</trans>
|
||||
<trans lang="de_DE">Durchschnittliche Wertung</trans>
|
||||
</token>
|
||||
<token name="tr(homepage)">
|
||||
<trans lang="en_EN">Homepage</trans>
|
||||
<trans lang="de_DE">Homepage</trans>
|
||||
</token>
|
||||
<token name="tr(recsize)">
|
||||
<trans lang="en_EN">Recording size</trans>
|
||||
<trans lang="de_DE">Größe der Aufnahme</trans>
|
||||
</token>
|
||||
<token name="tr(recsizecutted)">
|
||||
<trans lang="en_EN">Cutted Recording Size</trans>
|
||||
<trans lang="de_DE">Größe der geschnittenen Aufnahme</trans>
|
||||
</token>
|
||||
<token name="tr(reclength)">
|
||||
<trans lang="en_EN">Recording Length</trans>
|
||||
<trans lang="de_DE">Länge der Aufnahme</trans>
|
||||
</token>
|
||||
<token name="tr(reclengthcutted)">
|
||||
<trans lang="en_EN">Cutted Recording Length</trans>
|
||||
<trans lang="de_DE">Länge der geschnittenen Aufnahme</trans>
|
||||
</token>
|
||||
<token name="tr(bitrate)">
|
||||
<trans lang="en_EN">Bit Rate</trans>
|
||||
<trans lang="de_DE">Bitrate</trans>
|
||||
</token>
|
||||
<token name="tr(format)">
|
||||
<trans lang="en_EN">Format</trans>
|
||||
<trans lang="de_DE">Format</trans>
|
||||
</token>
|
||||
<token name="tr(searchtimer)">
|
||||
<trans lang="en_EN">Searchtimer</trans>
|
||||
<trans lang="de_DE">Suchtimer</trans>
|
||||
</token>
|
||||
<token name="tr(volume)">
|
||||
<trans lang="en_EN">Volume</trans>
|
||||
<trans lang="de_DE">Lautstärke</trans>
|
||||
</token>
|
||||
<token name="tr(pause)">
|
||||
<trans lang="en_EN">Pause</trans>
|
||||
<trans lang="de_DE">Pause</trans>
|
||||
</token>
|
||||
<token name="tr(apparenttemp)">
|
||||
<trans lang="en_EN">Felt Temperature</trans>
|
||||
<trans lang="de_DE">Gefühlte Temperatur</trans>
|
||||
</token>
|
||||
<token name="tr(todaymin)">
|
||||
<trans lang="en_EN">minimum today</trans>
|
||||
<trans lang="de_DE">heutiges Minimum</trans>
|
||||
</token>
|
||||
<token name="tr(todaymax)">
|
||||
<trans lang="en_EN">maximum today</trans>
|
||||
<trans lang="de_DE">heutiges Maximum</trans>
|
||||
</token>
|
||||
<token name="tr(precipitationprobability)">
|
||||
<trans lang="en_EN">Precipitation Prob.</trans>
|
||||
<trans lang="de_DE">Regenwahrsch.</trans>
|
||||
</token>
|
||||
<token name="tr(precipitationintensity)">
|
||||
<trans lang="en_EN">Precipitation Intensity</trans>
|
||||
<trans lang="de_DE">Regenmenge</trans>
|
||||
</token>
|
||||
<token name="tr(humidity)">
|
||||
<trans lang="en_EN">Humidity</trans>
|
||||
<trans lang="de_DE">Luftfeuchtigkeit</trans>
|
||||
</token>
|
||||
<token name="tr(apparenttemp)">
|
||||
<trans lang="en_EN">Felt Temperature</trans>
|
||||
<trans lang="de_DE">Gefühlte Temperatur</trans>
|
||||
</token>
|
||||
<token name="tr(windbearing)">
|
||||
<trans lang="en_EN">Wind Bearing</trans>
|
||||
<trans lang="de_DE">Windrichtung</trans>
|
||||
</token>
|
||||
<token name="tr(windspeed)">
|
||||
<trans lang="en_EN">Wind Speed</trans>
|
||||
<trans lang="de_DE">Windgeschwindigkeit</trans>
|
||||
</token>
|
||||
<token name="tr(cloudcover)">
|
||||
<trans lang="en_EN">Cloud Cover</trans>
|
||||
<trans lang="de_DE">Bewölkung</trans>
|
||||
</token>
|
||||
<token name="tr(pressure)">
|
||||
<trans lang="en_EN">Pressure</trans>
|
||||
<trans lang="de_DE">Luftdruck</trans>
|
||||
</token>
|
||||
<token name="tr(ozone)">
|
||||
<trans lang="en_EN">Ozone</trans>
|
||||
<trans lang="de_DE">Ozon</trans>
|
||||
</token>
|
||||
<token name="tr(visibility)">
|
||||
<trans lang="en_EN">visibility</trans>
|
||||
<trans lang="de_DE">Sicht</trans>
|
||||
</token>
|
||||
<token name="tr(conditions)">
|
||||
<trans lang="en_EN">Weather Conditions</trans>
|
||||
<trans lang="de_DE">Wetterlage</trans>
|
||||
</token>
|
||||
<token name="tr(from)">
|
||||
<trans lang="en_EN">from</trans>
|
||||
<trans lang="de_DE">aus</trans>
|
||||
</token>
|
||||
<token name="tr(felt)">
|
||||
<trans lang="en_EN">felt</trans>
|
||||
<trans lang="de_DE">gefühlt</trans>
|
||||
</token>
|
||||
<token name="tr(min)">
|
||||
<trans lang="en_EN">min</trans>
|
||||
<trans lang="de_DE">min</trans>
|
||||
</token>
|
||||
<token name="tr(max)">
|
||||
<trans lang="en_EN">max</trans>
|
||||
<trans lang="de_DE">max</trans>
|
||||
</token>
|
||||
<token name="tr(for)">
|
||||
<trans lang="en_EN">for</trans>
|
||||
<trans lang="de_DE">für</trans>
|
||||
</token>
|
||||
</translations>
|
||||
<!--
|
||||
The three Fonts FontOSD, FontFix and FontSml configured in VDR
|
||||
can be used in all template "font" attributes with this tokens:
|
||||
{vdrOsd}
|
||||
{vdrFix}
|
||||
{vdrSml}
|
||||
If you like to use further fonts, just define them below.
|
||||
Syntax:
|
||||
<font name="tokenname">fontname</font>
|
||||
These fonts can then also be used in all templates in the "font"
|
||||
attribute.
|
||||
if an invalid font is used in a template, vdrOsd is used as default.
|
||||
-->
|
||||
<fonts>
|
||||
</fonts>
|
||||
</globals>
|
28
skins/nopacity/themes/default/theme.xml
Normal file
28
skins/nopacity/themes/default/theme.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE globals SYSTEM "../../../../dtd/globals.dtd">
|
||||
|
||||
<globals>
|
||||
<colors>
|
||||
<color name="clrRed">FFFF0000</color>
|
||||
<color name="clrGreen">FF5FE200</color>
|
||||
<color name="clrYellow">FFE2DA00</color>
|
||||
<color name="clrBlue">FF007FE2</color>
|
||||
<color name="clrWhite">FFFFFFFF</color>
|
||||
<color name="clrTransWhite">99FFFFFF</color>
|
||||
<color name="clrBlack">FF000000</color>
|
||||
<color name="clrProgressbar">FF8EAB21</color>
|
||||
<color name="clrBorder">FF4C5C11</color>
|
||||
<color name="clrGray">FF858585</color>
|
||||
<color name="clrBackground">B012273F</color>
|
||||
<color name="clrTransBlack">99000000</color>
|
||||
<color name="clrTransBlackDark">CC000000</color>
|
||||
<color name="clrTransRed">99FF0000</color>
|
||||
<color name="clrFontMenuItem">FFFFFFFF</color>
|
||||
<color name="clrFontMenuItemSelected">FF363636</color>
|
||||
<color name="clrFontInactive">FF858585</color>
|
||||
<color name="clrTransparent">00000000</color>
|
||||
</colors>
|
||||
<variables>
|
||||
<var type="int" name="fadeTime">300</var>
|
||||
</variables>
|
||||
</globals>
|
@ -419,7 +419,6 @@ void cDisplayMenuMainView::DrawTemperatures(void) {
|
||||
if (!ViewElementImplemented(veTemperatures)) {
|
||||
return;
|
||||
}
|
||||
|
||||
cString execCommand = cString::sprintf("cd \"%s/\"; \"%s/temperatures\"", SCRIPTFOLDER, SCRIPTFOLDER);
|
||||
system(*execCommand);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user