diff options
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.cc | 7 | ||||
-rw-r--r-- | src/plugincreator.cpp | 7 | ||||
-rw-r--r-- | src/submenuprovider.cc | 95 | ||||
-rw-r--r-- | src/submenuprovider.h | 25 |
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 |