summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-26 13:34:32 +0000
committersvntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-26 13:34:32 +0000
commit1799112b89f535dd5accce966067596347d77a0c (patch)
tree7453be7ca5d8a5dd66a07e8b20434a383869458a
parent0491e7275024e97f79c6f714f111ed86d19c5a5b (diff)
downloadvdr-plugin-menuorg-1799112b89f535dd5accce966067596347d77a0c.tar.gz
vdr-plugin-menuorg-1799112b89f535dd5accce966067596347d77a0c.tar.bz2
- code clean up
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5637 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
-rw-r--r--src/submenuprovider.cc63
-rw-r--r--src/submenuprovider.h3
2 files changed, 37 insertions, 29 deletions
diff --git a/src/submenuprovider.cc b/src/submenuprovider.cc
index c17fe0f..a3c421e 100644
--- a/src/submenuprovider.cc
+++ b/src/submenuprovider.cc
@@ -9,6 +9,8 @@ SubMenuProvider::SubMenuProvider()
_OsdSet = false;
_inSubMenu = false;
_MenuIndex=0;
+ _nextMenuIndex=0;
+ CreateTestMenus();
}
@@ -22,10 +24,14 @@ void SubMenuProvider::CreateTestMenus()
if (Commands.Count())
_myOsdItems[0].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Commands"), osCommands)));
- _MenuZuordnung[0][0] = 1;
- _MenuZuordnung[0][1] = 2;
- _MenuZuordnung[0][2] = 0;
- _MenuZuordnung[0][3] = 0;
+ _MenuZuordnung[0][0][0] = 1;
+ _MenuZuordnung[0][0][1] = 0;
+ _MenuZuordnung[0][1][0] = 2;
+ _MenuZuordnung[0][0][1] = 0;
+ _MenuZuordnung[0][2][0] = 0;
+ _MenuZuordnung[0][2][1] = 0;
+ _MenuZuordnung[0][3][0] = 0;
+ _MenuZuordnung[0][3][1] = 0;
// Submenu 1
_myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Schedule"), osSchedule)));
@@ -34,11 +40,20 @@ void SubMenuProvider::CreateTestMenus()
_myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Timers"), osTimers)));
_myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Recordings"), osRecordings)));
- _MenuZuordnung[1][0] = 1;
- _MenuZuordnung[1][1] = 1;
- _MenuZuordnung[1][2] = 1;
- _MenuZuordnung[1][3] = 1;
- _MenuZuordnung[1][4] = 1;
+ _MenuZuordnung[1][0][0] = 1;
+ _MenuZuordnung[1][0][1] = 0;
+
+ _MenuZuordnung[1][1][0] = 1;
+ _MenuZuordnung[1][1][1] = 0;
+
+ _MenuZuordnung[1][2][0] = 1;
+ _MenuZuordnung[1][2][1] = 0;
+
+ _MenuZuordnung[1][3][0] = 1;
+ _MenuZuordnung[1][3][1] = 0;
+
+ _MenuZuordnung[1][4][0] = 1;
+ _MenuZuordnung[1][4][1] = 0;
int MenuCount = 0;
// Submenu 2
@@ -51,7 +66,8 @@ void SubMenuProvider::CreateTestMenus()
if (item)
{
_myOsdItems[2].push_back(MainMenuItem::CreatePluginMenuItem(item, i));
- _MenuZuordnung[2][MenuCount] = 2;
+ _MenuZuordnung[2][MenuCount][0] = 2;
+ _MenuZuordnung[2][MenuCount][1] = 0;
MenuCount++;
}
}
@@ -63,25 +79,13 @@ void SubMenuProvider::CreateTestMenus()
MainMenuItemsList* SubMenuProvider::MainMenuItems()
{
- isyslog("Call MainMenuItems - _MenuIndex=%d", _MenuIndex);
+ isyslog("Call MainMenuItems - _MenuIndex=%d - _nextMenuIndex=%d", _MenuIndex, _nextMenuIndex);
ResetMainMenuItemsList();
- if (_OsdSet == false)
- {
- // create testmenu´s
- CreateTestMenus();
+ _osdItems=_myOsdItems[_nextMenuIndex];
+ _MenuIndex=_nextMenuIndex;
- // set mainmenu
- _osdItems=_myOsdItems[_MenuIndex];
-
- _OsdSet=true;
- }
- else
- {
- _osdItems=_myOsdItems[_nextMenuIndex];
- _MenuIndex=_nextMenuIndex;
- }
return &_osdItems;
}
@@ -98,6 +102,7 @@ void SubMenuProvider::ResetMainMenuItemsList()
void SubMenuProvider::EnterSubMenu(cOsdItem* item)
{
isyslog("Call EnterSubMenu - _MenuIndex=%d", _MenuIndex);
+
unsigned int itemIndex;
for(itemIndex=0; itemIndex < _osdItems.size(); itemIndex++)
@@ -109,20 +114,22 @@ void SubMenuProvider::EnterSubMenu(cOsdItem* item)
}
}
- _nextMenuIndex = _MenuZuordnung[_MenuIndex][itemIndex];
+ _nextMenuIndex = _MenuZuordnung[_MenuIndex][itemIndex][0];
}
bool SubMenuProvider::LeaveSubMenu()
{
isyslog("Call LeaveSubMenu - _MenuIndex=%d", _MenuIndex);
- if (_MenuIndex != 0)
+ if (_MenuIndex != _MenuZuordnung[_MenuIndex][0][1])
{
- _MenuIndex = 0;
+ _nextMenuIndex = _MenuZuordnung[_MenuIndex][0][1];
+ isyslog("Call LeaveSubMenu - return true");
return true;
}
else
{
+ isyslog("Call LeaveSubMenu - return false");
return false;
}
}
diff --git a/src/submenuprovider.h b/src/submenuprovider.h
index 916729a..959bccb 100644
--- a/src/submenuprovider.h
+++ b/src/submenuprovider.h
@@ -23,7 +23,8 @@ class SubMenuProvider: public ISubMenuProvider
bool _inSubMenu;
int _MenuIndex; // Der Index des aktuellen Menüs
int _nextMenuIndex; // Enthält den Index des nächsten Menüs
- int _MenuZuordnung[5][20]; // Speichert die Zuodnung
+ int _MenuZuordnung[5][20][2]; // Speichert die Zuodnung
+ // erster Wert MenuIndex | zweiter Wert MenuItemIndex | dritter wert 0=Enter, 1=Leave
public:
SubMenuProvider();