diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2008-03-22 22:13:48 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2008-03-22 22:13:48 +0000 |
commit | 224e6b425c22042fadc8caccb45a347318e82d0c (patch) | |
tree | 0b1bf5245f9f9d3b277964fa5a0bf0a7b7211aad /vdr-patch/menuorg-0.1.diff | |
parent | c5dfe5834603465b7597f7828400f0d23b3bed73 (diff) | |
download | vdr-plugin-menuorg-224e6b425c22042fadc8caccb45a347318e82d0c.tar.gz vdr-plugin-menuorg-224e6b425c22042fadc8caccb45a347318e82d0c.tar.bz2 |
updated patch and README
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@6966 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'vdr-patch/menuorg-0.1.diff')
-rw-r--r-- | vdr-patch/menuorg-0.1.diff | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/vdr-patch/menuorg-0.1.diff b/vdr-patch/menuorg-0.1.diff deleted file mode 100644 index 9bc15dd..0000000 --- a/vdr-patch/menuorg-0.1.diff +++ /dev/null @@ -1,263 +0,0 @@ -diff -Nur vdr-1.4.7/mainmenuitemsprovider.h vdr-1.4.7.patched/mainmenuitemsprovider.h ---- vdr-1.4.7/mainmenuitemsprovider.h 1970-01-01 01:00:00.000000000 +0100 -+++ vdr-1.4.7.patched/mainmenuitemsprovider.h 2007-08-21 01:08:25.000000000 +0200 -@@ -0,0 +1,57 @@ -+/* -+ * 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 __MAINMENUITEMSPROVIDER_H -+#define __MAINMENUITEMSPROVIDER_H -+ -+#include <vector> -+ -+class cOsdItem; -+class cOsdMenu; -+ -+class IMenuItemDefinition -+{ -+ public: -+ virtual ~IMenuItemDefinition() {}; -+ virtual bool IsCustomOsdItem() = 0; -+ virtual bool IsPluginItem() = 0; -+ virtual cOsdItem* CustomOsdItem() = 0; -+ virtual const char* PluginMenuEntry() = 0; -+ virtual int PluginIndex() = 0; -+}; -+ -+typedef std::vector<IMenuItemDefinition*> MenuItemDefinitions; -+ -+#define MENU_ITEMS_PROVIDER_SERVICE_ID "MenuOrgPatch-v0.1::MainMenuItemsProvider" -+ -+class IMainMenuItemsProvider -+{ -+ public: -+ virtual ~IMainMenuItemsProvider() {}; -+ virtual MenuItemDefinitions* MainMenuItems() = 0; -+ virtual void EnterRootMenu() = 0; -+ virtual void EnterSubMenu(cOsdItem* item) = 0; -+ virtual bool LeaveSubMenu() = 0; -+ virtual cOsdMenu* Execute(cOsdItem* item) = 0; -+}; -+ -+#endif //__MAINMENUITEMSPROVIDER_H -diff -Nur vdr-1.4.7/menu.c vdr-1.4.7.patched/menu.c ---- vdr-1.4.7/menu.c 2006-12-02 12:12:02.000000000 +0100 -+++ vdr-1.4.7.patched/menu.c 2007-08-21 01:08:25.000000000 +0200 -@@ -28,6 +28,7 @@ - #include "timers.h" - #include "transfer.h" - #include "videodir.h" -+#include "menuorgpatch.h" - - #define MAXWAIT4EPGINFO 3 // seconds - #define MODETIMEOUT 3 // seconds -@@ -2788,6 +2789,9 @@ - cancelEditingItem = NULL; - stopRecordingItem = NULL; - recordControlsState = 0; -+ -+ MenuOrgPatch::EnterRootMenu(); -+ - Set(); - - // Initial submenus: -@@ -2815,6 +2819,25 @@ - Clear(); - SetTitle("VDR"); - SetHasHotkeys(); -+ -+ if (MenuOrgPatch::IsCustomMenuAvailable()) { -+ MenuItemDefinitions* menuItems = MenuOrgPatch::MainMenuItems(); -+ for (MenuItemDefinitions::iterator i = menuItems->begin(); i != menuItems->end(); i++) { -+ if ((*i)->IsCustomOsdItem()) { -+ cOsdItem* osdItem = (*i)->CustomOsdItem(); -+ if (osdItem) { -+ osdItem->SetText(hk(osdItem->Text())); -+ Add(osdItem); -+ } -+ } -+ else if ((*i)->IsPluginItem()) { -+ const char *item = (*i)->PluginMenuEntry(); -+ if (item) -+ Add(new cMenuPluginItem(hk(item), (*i)->PluginIndex())); -+ } -+ } -+ } -+ else { - - // Basic menu items: - -@@ -2842,6 +2865,8 @@ - if (Commands.Count()) - Add(new cOsdItem(hk(tr("Commands")), osCommands)); - -+ } -+ - Update(true); - - Display(); -@@ -2966,6 +2991,41 @@ - state = osEnd; - } - break; -+ case osBack: { -+ if (MenuOrgPatch::IsCustomMenuAvailable()) -+ { -+ bool leavingMenuSucceeded = MenuOrgPatch::LeaveSubMenu(); -+ Set(); -+ stopReplayItem = NULL; -+ cancelEditingItem = NULL; -+ stopRecordingItem = NULL; -+ recordControlsState = 0; -+ Update(true); -+ Display(); -+ if (leavingMenuSucceeded) -+ return osContinue; -+ else -+ return osEnd; -+ } -+ } -+ break; -+ case osUser1: { -+ if (MenuOrgPatch::IsCustomMenuAvailable()) { -+ MenuOrgPatch::EnterSubMenu(Get(Current())); -+ Set(); -+ return osContinue; -+ } -+ } -+ break; -+ case osUser2: { -+ if (MenuOrgPatch::IsCustomMenuAvailable()) { -+ cOsdMenu* osdMenu = MenuOrgPatch::Execute(Get(Current())); -+ if (osdMenu) -+ return AddSubMenu(osdMenu); -+ return osEnd; -+ } -+ } -+ break; - default: switch (Key) { - case kRecord: - case kRed: if (!HadSubMenu) -diff -Nur vdr-1.4.7/menuorgpatch.h vdr-1.4.7.patched/menuorgpatch.h ---- vdr-1.4.7/menuorgpatch.h 1970-01-01 01:00:00.000000000 +0100 -+++ vdr-1.4.7.patched/menuorgpatch.h 2007-08-21 01:08:25.000000000 +0200 -@@ -0,0 +1,100 @@ -+/* -+ * 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 "mainmenuitemsprovider.h" -+ -+class MenuOrgPatch -+{ -+ private: -+ static IMainMenuItemsProvider* _mainMenuItemsProvider; -+ -+ private: -+ static IMainMenuItemsProvider* MainMenuItemsProvider() -+ { -+ if (!_mainMenuItemsProvider) -+ { -+ IMainMenuItemsProvider* mainMenuItemsProvider; -+ -+ if (cPluginManager::CallFirstService(MENU_ITEMS_PROVIDER_SERVICE_ID, &mainMenuItemsProvider)) -+ { -+ _mainMenuItemsProvider = mainMenuItemsProvider; -+ } -+ } -+ return _mainMenuItemsProvider; -+ } -+ -+ public: -+ static bool IsCustomMenuAvailable() -+ { -+ return (MainMenuItemsProvider() != NULL); -+ } -+ -+ static void EnterRootMenu() -+ { -+ if (MainMenuItemsProvider()) -+ { -+ MainMenuItemsProvider()->EnterRootMenu(); -+ } -+ } -+ -+ static bool LeaveSubMenu() -+ { -+ if (MainMenuItemsProvider()) -+ { -+ return MainMenuItemsProvider()->LeaveSubMenu(); -+ } -+ return false; -+ } -+ -+ static void EnterSubMenu(cOsdItem* item) -+ { -+ if (MainMenuItemsProvider()) -+ { -+ MainMenuItemsProvider()->EnterSubMenu(item); -+ } -+ } -+ -+ static MenuItemDefinitions* MainMenuItems() -+ { -+ if (MainMenuItemsProvider()) -+ { -+ return MainMenuItemsProvider()->MainMenuItems(); -+ } -+ return NULL; -+ } -+ -+ static cOsdMenu* Execute(cOsdItem* item) -+ { -+ if (MainMenuItemsProvider()) -+ { -+ return MainMenuItemsProvider()->Execute(item); -+ } -+ return NULL; -+ } -+}; -+ -+IMainMenuItemsProvider* MenuOrgPatch::_mainMenuItemsProvider = NULL; -+ -+#endif //__MENUORGPATCH_H |