summaryrefslogtreecommitdiff
path: root/src/xmlmenu.cpp
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-11 13:12:06 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-11 13:12:06 +0000
commitc99ef16f6109264bb008fefaa4b261ad55d113f9 (patch)
tree69cfe34180ca5d7710ca25cde19da5fca334cf03 /src/xmlmenu.cpp
parent000eb87a300d20db27456cb67f23b2c5481b5204 (diff)
downloadvdr-plugin-menuorg-c99ef16f6109264bb008fefaa4b261ad55d113f9.tar.gz
vdr-plugin-menuorg-c99ef16f6109264bb008fefaa4b261ad55d113f9.tar.bz2
got rid of the load error state forwarding
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5674 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/xmlmenu.cpp')
-rw-r--r--src/xmlmenu.cpp32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/xmlmenu.cpp b/src/xmlmenu.cpp
index 6893038..b3dea53 100644
--- a/src/xmlmenu.cpp
+++ b/src/xmlmenu.cpp
@@ -10,12 +10,14 @@
using namespace xmlpp;
using namespace std;
-void XmlMenu::LoadXmlMenu()
+MenuNode* XmlMenu::LoadXmlMenu()
{
// TODO: show how vdr handels the path vars (developer doc)
// and change code for dynamic path vars
const char *File = "/var/lib/vdr/plugins/vdr-menu.xml";
+ MenuNode* menuRoot = new MenuNode();
+
try
{
DomParser parser;
@@ -24,28 +26,23 @@ void XmlMenu::LoadXmlMenu()
//parser.set_validate();
parser.set_substitute_entities(); //We just want the text to be resolved/unescaped automatically.
parser.parse_file(File);
- if(parser)
- {
- //Walk the tree:
- MenuCount=0;
- const Element* rootElement = parser.get_document()->get_root_node(); //deleted by DomParser.
- ParseElement(rootElement, &_rootMenuNode);
- _xmlLoadError=false;
- }
+
+
+ const Element* rootElement = parser.get_document()->get_root_node();
+ ParseElement(rootElement, menuRoot);
}
catch(const std::exception& ex)
{
+ delete menuRoot;
+ menuRoot = NULL;
+
//TODO: print output to syslog (isyslog or dsyslog?)
cout << "Exception caught: " << ex.what() << endl;
isyslog("Exception caught: %s", ex.what());
//TODO: display message on osd
- _xmlLoadError=true;
}
-}
-
-MenuNode* XmlMenu::GetMenuTree()
-{
- return &_rootMenuNode;
+
+ return menuRoot;
}
void XmlMenu::ParseElement(const Element* element, MenuNode* menuNode)
@@ -152,8 +149,3 @@ bool XmlMenu::FindPluginByName(string name, const char** mainMenuEntry, int& plu
}
return false;
}
-
-bool XmlMenu::getErrorStatus()
-{
- return _xmlLoadError;
-}