summaryrefslogtreecommitdiff
path: root/libtemplate
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2014-11-29 11:23:54 +0100
committerlouis <louis.braun@gmx.de>2014-11-29 11:23:54 +0100
commit76ab3e4cef2ef37ea8e9f2ababfd4b8c98ceaf54 (patch)
tree7f13e052745e0fd2ac43e6ecd391247aa9889744 /libtemplate
parentd684cec70e72c4f9cea35fda69c1baa32360b5e3 (diff)
downloadvdr-plugin-skindesigner-76ab3e4cef2ef37ea8e9f2ababfd4b8c98ceaf54.tar.gz
vdr-plugin-skindesigner-76ab3e4cef2ef37ea8e9f2ababfd4b8c98ceaf54.tar.bz2
added onpause and onpausemodeonly in displayreplay
Diffstat (limited to 'libtemplate')
-rw-r--r--libtemplate/templateview.c59
-rw-r--r--libtemplate/templateview.h14
-rw-r--r--libtemplate/templateviewelement.c7
-rw-r--r--libtemplate/templateviewelement.h5
-rw-r--r--libtemplate/xmlparser.c59
-rw-r--r--libtemplate/xmlparser.h3
6 files changed, 80 insertions, 67 deletions
diff --git a/libtemplate/templateview.c b/libtemplate/templateview.c
index 95b3286..4783d13 100644
--- a/libtemplate/templateview.c
+++ b/libtemplate/templateview.c
@@ -469,9 +469,16 @@ void cTemplateView::Debug(void) {
void cTemplateView::SetFunctionDefinitions(void) {
- string name = "area";
+ string name = "viewelement";
set<string> attributes;
attributes.insert("debug");
+ attributes.insert("delay");
+ attributes.insert("fadetime");
+ funcsAllowed.insert(pair< string, set<string> >(name, attributes));
+
+ name = "area";
+ attributes.clear();
+ attributes.insert("debug");
attributes.insert("condition");
attributes.insert("x");
attributes.insert("y");
@@ -723,7 +730,7 @@ string cTemplateViewChannel::GetViewElementName(eViewElement ve) {
return name;
}
-void cTemplateViewChannel::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewChannel::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -770,10 +777,9 @@ void cTemplateViewChannel::AddPixmap(string sViewElement, cTemplatePixmap *pix,
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
@@ -1192,7 +1198,7 @@ void cTemplateViewMenu::AddPluginView(string plugName, int templNo, cTemplateVie
}
}
-void cTemplateViewMenu::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewMenu::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -1231,10 +1237,9 @@ void cTemplateViewMenu::AddPixmap(string sViewElement, cTemplatePixmap *pix, boo
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
@@ -1309,7 +1314,7 @@ string cTemplateViewMessage::GetViewElementName(eViewElement ve) {
return name;
}
-void cTemplateViewMessage::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewMessage::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -1328,10 +1333,9 @@ void cTemplateViewMessage::AddPixmap(string sViewElement, cTemplatePixmap *pix,
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
@@ -1357,6 +1361,14 @@ cTemplateViewReplay::cTemplateViewReplay(void) {
attributes.insert("scaletvheight");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
+ //definition of allowed parameters for onpause and onpausemodeonly viewelement
+ attributes.clear();
+ attributes.insert("debug");
+ attributes.insert("delay");
+ attributes.insert("fadetime");
+ funcsAllowed.insert(pair< string, set<string> >("onpause", attributes));
+ funcsAllowed.insert(pair< string, set<string> >("onpausemodeonly", attributes));
+
SetViewElements();
}
@@ -1378,6 +1390,8 @@ void cTemplateViewReplay::SetViewElements(void) {
viewElementsAllowed.insert("controliconsmodeonly");
viewElementsAllowed.insert("jump");
viewElementsAllowed.insert("message");
+ viewElementsAllowed.insert("onpause");
+ viewElementsAllowed.insert("onpausemodeonly");
}
string cTemplateViewReplay::GetViewElementName(eViewElement ve) {
@@ -1422,6 +1436,12 @@ string cTemplateViewReplay::GetViewElementName(eViewElement ve) {
case veScraperContent:
name = "Scraper Content";
break;
+ case veOnPause:
+ name = "On Pause";
+ break;
+ case veOnPauseModeOnly:
+ name = "On Pause Mode Only";
+ break;
default:
name = "Unknown";
break;
@@ -1429,7 +1449,7 @@ string cTemplateViewReplay::GetViewElementName(eViewElement ve) {
return name;
}
-void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -1460,6 +1480,10 @@ void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmap *pix, b
ve = veRecJump;
} else if (!sViewElement.compare("message")) {
ve = veMessage;
+ } else if (!sViewElement.compare("onpause")) {
+ ve = veOnPause;
+ } else if (!sViewElement.compare("onpausemodeonly")) {
+ ve = veOnPauseModeOnly;
}
if (ve == veUndefined) {
@@ -1472,10 +1496,9 @@ void cTemplateViewReplay::AddPixmap(string sViewElement, cTemplatePixmap *pix, b
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
@@ -1529,7 +1552,7 @@ string cTemplateViewVolume::GetViewElementName(eViewElement ve) {
return name;
}
-void cTemplateViewVolume::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewVolume::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -1548,10 +1571,9 @@ void cTemplateViewVolume::AddPixmap(string sViewElement, cTemplatePixmap *pix, b
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
@@ -1634,7 +1656,7 @@ string cTemplateViewAudioTracks::GetViewListName(eViewList vl) {
return name;
}
-void cTemplateViewAudioTracks::AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {
+void cTemplateViewAudioTracks::AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {
eViewElement ve = veUndefined;
if (!sViewElement.compare("background")) {
@@ -1653,10 +1675,9 @@ void cTemplateViewAudioTracks::AddPixmap(string sViewElement, cTemplatePixmap *p
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
if (hit == viewElements.end()) {
cTemplateViewElement *viewElement = new cTemplateViewElement();
+ viewElement->SetParameters(viewElementattributes);
viewElement->AddPixmap(pix);
viewElements.insert(pair< eViewElement, cTemplateViewElement*>(ve, viewElement));
- if (debugViewElement)
- viewElement->ActivateDebugTokens();
} else {
(hit->second)->AddPixmap(pix);
}
diff --git a/libtemplate/templateview.h b/libtemplate/templateview.h
index 828eb21..20f1c51 100644
--- a/libtemplate/templateview.h
+++ b/libtemplate/templateview.h
@@ -72,7 +72,7 @@ public:
virtual string GetViewListName(eViewList vl) { return ""; };
virtual void AddSubView(string sSubView, cTemplateView *subView) {};
virtual void AddPluginView(string plugName, int templNo, cTemplateView *plugView) {};
- virtual void AddPixmap(string sViewElement, cTemplatePixmap *pix, bool debugViewElement) {};
+ virtual void AddPixmap(string sViewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes) {};
virtual void AddViewList(string sViewList, cTemplateViewList *viewList) {};
virtual void AddViewTab(cTemplateViewTab *viewTab) {};
//Setter Functions
@@ -129,7 +129,7 @@ public:
cTemplateViewChannel(void);
virtual ~cTemplateViewChannel(void);
string GetViewElementName(eViewElement ve);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
};
// --- cTemplateViewMenu -------------------------------------------------------------
@@ -147,7 +147,7 @@ public:
string GetViewListName(eViewList vl);
void AddSubView(string sSubView, cTemplateView *subView);
void AddPluginView(string plugName, int templNo, cTemplateView *plugView);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
void AddViewList(string sViewList, cTemplateViewList *viewList);
void AddViewTab(cTemplateViewTab *viewTab);
};
@@ -161,7 +161,7 @@ public:
cTemplateViewMessage(void);
virtual ~cTemplateViewMessage(void);
string GetViewElementName(eViewElement ve);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
};
// --- cTemplateViewReplay -------------------------------------------------------------
@@ -173,7 +173,7 @@ public:
cTemplateViewReplay(void);
virtual ~cTemplateViewReplay(void);
string GetViewElementName(eViewElement ve);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
};
// --- cTemplateViewVolume -------------------------------------------------------------
@@ -185,7 +185,7 @@ public:
cTemplateViewVolume(void);
virtual ~cTemplateViewVolume(void);
string GetViewElementName(eViewElement ve);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
};
// --- cTemplateViewAudioTracks -------------------------------------------------------------
@@ -199,7 +199,7 @@ public:
virtual ~cTemplateViewAudioTracks(void);
string GetViewElementName(eViewElement ve);
string GetViewListName(eViewList vl);
- void AddPixmap(string viewElement, cTemplatePixmap *pix, bool debugViewElement);
+ void AddPixmap(string viewElement, cTemplatePixmap *pix, vector<pair<string, string> > &viewElementattributes);
void AddViewList(string sViewList, cTemplateViewList *viewList);
};
diff --git a/libtemplate/templateviewelement.c b/libtemplate/templateviewelement.c
index 87aeade..1a2ef6e 100644
--- a/libtemplate/templateviewelement.c
+++ b/libtemplate/templateviewelement.c
@@ -118,6 +118,13 @@ cTemplateFunction *cTemplateViewElement::GetFunction(string name) {
return NULL;
}
+bool cTemplateViewElement::DebugTokens(void) {
+ if (!parameters)
+ return false;
+ return parameters->DoDebug();
+}
+
+
void cTemplateViewElement::Debug(void) {
esyslog("skindesigner: viewelement container size x: %d, y: %d, width: %d, height %d", containerX, containerY, containerWidth, containerHeight);
if (parameters)
diff --git a/libtemplate/templateviewelement.h b/libtemplate/templateviewelement.h
index 7fe78b9..6d148e7 100644
--- a/libtemplate/templateviewelement.h
+++ b/libtemplate/templateviewelement.h
@@ -60,6 +60,8 @@ enum eViewElement {
veControlIconsModeOnly,
veBackgroundModeOnly,
veRecJump,
+ veOnPause,
+ veOnPauseModeOnly,
//DisplayVolume ViewElements
veVolume
};
@@ -93,8 +95,7 @@ public:
void InitIterator(void);
cTemplatePixmap *GetNextPixmap(void);
cTemplateFunction *GetFunction(string name);
- void ActivateDebugTokens(void) {debugTokens = true; };
- bool DebugTokens(void) { return debugTokens; };
+ bool DebugTokens(void);
virtual void Debug(void);
};
diff --git a/libtemplate/xmlparser.c b/libtemplate/xmlparser.c
index 0fede38..bdaf0bb 100644
--- a/libtemplate/xmlparser.c
+++ b/libtemplate/xmlparser.c
@@ -139,12 +139,18 @@ bool cXmlParser::ParseView(void) {
node = node->next;
continue;
}
-
if (view->ValidSubView((const char*)node->name)) {
ParseSubView(node);
} else if (view->ValidViewElement((const char*)node->name)) {
- bool debugViewElement = DebugViewElement(node);
- ParseViewElement(node->name, node->xmlChildrenNode, debugViewElement);
+ xmlAttrPtr attr = node->properties;
+ vector<pair<string, string> > attribs;
+ ParseAttributes(attr, node, attribs);
+ /*
+ for (vector<pair<string, string> >::iterator it = attribs.begin(); it != attribs.end(); it++) {
+ esyslog("skindesigner: attribute %s value %s", (it->first).c_str(), (it->second).c_str());
+ }
+ */
+ ParseViewElement(node->name, node->xmlChildrenNode, attribs);
} else if (view->ValidViewList((const char*)node->name)) {
ParseViewList(node);
} else {
@@ -178,8 +184,8 @@ bool cXmlParser::ParsePluginView(string plugName, int templateNumber) {
}
if (plugView->ValidViewElement((const char*)childNode->name)) {
- bool debugViewElement = DebugViewElement(childNode);
- ParseViewElement(childNode->name, childNode->xmlChildrenNode, debugViewElement, plugView);
+ vector<pair<string, string> > attribs;
+ ParseViewElement(childNode->name, childNode->xmlChildrenNode, attribs, plugView);
} else if (plugView->ValidViewList((const char*)childNode->name)) {
ParseViewList(childNode, plugView);
} else if (!xmlStrcmp(childNode->name, (const xmlChar *) "tab")) {
@@ -508,8 +514,8 @@ bool cXmlParser::ParseSubView(xmlNodePtr node) {
}
if (subView->ValidViewElement((const char*)childNode->name)) {
- bool debugViewElement = DebugViewElement(childNode);
- ParseViewElement(childNode->name, childNode->xmlChildrenNode, debugViewElement, subView);
+ vector<pair<string, string> > attribs;
+ ParseViewElement(childNode->name, childNode->xmlChildrenNode, attribs, subView);
} else if (subView->ValidViewList((const char*)childNode->name)) {
ParseViewList(childNode, subView);
} else if (!xmlStrcmp(childNode->name, (const xmlChar *) "tab")) {
@@ -527,17 +533,13 @@ bool cXmlParser::ParseSubView(xmlNodePtr node) {
}
-void cXmlParser::ParseViewElement(const xmlChar * viewElement, xmlNodePtr node, bool debugVE, cTemplateView *subView) {
+void cXmlParser::ParseViewElement(const xmlChar * viewElement, xmlNodePtr node, vector<pair<string, string> > &attributes, cTemplateView *subView) {
if (!node)
return;
if (!view)
return;
- if (debugVE) {
- dsyslog("skindesigner: activating debugging of viewElement %s", (const char*)viewElement);
- }
-
while (node != NULL) {
if (node->type != XML_ELEMENT_NODE) {
@@ -562,9 +564,9 @@ void cXmlParser::ParseViewElement(const xmlChar * viewElement, xmlNodePtr node,
pix->SetParameters(attribs);
ParseFunctionCalls(node->xmlChildrenNode, pix);
if (subView)
- subView->AddPixmap((const char*)viewElement, pix, debugVE);
+ subView->AddPixmap((const char*)viewElement, pix, attributes);
else
- view->AddPixmap((const char*)viewElement, pix, debugVE);
+ view->AddPixmap((const char*)viewElement, pix, attributes);
node = node->next;
}
@@ -601,15 +603,6 @@ void cXmlParser::ParseViewList(xmlNodePtr parentNode, cTemplateView *subView) {
ParseAttributes(attrCur, node, attribsCur);
currentElement->SetGlobals(globals);
currentElement->SetParameters(attribsCur);
- bool debugCurrent = false;
- for (vector<pair<string, string> >::iterator it = attribsCur.begin(); it != attribsCur.end(); it++) {
- if (!(it->first).compare("debug")) {
- debugCurrent = true;
- break;
- }
- }
- if (debugCurrent)
- currentElement->ActivateDebugTokens();
while (childNode != NULL) {
if (childNode->type != XML_ELEMENT_NODE) {
childNode = childNode->next;
@@ -631,13 +624,15 @@ void cXmlParser::ParseViewList(xmlNodePtr parentNode, cTemplateView *subView) {
}
viewList->AddCurrentElement(currentElement);
} else if (!xmlStrcmp(node->name, (const xmlChar *) "listelement")) {
- bool debugViewList = DebugViewElement(node);
xmlNodePtr childNode = node->xmlChildrenNode;
if (!childNode)
continue;
cTemplateViewElement *listElement = new cTemplateViewElement();
- if (debugViewList)
- listElement->ActivateDebugTokens();
+ xmlAttrPtr attrList = node->properties;
+ vector<pair<string, string> > attribsList;
+ ParseAttributes(attrList, node, attribsList);
+ listElement->SetGlobals(globals);
+ listElement->SetParameters(attribsList);
while (childNode != NULL) {
if (childNode->type != XML_ELEMENT_NODE) {
childNode = childNode->next;
@@ -775,6 +770,7 @@ bool cXmlParser::ParseAttributes(xmlAttrPtr attr, xmlNodePtr node, vector<pair<s
xmlChar *value = NULL;
value = xmlGetProp(node, attr->name);
if (!view->ValidAttribute((const char*)node->name, (const char*)attr->name)) {
+ esyslog("skindesigner: unknown attribute %s in %s", (const char*)attr->name, (const char*)node->name);
attr = attr->next;
if (value)
xmlFree(value);
@@ -789,17 +785,6 @@ bool cXmlParser::ParseAttributes(xmlAttrPtr attr, xmlNodePtr node, vector<pair<s
return true;
}
-bool cXmlParser::DebugViewElement(xmlNodePtr node) {
- xmlAttrPtr attr = node->properties;
- vector<pair<string, string> > attribs;
- ParseAttributes(attr, node, attribs);
- for (vector<pair<string, string> >::iterator it = attribs.begin(); it != attribs.end(); it++) {
- if (!(it->first).compare("debug"))
- return true;
- }
- return false;
-}
-
void cXmlParser::InitLibXML() {
xmlInitParser();
}
diff --git a/libtemplate/xmlparser.h b/libtemplate/xmlparser.h
index 18476e9..5ff829f 100644
--- a/libtemplate/xmlparser.h
+++ b/libtemplate/xmlparser.h
@@ -36,13 +36,12 @@ private:
void ParseGlobalFonts(xmlNodePtr node);
void ParseTranslations(xmlNodePtr node);
bool ParseSubView(xmlNodePtr node);
- void ParseViewElement(const xmlChar * viewElement, xmlNodePtr node, bool debugVE, cTemplateView *subView = NULL);
+ void ParseViewElement(const xmlChar * viewElement, xmlNodePtr node, vector<pair<string, string> > &attributes, cTemplateView *subView = NULL);
void ParseViewList(xmlNodePtr parentNode, cTemplateView *subView = NULL);
void ParseViewTab(xmlNodePtr parentNode, cTemplateView *subView);
void ParseFunctionCalls(xmlNodePtr node, cTemplatePixmap *pix);
void ParseLoopFunctionCalls(xmlNodePtr node, cTemplateLoopFunction *loopFunc);
bool ParseAttributes(xmlAttrPtr attr, xmlNodePtr node, vector<pair<string, string> > &attribs);
- bool DebugViewElement(xmlNodePtr node);
public:
cXmlParser(void);
virtual ~cXmlParser(void);