diff options
| author | louis <louis.braun@gmx.de> | 2014-11-29 11:23:54 +0100 |
|---|---|---|
| committer | louis <louis.braun@gmx.de> | 2014-11-29 11:23:54 +0100 |
| commit | 76ab3e4cef2ef37ea8e9f2ababfd4b8c98ceaf54 (patch) | |
| tree | 7f13e052745e0fd2ac43e6ecd391247aa9889744 /libtemplate | |
| parent | d684cec70e72c4f9cea35fda69c1baa32360b5e3 (diff) | |
| download | vdr-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.c | 59 | ||||
| -rw-r--r-- | libtemplate/templateview.h | 14 | ||||
| -rw-r--r-- | libtemplate/templateviewelement.c | 7 | ||||
| -rw-r--r-- | libtemplate/templateviewelement.h | 5 | ||||
| -rw-r--r-- | libtemplate/xmlparser.c | 59 | ||||
| -rw-r--r-- | libtemplate/xmlparser.h | 3 |
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); |
