summaryrefslogtreecommitdiff
path: root/patches/MainMenuHooks-v1_0.patch
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger@gmx.de>2011-10-18 20:01:36 +0200
committerChristian Wieninger <cwieninger@gmx.de>2011-10-18 20:01:36 +0200
commitb09a7e8eb34337e31d406566cbcca1b5dd692efb (patch)
tree8d7db2ef2156d6e73bd28c4041359f047b8d64a0 /patches/MainMenuHooks-v1_0.patch
parenteff341390c079060d0904a53b7eebe84e2315f3a (diff)
downloadvdr-plugin-epgsearch-b09a7e8eb34337e31d406566cbcca1b5dd692efb.tar.gz
vdr-plugin-epgsearch-b09a7e8eb34337e31d406566cbcca1b5dd692efb.tar.bz2
updated MainMenuHooks patch to 1.0.1
Diffstat (limited to 'patches/MainMenuHooks-v1_0.patch')
-rw-r--r--patches/MainMenuHooks-v1_0.patch155
1 files changed, 0 insertions, 155 deletions
diff --git a/patches/MainMenuHooks-v1_0.patch b/patches/MainMenuHooks-v1_0.patch
deleted file mode 100644
index 4f08c0e..0000000
--- a/patches/MainMenuHooks-v1_0.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-This is a "patch" for the Video Disk Recorder (VDR).
-
-* Authors:
-Tobias Grimm <vdr at e-tobi dot net>
-Martin Prochnow <nordlicht at martins-kabuff dot de>
-Frank Schmirler <vdrdev at schmirler dot de>
-Christian Wieninger <cwieninger at gmx dot de>
-
-* Description:
-This patch allows plugins to replace the VDR mainmenus "Schedule",
-"Channels", "Timers" and "Recordings" by a different implementation.
-
-The patch is based on a suggestion of Christian Wieninger back in 2006.
-(http://www.linuxtv.org/pipermail/vdr/2006-March/008234.html). It is
-meant to be an interim solution for VDR 1.4 until (maybe) VDR 1.5
-introduces an official API for this purpose.
-
-* Installation
-Change into the VDR source directory, then issue
- patch -p1 < path/to/MainMenuHooks-v1_0.patch
-and recompile.
-
-* Notes for plugin authors
-The following code sample shows the required plugin code for replacing
-the original Schedule menu:
-
-bool cMyPlugin::Service(const char *Id, void *Data)
-{
- cOsdMenu **menu = (cOsdMenu**) Data;
- if (MySetup.replaceSchedule &&
- strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0) {
- if (menu)
- *menu = (cOsdMenu*) MainMenuAction();
- return true;
- }
- return false;
-}
-
-A plugin can replace more than one menu at a time. Simply replace the
-call to MainMenuAction() in the sample above by appropriate code).
-
-Note that a plugin *should* offer a setup option which allows the user
-to enable or disable the replacement. "Disabled" would be a reasonable
-default setting. By testing for define MAINMENUHOOKSVERSNUM, a plugin
-can leave the setup option out at compiletime.
-
-In case there is an internal problem when trying to open the replacement
-menu, it is safe to return true even though Data is NULL. However an
-OSD message should indicate the problem to the user.
-
-Feel free to ship this patch along with your plugin. However if you
-think you need to modify the patch, we'd encourage you to contact the
-authors first or at least use a service id which differs in more than
-just the version number.
-
---- vdr-1.4.5/menu.c.orig 2007-02-07 08:23:49.000000000 +0100
-+++ vdr-1.4.5/menu.c 2007-02-20 11:05:34.000000000 +0100
-@@ -2792,15 +2792,30 @@
-
- // Initial submenus:
-
-+ cOsdMenu *menu = NULL;
- switch (State) {
-- case osSchedule: AddSubMenu(new cMenuSchedule); break;
-- case osChannels: AddSubMenu(new cMenuChannels); break;
-- case osTimers: AddSubMenu(new cMenuTimers); break;
-- case osRecordings: AddSubMenu(new cMenuRecordings(NULL, 0, true)); break;
-- case osSetup: AddSubMenu(new cMenuSetup); break;
-- case osCommands: AddSubMenu(new cMenuCommands(tr("Commands"), &Commands)); break;
-+ case osSchedule:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", &menu))
-+ menu = new cMenuSchedule;
-+ break;
-+ case osChannels:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", &menu))
-+ menu = new cMenuChannels;
-+ break;
-+ case osTimers:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
-+ menu = new cMenuTimers;
-+ break;
-+ case osRecordings:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", &menu))
-+ menu = new cMenuRecordings(NULL, 0, true);
-+ break;
-+ case osSetup: menu = new cMenuSetup; break;
-+ case osCommands: menu = new cMenuCommands(tr("Commands"), &Commands); break;
- default: break;
- }
-+ if (menu)
-+ AddSubMenu(menu);
- }
-
- cOsdObject *cMenuMain::PluginOsdObject(void)
-@@ -2927,13 +2942,34 @@
- eOSState state = cOsdMenu::ProcessKey(Key);
- HadSubMenu |= HasSubMenu();
-
-+ cOsdMenu *menu = NULL;
- switch (state) {
-- case osSchedule: return AddSubMenu(new cMenuSchedule);
-- case osChannels: return AddSubMenu(new cMenuChannels);
-- case osTimers: return AddSubMenu(new cMenuTimers);
-- case osRecordings: return AddSubMenu(new cMenuRecordings);
-- case osSetup: return AddSubMenu(new cMenuSetup);
-- case osCommands: return AddSubMenu(new cMenuCommands(tr("Commands"), &Commands));
-+ case osSchedule:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osSchedule", &menu))
-+ menu = new cMenuSchedule;
-+ else
-+ state = osContinue;
-+ break;
-+ case osChannels:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osChannels", &menu))
-+ menu = new cMenuChannels;
-+ else
-+ state = osContinue;
-+ break;
-+ case osTimers:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osTimers", &menu))
-+ menu = new cMenuTimers;
-+ else
-+ state = osContinue;
-+ break;
-+ case osRecordings:
-+ if (!cPluginManager::CallFirstService("MainMenuHooksPatch-v1.0::osRecordings", &menu))
-+ menu = new cMenuRecordings;
-+ else
-+ state = osContinue;
-+ break;
-+ case osSetup: menu = new cMenuSetup; break;
-+ case osCommands: menu = new cMenuCommands(tr("Commands"), &Commands); break;
- case osStopRecord: if (Interface->Confirm(tr("Stop recording?"))) {
- cOsdItem *item = Get(Current());
- if (item) {
-@@ -2985,6 +3021,8 @@
- default: break;
- }
- }
-+ if (menu)
-+ return AddSubMenu(menu);
- if (!HasSubMenu() && Update(HadSubMenu))
- Display();
- if (Key != kNone) {
---- vdr-1.4.5/config.h.orig 2007-02-20 11:55:40.000000000 +0100
-+++ vdr-1.4.5/config.h 2007-02-20 11:56:43.000000000 +0100
-@@ -35,6 +35,8 @@
- // plugins to work with newer versions of the core VDR as long as no
- // VDR header files have changed.
-
-+#define MAINMENUHOOKSVERSNUM 1.0
-+
- #define MAXPRIORITY 99
- #define MAXLIFETIME 99
-