summaryrefslogtreecommitdiff
path: root/vdr-patch/menuorg-0.1.diff
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-11 19:02:56 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-11 19:02:56 +0000
commit2299c1e099d7a5190f9bfdc8b76315bbc86bd179 (patch)
treebe80d0586238bc1582503fe88c2a36606d536b9f /vdr-patch/menuorg-0.1.diff
parent9dad4cecd0fcbc53440de7149227c9970162b1b2 (diff)
downloadvdr-plugin-menuorg-2299c1e099d7a5190f9bfdc8b76315bbc86bd179.tar.gz
vdr-plugin-menuorg-2299c1e099d7a5190f9bfdc8b76315bbc86bd179.tar.bz2
some renamings
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5681 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'vdr-patch/menuorg-0.1.diff')
-rwxr-xr-xvdr-patch/menuorg-0.1.diff162
1 files changed, 162 insertions, 0 deletions
diff --git a/vdr-patch/menuorg-0.1.diff b/vdr-patch/menuorg-0.1.diff
new file mode 100755
index 0000000..3c1fcb1
--- /dev/null
+++ b/vdr-patch/menuorg-0.1.diff
@@ -0,0 +1,162 @@
+diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c
+--- vdr-1.4.7~/menu.c 2007-08-11 20:48:29.000000000 +0200
++++ vdr-1.4.7/menu.c 2007-08-11 20:48:29.000000000 +0200
+@@ -31,6 +31,7 @@
+ #include "vdrttxtsubshooks.h"
+ #include "dvbsub.h"
+ #include "videodir.h"
++#include "menuorgpatch.h"
+
+ #define MAXWAIT4EPGINFO 3 // seconds
+ #define MODETIMEOUT 3 // seconds
+@@ -3057,6 +3058,13 @@
+ cancelEditingItem = NULL;
+ stopRecordingItem = NULL;
+ recordControlsState = 0;
++
++ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider;
++
++ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuitemsProvider", &mainMenuItemsProvider)) {
++ mainMenuItemsProvider->EnterRootMenu();
++ }
++
+ Set();
+
+ // Initial submenus:
+@@ -3084,6 +3092,29 @@
+ Clear();
+ SetTitle("VDR");
+ SetHasHotkeys();
++
++ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider;
++
++ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) {
++ MenuOrgPatch::MainMenuItemsList* menuItems = mainMenuItemsProvider->MainMenuItems();
++ MenuOrgPatch::MainMenuItemsList::iterator i;
++
++ for (i = menuItems->begin(); i != menuItems->end(); i++) {
++ if ((*i)->IsCustomMenuItem()) {
++ cOsdItem* osdItem = (*i)->CustomMenuItem();
++ if (osdItem) {
++ osdItem->SetText(hk(osdItem->Text()));
++ Add(osdItem);
++ }
++ }
++ else if ((*i)->IsPluginMenuItem()) {
++ const char *item = (*i)->PluginMenuEntry();
++ if (item)
++ Add(new cMenuPluginItem(hk(item), (*i)->PluginIndex()));
++ }
++ }
++ }
++ else {
+
+ // Basic menu items:
+
+@@ -3111,6 +3142,8 @@
+ if (Commands.Count())
+ Add(new cOsdItem(hk(tr("Commands")), osCommands));
+
++ }
++
+ Update(true);
+
+ Display();
+@@ -3238,6 +3271,35 @@
+ state = osEnd;
+ }
+ break;
++ case osBack: {
++ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider;
++
++ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) {
++ bool leavingMenuSucceeded = mainMenuItemsProvider->LeaveSubMenu();
++ Set();
++ stopReplayItem = NULL;
++ cancelEditingItem = NULL;
++ stopRecordingItem = NULL;
++ recordControlsState = 0;
++ Update(true);
++ Display();
++ if (leavingMenuSucceeded)
++ return osContinue;
++ else
++ return osEnd;
++ }
++ }
++ break;
++ case osUser1: {
++ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider;
++
++ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) {
++ mainMenuItemsProvider->EnterSubMenu(Get(Current()));
++ Set();
++ return osContinue;
++ }
++ }
++ break;
+ default: switch (Key) {
+ case kRecord:
+ case kRed: if (!HadSubMenu)
+diff -urNad vdr-1.4.7~/menuorgpatch.h vdr-1.4.7/menuorgpatch.h
+--- vdr-1.4.7~/menuorgpatch.h 1970-01-01 01:00:00.000000000 +0100
++++ vdr-1.4.7/menuorgpatch.h 2007-08-11 20:48:58.000000000 +0200
+@@ -0,0 +1,58 @@
++/*
++ * vdr-menuorg - A plugin for the Linux Video Disk Recorder
++ * Copyright (C) 2007 Thomas Creutz, Tobias Grimm
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ *
++ * $Id:$
++ *
++ */
++
++#ifndef __MENUORGPATCH_H
++#define __MENUORGPATCH_H
++
++#include <vector>
++
++class cOsdItem;
++
++namespace MenuOrgPatch
++{
++
++class IMainMenuItem
++{
++ public:
++ virtual ~IMainMenuItem() {};
++ virtual bool IsCustomMenuItem() = 0;
++ virtual bool IsPluginMenuItem() = 0;
++ virtual cOsdItem* CustomMenuItem() = 0;
++ virtual const char* PluginMenuEntry() = 0;
++ virtual int PluginIndex() = 0;
++};
++
++typedef std::vector<IMainMenuItem*> MainMenuItemsList;
++
++class IMainMenuItemsProvider
++{
++ public:
++ virtual ~IMainMenuItemsProvider() {};
++ virtual MainMenuItemsList* MainMenuItems() = 0;
++ virtual void EnterRootMenu() = 0;
++ virtual void EnterSubMenu(cOsdItem* item) = 0;
++ virtual bool LeaveSubMenu() = 0;
++};
++
++};
++
++#endif //__MENUORGPATCH_H