diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-07-24 23:26:18 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-07-24 23:26:18 +0000 |
commit | 1e490487b1cd6314c1783c05f2de865b4e045b21 (patch) | |
tree | 406a608d5c675e4b9b69436798439b51f310871f | |
parent | 5ecbe994a6efe376d2d565df2f281610970f0573 (diff) | |
download | vdr-plugin-menuorg-1e490487b1cd6314c1783c05f2de865b4e045b21.tar.gz vdr-plugin-menuorg-1e490487b1cd6314c1783c05f2de865b4e045b21.tar.bz2 |
fixed issues with stopReplaying, stopRecording and cancleEditing menu items
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5633 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
-rw-r--r-- | src/submenuplugin.h | 2 | ||||
-rw-r--r-- | src/submenuprovider.cc | 8 | ||||
-rw-r--r-- | src/submenuprovider.h | 3 | ||||
-rwxr-xr-x | vdr-patch/opt-37_submenu.dpatch | 26 |
4 files changed, 22 insertions, 17 deletions
diff --git a/src/submenuplugin.h b/src/submenuplugin.h index 504af9c..e810a23 100644 --- a/src/submenuplugin.h +++ b/src/submenuplugin.h @@ -2,8 +2,6 @@ #define ___SUBMENUPLUGIN_H #include <vdr/plugin.h> -//#include <vdr/config.h> -//#include <vdr/tools.h> #include "submenuprovider.h" using namespace SubMenuPatch; diff --git a/src/submenuprovider.cc b/src/submenuprovider.cc index 0b5abde..3b9389a 100644 --- a/src/submenuprovider.cc +++ b/src/submenuprovider.cc @@ -19,8 +19,8 @@ MainMenuItemsList* SubMenuProvider::MainMenuItems() } else { - _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem("A custom sub menu", osUser1))); - _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem("Another custom sub menu", osContinue))); + _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) { @@ -50,9 +50,9 @@ void SubMenuProvider::ResetMainMenuItemsList() _osdItems.clear(); } -void SubMenuProvider::EnterSubMenu(int mainMenuItemIndex) +void SubMenuProvider::EnterSubMenu(cOsdItem* item) { - if ((mainMenuItemIndex == 0) && !_inSubMenu) + if (item == _subMenuItem) { _inSubMenu = true; } diff --git a/src/submenuprovider.h b/src/submenuprovider.h index d4d73eb..f0b9172 100644 --- a/src/submenuprovider.h +++ b/src/submenuprovider.h @@ -9,12 +9,13 @@ class SubMenuProvider: public ISubMenuProvider { private: MainMenuItemsList _osdItems; + cOsdItem* _subMenuItem; bool _inSubMenu; public: SubMenuProvider(); virtual MainMenuItemsList* MainMenuItems(); - virtual void EnterSubMenu(int mainMenuItemIndex); + virtual void EnterSubMenu(cOsdItem* item); virtual bool LeaveSubMenu(); private: diff --git a/vdr-patch/opt-37_submenu.dpatch b/vdr-patch/opt-37_submenu.dpatch index d997b84..60b6986 100755 --- a/vdr-patch/opt-37_submenu.dpatch +++ b/vdr-patch/opt-37_submenu.dpatch @@ -4,8 +4,8 @@ @DPATCH@ diff -urNad vdr-1.4.7~/Makefile vdr-1.4.7/Makefile ---- vdr-1.4.7~/Makefile 2007-07-22 18:07:09.000000000 +0200 -+++ vdr-1.4.7/Makefile 2007-07-22 18:07:09.000000000 +0200 +--- vdr-1.4.7~/Makefile 2007-07-25 01:11:25.000000000 +0200 ++++ vdr-1.4.7/Makefile 2007-07-25 01:11:25.000000000 +0200 @@ -38,7 +38,7 @@ lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o rcu.o\ receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o\ @@ -16,8 +16,8 @@ diff -urNad vdr-1.4.7~/Makefile vdr-1.4.7/Makefile OBJS += osdcontroller.o rcontroller.o dvbsub.o vdrttxtsubshooks.o diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c ---- vdr-1.4.7~/menu.c 2007-07-22 18:07:09.000000000 +0200 -+++ vdr-1.4.7/menu.c 2007-07-22 18:07:09.000000000 +0200 +--- vdr-1.4.7~/menu.c 2007-07-25 01:11:25.000000000 +0200 ++++ vdr-1.4.7/menu.c 2007-07-25 01:22:06.000000000 +0200 @@ -31,6 +31,7 @@ #include "vdrttxtsubshooks.h" #include "dvbsub.h" @@ -61,7 +61,7 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c Update(true); Display(); -@@ -3238,6 +3260,29 @@ +@@ -3238,6 +3260,35 @@ state = osEnd; } break; @@ -71,6 +71,12 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c + if (cPluginManager::CallFirstService("SubMenuPatch-v0.1::SubMenuProvider", &subMenuProvider)) { + bool leavingMenuSucceeded = subMenuProvider->LeaveSubMenu(); + Set(); ++ stopReplayItem = NULL; ++ cancelEditingItem = NULL; ++ stopRecordingItem = NULL; ++ recordControlsState = 0; ++ Update(true); ++ Display(); + if (leavingMenuSucceeded) + return osContinue; + else @@ -82,7 +88,7 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c + SubMenuPatch::ISubMenuProvider* subMenuProvider; + + if (cPluginManager::CallFirstService("SubMenuPatch-v0.1::SubMenuProvider", &subMenuProvider)) { -+ subMenuProvider->EnterSubMenu(Current()); ++ subMenuProvider->EnterSubMenu(Get(Current())); + Set(); + return osContinue; + } @@ -93,7 +99,7 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c case kRed: if (!HadSubMenu) diff -urNad vdr-1.4.7~/submenupatch.c vdr-1.4.7/submenupatch.c --- vdr-1.4.7~/submenupatch.c 1970-01-01 01:00:00.000000000 +0100 -+++ vdr-1.4.7/submenupatch.c 2007-07-22 18:12:46.000000000 +0200 ++++ vdr-1.4.7/submenupatch.c 2007-07-25 01:11:25.000000000 +0200 @@ -0,0 +1,75 @@ +/* + * vdr-submenu - A plugin for the Linux Video Disk Recorder @@ -172,7 +178,7 @@ diff -urNad vdr-1.4.7~/submenupatch.c vdr-1.4.7/submenupatch.c +}; diff -urNad vdr-1.4.7~/submenupatch.h vdr-1.4.7/submenupatch.h --- vdr-1.4.7~/submenupatch.h 1970-01-01 01:00:00.000000000 +0100 -+++ vdr-1.4.7/submenupatch.h 2007-07-22 18:12:33.000000000 +0200 ++++ vdr-1.4.7/submenupatch.h 2007-07-25 01:11:25.000000000 +0200 @@ -0,0 +1,60 @@ +/* + * vdr-submenu - A plugin for the Linux Video Disk Recorder @@ -214,8 +220,8 @@ diff -urNad vdr-1.4.7~/submenupatch.h vdr-1.4.7/submenupatch.h + public: + virtual ~MainMenuItem() {}; + virtual bool IsCustomMenuItem() = 0; -+ virtual cOsdItem* CustomMenuItem() = 0; + virtual bool IsPluginMenuItem() = 0; ++ virtual cOsdItem* CustomMenuItem() = 0; + virtual const char* PluginMenuEntry() = 0; + virtual int PluginIndex() = 0; +}; @@ -227,7 +233,7 @@ diff -urNad vdr-1.4.7~/submenupatch.h vdr-1.4.7/submenupatch.h + public: + virtual ~ISubMenuProvider(); + virtual MainMenuItemsList* MainMenuItems() = 0; -+ virtual void EnterSubMenu(int mainMenuItemIndex) = 0; ++ virtual void EnterSubMenu(cOsdItem* item) = 0; + virtual bool LeaveSubMenu() = 0; +}; + |