summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/menuorg.cpp (renamed from src/submenuplugin.cc)43
-rw-r--r--src/menuorg.h (renamed from src/submenuplugin.h)12
-rw-r--r--src/plugincreator.cc7
-rw-r--r--src/plugincreator.cpp7
-rw-r--r--src/submenuprovider.cc95
-rw-r--r--src/submenuprovider.h25
6 files changed, 111 insertions, 78 deletions
diff --git a/src/submenuplugin.cc b/src/menuorg.cpp
index cd5f43a..9864efe 100644
--- a/src/submenuplugin.cc
+++ b/src/menuorg.cpp
@@ -1,9 +1,8 @@
/*
- * submenu.c: A plugin for the Video Disk Recorder
+ * menuorg.cpp: A plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
- * $Id$
*/
#include <vdr/plugin.h>
@@ -12,11 +11,11 @@
#include <vdr/submenupatch.h>
#include <vector>
#include "version.h"
-#include "submenuplugin.h"
+#include "menuorg.h"
using namespace SubMenuPatch;
-SubMenuPlugin::SubMenuPlugin(void)
+MenuOrgPlugin::MenuOrgPlugin(void)
{
// Initialize any member variables here.
// DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
@@ -24,91 +23,91 @@ SubMenuPlugin::SubMenuPlugin(void)
}
-SubMenuPlugin::~SubMenuPlugin()
+MenuOrgPlugin::~MenuOrgPlugin()
{
// Clean up after yourself!
}
-const char* SubMenuPlugin::Version(void)
+const char* MenuOrgPlugin::Version(void)
{
return VERSION;
}
-const char* SubMenuPlugin::Description(void)
+const char* MenuOrgPlugin::Description(void)
{
return tr("TODO: Insert Description");
}
-const char* SubMenuPlugin::MainMenuEntry(void)
+const char* MenuOrgPlugin::MainMenuEntry(void)
{
return tr("TODO: MainMenuEntry");
}
-const char *SubMenuPlugin::CommandLineHelp(void)
+const char *MenuOrgPlugin::CommandLineHelp(void)
{
// Return a string that describes all known command line options.
return NULL;
}
-bool SubMenuPlugin::ProcessArgs(int argc, char *argv[])
+bool MenuOrgPlugin::ProcessArgs(int argc, char *argv[])
{
// Implement command line argument processing here if applicable.
return true;
}
-bool SubMenuPlugin::Initialize(void)
+bool MenuOrgPlugin::Initialize(void)
{
// Initialize any background activities the plugin shall perform.
return true;
}
-bool SubMenuPlugin::Start(void)
+bool MenuOrgPlugin::Start(void)
{
// Start any background activities the plugin shall perform.
return true;
}
-void SubMenuPlugin::Stop(void)
+void MenuOrgPlugin::Stop(void)
{
// Stop any background activities the plugin shall perform.
}
-void SubMenuPlugin::Housekeeping(void)
+void MenuOrgPlugin::Housekeeping(void)
{
// Perform any cleanup or other regular tasks.
}
-void SubMenuPlugin::MainThreadHook(void)
+void MenuOrgPlugin::MainThreadHook(void)
{
// Perform actions in the context of the main program thread.
// WARNING: Use with great care - see PLUGINS.html!
}
-cString SubMenuPlugin::Active(void)
+cString MenuOrgPlugin::Active(void)
{
// Return a message string if shutdown should be postponed
return NULL;
}
-cOsdObject *SubMenuPlugin::MainMenuAction(void)
+cOsdObject *MenuOrgPlugin::MainMenuAction(void)
{
// Perform the action when selected from the main VDR menu.
return NULL;
}
-cMenuSetupPage *SubMenuPlugin::SetupMenu(void)
+cMenuSetupPage *MenuOrgPlugin::SetupMenu(void)
{
// Return a setup menu in case the plugin supports one.
return NULL;
}
-bool SubMenuPlugin::SetupParse(const char *Name, const char *Value)
+bool MenuOrgPlugin::SetupParse(const char *Name, const char *Value)
{
// Parse your own setup parameters and store their values.
return false;
}
-bool SubMenuPlugin::Service(const char *Id, void *Data)
+bool MenuOrgPlugin::Service(const char *Id, void *Data)
{
if (strcmp(Id, "SubMenuPatch-v0.1::SubMenuProvider") == 0)
{
@@ -121,13 +120,13 @@ bool SubMenuPlugin::Service(const char *Id, void *Data)
return false;
}
-const char **SubMenuPlugin::SVDRPHelpPages(void)
+const char **MenuOrgPlugin::SVDRPHelpPages(void)
{
// Return help text for SVDRP commands this plugin implements
return NULL;
}
-cString SubMenuPlugin::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode)
+cString MenuOrgPlugin::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode)
{
// Process SVDRP commands this plugin implements
return NULL;
diff --git a/src/submenuplugin.h b/src/menuorg.h
index e810a23..04b6f62 100644
--- a/src/submenuplugin.h
+++ b/src/menuorg.h
@@ -1,19 +1,21 @@
-#ifndef ___SUBMENUPLUGIN_H
-#define ___SUBMENUPLUGIN_H
+#ifndef ___MENUORGPLUGIN_H
+#define ___MENUORGPLUGIN_H
#include <vdr/plugin.h>
+//#include <vdr/config.h>
+//#include <vdr/tools.h>
#include "submenuprovider.h"
using namespace SubMenuPatch;
-class SubMenuPlugin : public cPlugin
+class MenuOrgPlugin : public cPlugin
{
private:
SubMenuProvider _subMenuProvider;
public:
- SubMenuPlugin(void);
- virtual ~SubMenuPlugin();
+ MenuOrgPlugin(void);
+ virtual ~MenuOrgPlugin();
virtual const char *Version(void);
virtual const char *Description(void);
virtual const char *CommandLineHelp(void);
diff --git a/src/plugincreator.cc b/src/plugincreator.cc
deleted file mode 100644
index 6b87179..0000000
--- a/src/plugincreator.cc
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "submenuplugin.h"
-
-extern "C" void *VDRPluginCreator()
-{
- SubMenuPlugin* plugin = new SubMenuPlugin();
- return plugin;
-}
diff --git a/src/plugincreator.cpp b/src/plugincreator.cpp
new file mode 100644
index 0000000..c91c629
--- /dev/null
+++ b/src/plugincreator.cpp
@@ -0,0 +1,7 @@
+#include "menuorg.h"
+
+extern "C" void *VDRPluginCreator()
+{
+ MenuOrgPlugin* plugin = new MenuOrgPlugin();
+ return plugin;
+}
diff --git a/src/submenuprovider.cc b/src/submenuprovider.cc
index 3b9389a..94861e0 100644
--- a/src/submenuprovider.cc
+++ b/src/submenuprovider.cc
@@ -1,42 +1,60 @@
#include "submenuprovider.h"
#include <vdr/plugin.h>
+#include <iostream>
+
+//using namespace std;
SubMenuProvider::SubMenuProvider()
{
- _inSubMenu = false;
+ _OsdSet = false;
+ _inSubMenu = false;
+
}
-MainMenuItemsList* SubMenuProvider::MainMenuItems()
+void SubMenuProvider::CreateTestMenus()
{
- ResetMainMenuItemsList();
-
- if (_inSubMenu)
- {
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Schedule"), osSchedule)));
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Channels"), osChannels)));
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Timers"), osTimers)));
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Recordings"), osRecordings)));
- }
- else
- {
- _subMenuItem = new cOsdItem("A custom sub menu\t1xxx", osUser1);
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(_subMenuItem));
- for (int i = 0; ; i++) {
- cPlugin *p = cPluginManager::GetPlugin(i);
- if (p) {
- const char *item = p->MainMenuEntry();
- if (item)
- _osdItems.push_back(MainMenuItem::CreatePluginMenuItem(item, i));
- }
- else
- break;
- }
-
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Setup"), osSetup)));
+ // Mainmenu
+ _myOsdItems[0].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("A custom sub menu1"), osUser1)));
+ _myOsdItems[0].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("A custom sub menu2"), osUser1)));
+
+ // Submenu 1
+ _myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Schedule"), osSchedule)));
+ _myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Channels"), osChannels)));
+ _myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Channels"), osChannels)));
+ _myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Timers"), osTimers)));
+ _myOsdItems[1].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Recordings"), osRecordings)));
+
+ // Submenu 2
+ _myOsdItems[2].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Setup"), osSetup)));
if (Commands.Count())
- _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Commands"), osCommands)));
- }
+ _myOsdItems[2].push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Commands"), osCommands)));
+
+}
+
+MainMenuItemsList* SubMenuProvider::MainMenuItems()
+{
+ ResetMainMenuItemsList();
+
+ if (_OsdSet == false)
+ {
+ // create testmenu´s
+ CreateTestMenus();
+
+ // set mainmenu
+ _osdItems=_myOsdItems[0];
+
+ _OsdSet=true;
+ }
+ else
+ {
+ if (_inSubMenu)
+ _osdItems=_myOsdItems[1];
+ else
+ _osdItems=_myOsdItems[0];
+
+ //_osdItems=_myOsdItemNext;
+ }
return &_osdItems;
}
@@ -52,10 +70,21 @@ void SubMenuProvider::ResetMainMenuItemsList()
void SubMenuProvider::EnterSubMenu(cOsdItem* item)
{
- if (item == _subMenuItem)
- {
- _inSubMenu = true;
- }
+ if (_inSubMenu == false)
+ _inSubMenu = true;
+
+/*
+ for(int i=0; i<=2; i++)
+ {
+
+ for( MainMenuItemsList::iterator oMenuItem = _myOsdItems[i].begin(); i != _myOsdItems[i].end(); i++)
+ {
+ if (oMenuItem==item)
+ isyslog("Item found\n");
+ }
+ // Suche nach dem nächsten Submenu und speichere es dann in _myOsdItemNext
+ }
+*/
}
bool SubMenuProvider::LeaveSubMenu()
diff --git a/src/submenuprovider.h b/src/submenuprovider.h
index f0b9172..2fefe17 100644
--- a/src/submenuprovider.h
+++ b/src/submenuprovider.h
@@ -7,19 +7,22 @@ using namespace SubMenuPatch;
class SubMenuProvider: public ISubMenuProvider
{
- private:
- MainMenuItemsList _osdItems;
- cOsdItem* _subMenuItem;
- bool _inSubMenu;
+ private:
+ MainMenuItemsList _osdItems;
+ MainMenuItemsList _myOsdItems[5];
+ MainMenuItemsList _myOsdItemNext;
+ bool _OsdSet;
+ bool _inSubMenu;
- public:
- SubMenuProvider();
- virtual MainMenuItemsList* MainMenuItems();
- virtual void EnterSubMenu(cOsdItem* item);
- virtual bool LeaveSubMenu();
+ public:
+ SubMenuProvider();
+ virtual MainMenuItemsList* MainMenuItems();
+ virtual void EnterSubMenu(cOsdItem* item);
+ virtual bool LeaveSubMenu();
- private:
- void ResetMainMenuItemsList();
+ private:
+ void ResetMainMenuItemsList();
+ void CreateTestMenus();
};
#endif