diff options
author | Christian Wieninger <cwieninger@gmx.de> | 2011-10-18 20:01:36 +0200 |
---|---|---|
committer | Christian Wieninger <cwieninger@gmx.de> | 2011-10-18 20:01:36 +0200 |
commit | b09a7e8eb34337e31d406566cbcca1b5dd692efb (patch) | |
tree | 8d7db2ef2156d6e73bd28c4041359f047b8d64a0 /patches/MainMenuHooks-v1_0.patch | |
parent | eff341390c079060d0904a53b7eebe84e2315f3a (diff) | |
download | vdr-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.patch | 155 |
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 - |