summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-24 23:26:18 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-24 23:26:18 +0000
commit1e490487b1cd6314c1783c05f2de865b4e045b21 (patch)
tree406a608d5c675e4b9b69436798439b51f310871f
parent5ecbe994a6efe376d2d565df2f281610970f0573 (diff)
downloadvdr-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.h2
-rw-r--r--src/submenuprovider.cc8
-rw-r--r--src/submenuprovider.h3
-rwxr-xr-xvdr-patch/opt-37_submenu.dpatch26
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;
+};
+