summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mainmenuitemsprovider.cpp9
-rw-r--r--src/mainmenuitemsprovider.h4
-rw-r--r--src/menuorg.cpp15
3 files changed, 12 insertions, 16 deletions
diff --git a/src/mainmenuitemsprovider.cpp b/src/mainmenuitemsprovider.cpp
index 6e0bb00..e0b6a7f 100644
--- a/src/mainmenuitemsprovider.cpp
+++ b/src/mainmenuitemsprovider.cpp
@@ -26,16 +26,17 @@
#include "pluginmenunode.h"
#include <vdr/plugin.h>
#include "childlock.h"
+#include "menuconfiguration.h"
-MainMenuItemsProvider::MainMenuItemsProvider(MenuNode* rootMenu)
+MainMenuItemsProvider::MainMenuItemsProvider(MenuConfiguration& menuConfiguration)
+ :_menuConfiguration(menuConfiguration)
{
- _currentMenu = _rootMenu = rootMenu;
+ EnterRootMenu();
}
MainMenuItemsProvider::~MainMenuItemsProvider()
{
ResetMainMenuItemsList();
- delete _rootMenu;
}
MenuItemDefinitions* MainMenuItemsProvider::MainMenuItems()
@@ -67,7 +68,7 @@ void MainMenuItemsProvider::ResetMainMenuItemsList()
void MainMenuItemsProvider::EnterRootMenu()
{
- _currentMenu = _rootMenu;
+ _currentMenu = _rootMenu = _menuConfiguration.MenuTree();;
}
void MainMenuItemsProvider::EnterSubMenu(cOsdItem* item)
diff --git a/src/mainmenuitemsprovider.h b/src/mainmenuitemsprovider.h
index e7ae029..46f4748 100644
--- a/src/mainmenuitemsprovider.h
+++ b/src/mainmenuitemsprovider.h
@@ -26,6 +26,7 @@
#include <vdr/mainmenuitemsprovider.h>
class MenuNode;
+class MenuConfiguration;
class MainMenuItemsProvider: public IMainMenuItemsProvider
{
@@ -33,9 +34,10 @@ class MainMenuItemsProvider: public IMainMenuItemsProvider
MenuNode* _rootMenu;
MenuNode* _currentMenu;
MenuItemDefinitions _currentMainMenuItems;
+ MenuConfiguration& _menuConfiguration;
public:
- MainMenuItemsProvider(MenuNode* rootMenu);
+ MainMenuItemsProvider(MenuConfiguration& menuConfiguration);
~MainMenuItemsProvider();
virtual MenuItemDefinitions* MainMenuItems();
virtual void EnterRootMenu();
diff --git a/src/menuorg.cpp b/src/menuorg.cpp
index b764f07..d87fda0 100644
--- a/src/menuorg.cpp
+++ b/src/menuorg.cpp
@@ -50,8 +50,8 @@ MenuOrgPlugin::MenuOrgPlugin(void)
MenuOrgPlugin::~MenuOrgPlugin()
{
- delete _subMenuProvider;
- delete _menuConfiguration;
+ delete _subMenuProvider;
+ delete _menuConfiguration;
}
const char* MenuOrgPlugin::Version(void)
@@ -110,16 +110,9 @@ bool MenuOrgPlugin::Initialize(void)
configFile = (string) ConfigDirectory() + "/menuorg.xml";
_menuConfiguration = new MenuConfiguration(configFile);
+ // TODO need handling of unloadable config File here!!!
- MenuNode* menu = _menuConfiguration->MenuTree();
- if (menu)
- {
- _subMenuProvider = new MainMenuItemsProvider(menu);
- }
- else
- {
- _subMenuProvider = NULL;
- }
+ _subMenuProvider = new MainMenuItemsProvider(*_menuConfiguration);
RegisterI18n(Phrases);