diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | HISTORY.DE | 1 | ||||
-rw-r--r-- | patches/MainMenuHooks-v1_0.patch | 155 | ||||
-rw-r--r-- | patches/MainMenuHooks-v1_0_1.diff.gz | bin | 0 -> 2355 bytes | |||
-rw-r--r-- | patches/README.patches | 2 |
5 files changed, 3 insertions, 156 deletions
@@ -4,6 +4,7 @@ VDR Plugin 'epgsearch' Revision History 2011-xx-xx; Version 1.0.1 new: - dropped old code for vdr < 1.6.0, thanks to Ville Skyttä for whole pile of patches +- updated MainMenuHooks patch to 1.0.1 fixes: - fixed a crash when editing blacklists @@ -4,6 +4,7 @@ VDR Plugin 'epgsearch' Revision History 2011-xx-xx: Version 1.0.1 neu: - alten Code für vdr < 1.6.0 entfernt, Danke an Ville Skyttä für einen ganzen Haufen Patches +- MainMenuHooks-Patch auf 1.0.1 aktualisiert fixes: - Crash beim Editieren von Ausschlusslisten korrigiert 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 - diff --git a/patches/MainMenuHooks-v1_0_1.diff.gz b/patches/MainMenuHooks-v1_0_1.diff.gz Binary files differnew file mode 100644 index 0000000..c056a03 --- /dev/null +++ b/patches/MainMenuHooks-v1_0_1.diff.gz diff --git a/patches/README.patches b/patches/README.patches index 83973cd..08a1950 100644 --- a/patches/README.patches +++ b/patches/README.patches @@ -2,7 +2,7 @@ Description of patches ---------------------- -- MainMenuHooks-v1_0.patch: +- MainMenuHooks-v1_0_1.diff.gz: patches vdr to allow plugins to replace main menu items like 'Schedule', 'Recordings',... Use this one, if epgsearch shall replace the schedules menu. This patch is also used by other plugins like the extrec-plugin. |