r4159 - in vdr/vdr-plugin-epgsearch/trunk/debian: . patches
Tobias Grimm
tiber-guest at alioth.debian.org
Sun Feb 4 16:22:56 CET 2007
Author: tiber-guest
Date: 2007-02-04 16:22:55 +0100 (Sun, 04 Feb 2007)
New Revision: 4159
Added:
vdr/vdr-plugin-epgsearch/trunk/debian/patches/90_menushortcuts.dpatch
Modified:
vdr/vdr-plugin-epgsearch/trunk/debian/changelog
vdr/vdr-plugin-epgsearch/trunk/debian/install
vdr/vdr-plugin-epgsearch/trunk/debian/patches/00list
Log:
* Added 90_menushortcuts.dpatch and installing menu shortcut plugins now
Modified: vdr/vdr-plugin-epgsearch/trunk/debian/changelog
===================================================================
--- vdr/vdr-plugin-epgsearch/trunk/debian/changelog 2007-02-03 17:12:08 UTC (rev 4158)
+++ vdr/vdr-plugin-epgsearch/trunk/debian/changelog 2007-02-04 15:22:55 UTC (rev 4159)
@@ -1,3 +1,9 @@
+vdr-plugin-epgsearch (0.9.20-2) experimental; urgency=low
+
+ * Added 90_menushortcuts.dpatch and installing menu shortcut plugins now
+
+ -- Tobias Grimm <tg at e-tobi.net> Sun, 4 Feb 2007 16:22:20 +0100
+
vdr-plugin-epgsearch (0.9.20-1) unstable; urgency=low
* New upstream release
Modified: vdr/vdr-plugin-epgsearch/trunk/debian/install
===================================================================
--- vdr/vdr-plugin-epgsearch/trunk/debian/install 2007-02-03 17:12:08 UTC (rev 4158)
+++ vdr/vdr-plugin-epgsearch/trunk/debian/install 2007-02-04 15:22:55 UTC (rev 4159)
@@ -1,4 +1,7 @@
libvdr-epgsearch.so.* usr/lib/vdr/plugins/
+libvdr-epgsearchonly.so.* usr/lib/vdr/plugins/
+libvdr-conflictcheckonly.so.* usr/lib/vdr/plugins/
+libvdr-quickepgsearch.so.* usr/lib/vdr/plugins/
debian/epgsearchcmds.conf etc/vdr/plugins/epgsearch/
debian/epgsearchmenu.conf etc/vdr/plugins/epgsearch/
Modified: vdr/vdr-plugin-epgsearch/trunk/debian/patches/00list
===================================================================
--- vdr/vdr-plugin-epgsearch/trunk/debian/patches/00list 2007-02-03 17:12:08 UTC (rev 4158)
+++ vdr/vdr-plugin-epgsearch/trunk/debian/patches/00list 2007-02-04 15:22:55 UTC (rev 4159)
@@ -1,2 +1,3 @@
01_debian-defaults
+90_menushortcuts
#91_epgsearch-1.5.0
Added: vdr/vdr-plugin-epgsearch/trunk/debian/patches/90_menushortcuts.dpatch
===================================================================
--- vdr/vdr-plugin-epgsearch/trunk/debian/patches/90_menushortcuts.dpatch 2007-02-03 17:12:08 UTC (rev 4158)
+++ vdr/vdr-plugin-epgsearch/trunk/debian/patches/90_menushortcuts.dpatch 2007-02-04 15:22:55 UTC (rev 4159)
@@ -0,0 +1,1468 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 90_menushortcuts.dpatch by Tobias Grimm <tg at e-tobi.net>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Makes the menu shortcuts optional (will be in the next upstream)
+
+ at DPATCH@
+diff -Nur epgsearch-0.9.20/conflictcheckonly.c epgsearch-0.9.20-tg/conflictcheckonly.c
+--- epgsearch-0.9.20/conflictcheckonly.c 2007-01-27 13:40:49.000000000 +0100
++++ epgsearch-0.9.20-tg/conflictcheckonly.c 2007-02-02 10:08:43.000000000 +0100
+@@ -8,324 +8,177 @@
+ #include <vdr/plugin.h>
+ #include <vdr/i18n.h>
+ #include "services.h"
++#include "mainmenushortcut.h"
+
+ static const char VERSION[] = "0.0.1";
+ static const char DESCRIPTION[] = "Direct access to epgsearch's conflict check menu";
+ static const char MAINMENUENTRY[] = "Timer conflicts";
++static const char SETUPTEXT[] = "Conflict info in main menu";
+
+-int showInfoInMain=1;
+-char mainmenuentry[MaxFileName] = "";
+-
+-const tI18nPhrase Phrases[] = {
+- { "Direct access to epgsearch's conflict check menu",
+- "Direkter Zugriff auf epgsearch's Konflikt-Prüfungs-Menü",// Deutsch
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Suoratoiminto EPGSearch-laajennoksen ajastimien tarkistukselle",
+- "",// TODO Polski
+- "",// TODO Español
+- "",// TODO ÅëëçíéêÜ (Greek)
+- "",// TODO Svenska
+- "",// TODO Romaneste
+- "",// TODO Magyar
+- "",// TODO Català
+- "",// TODO ÀãááÚØÙ (Russian)
+- "",// TODO Hrvatski (Croatian)
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Timer conflicts",
+- "Timer-Konflikte",
+- "",// TODO
+- "",// TODO
+- "",
+- "",// TODO
+- "",
+- "",// TODO
+- "Ajastimien päällekkäisyydet",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "This version of EPGSearch does not support this service!",
+- "Diese Version von EPGSearch unterstützt diesen Dienst nicht!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennos ei tarjoa vaadittavaa palvelua!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "EPGSearch does not exist!",
+- "EPGSearch nicht vorhanden!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennosta ei löydy!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Plugin needs vdr-1.3.36 or above!",
+- "Plugin benötigt vdr-1.3.36 oder höher!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Laajennos tarvitsee toimiakseen vähintään vdr-1.3.36!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "next",
+- "nächster",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "seuraava",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Show conflict info in main menu entry",
+- "Zeige Konflikt-Info in Hauptmenüeintrag",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Näytä päällekkäisyydet päävalikossa",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { NULL }
+- };
++const tI18nPhrase Phrases[] =
++{
++ {
++ "Direct access to epgsearch's conflict check menu",
++ "Direkter Zugriff auf epgsearch's Konflikt-Prüfungs-Menü",// Deutsch
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Suoratoiminto EPGSearch-laajennoksen ajastimien tarkistukselle",
++ "",// TODO Polski
++ "",// TODO Español
++ "",// TODO ÅëëçíéêÜ (Greek)
++ "",// TODO Svenska
++ "",// TODO Romaneste
++ "",// TODO Magyar
++ "",// TODO Català
++ "",// TODO ÀãááÚØÙ (Russian)
++ "",// TODO Hrvatski (Croatian)
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "Timer conflicts",
++ "Timer-Konflikte",
++ "",// TODO
++ "",// TODO
++ "",
++ "",// TODO
++ "",
++ "",// TODO
++ "Ajastimien päällekkäisyydet",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "next",
++ "nächster",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "seuraava",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "Cconflict info in main menu",
++ "Konflikt-Info im Hauptmenü",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Näytä päällekkäisyydet päävalikossa",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ { NULL }
++};
+
+ cString DateTime(time_t t)
+ {
+- char buffer[32];
+- if (t == 0)
+- time(&t);
+- struct tm tm_r;
+- tm *tm = localtime_r(&t, &tm_r);
+- snprintf(buffer, sizeof(buffer), "%02d.%02d %02d:%02d", tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
+- return buffer;
+-}
+-
+-class cMenuConflictcheckonlySetup : public cMenuSetupPage {
+- private:
+- virtual void Setup(void)
+- {
+- Add(new cMenuEditBoolItem(tr("Show conflict info in main menu entry"), &showInfoInMain, tr("no"), tr("yes")));
+- }
+- protected:
+- virtual void Store(void)
+- {
+- SetupStore("ConflictInfoInMain", showInfoInMain);
+- }
+- public:
+- cMenuConflictcheckonlySetup(void)
+- {
+- Setup();
+- };
+- };
+-
+-
+-class cPluginConflictcheckonly : public cPlugin {
+-private:
+- // Add any member variables or functions you may need here.
+-public:
+- cPluginConflictcheckonly(void);
+- virtual ~cPluginConflictcheckonly();
+- virtual const char *Version(void) { return VERSION; }
+- virtual const char *Description(void) { return tr(DESCRIPTION); }
+- virtual const char *CommandLineHelp(void);
+- virtual bool ProcessArgs(int argc, char *argv[]);
+- virtual bool Initialize(void);
+- virtual bool Start(void);
+- virtual void Stop(void);
+- virtual void Housekeeping(void);
+- virtual const char *MainMenuEntry(void);
+- virtual cOsdObject *MainMenuAction(void);
+- virtual cMenuSetupPage *SetupMenu(void);
+- virtual bool SetupParse(const char *Name, const char *Value);
+- };
+-
+-cPluginConflictcheckonly::cPluginConflictcheckonly(void)
+-{
+-}
+-
+-cPluginConflictcheckonly::~cPluginConflictcheckonly()
+-{
+-}
+-
+-const char* cPluginConflictcheckonly::MainMenuEntry(void)
+-{
+- if (showInfoInMain)
++ char buffer[32];
++ if (t == 0)
+ {
+- Epgsearch_lastconflictinfo_v1_0* serviceData = new Epgsearch_lastconflictinfo_v1_0;
+- serviceData->nextConflict = 0;
+- serviceData->relevantConflicts = 0;
+- serviceData->totalConflicts = 0;
+-
+- cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+- if (p)
+- p->Service("Epgsearch-lastconflictinfo-v1.0", serviceData);
+-
+- if (serviceData->relevantConflicts > 0)
+- {
+- sprintf(mainmenuentry, "%s (%d, %s: %s)", tr(MAINMENUENTRY), serviceData->relevantConflicts,
+- tr("next"), *DateTime(serviceData->nextConflict));
+- delete serviceData;
+- return mainmenuentry;
+- }
+-
+- delete serviceData;
++ time(&t);
+ }
+- return tr(MAINMENUENTRY);
+-}
++ struct tm tm_r;
++ tm *tm = localtime_r(&t, &tm_r);
++ snprintf(buffer, sizeof(buffer), "%02d.%02d %02d:%02d", tm->tm_mday, tm->tm_mon + 1, tm->tm_hour, tm->tm_min);
++ return buffer;
++}
++
++class cPluginConflictcheckonly : public cMainMenuShortcut
++{
++ private:
++ char* _menuText;
++
++ public:
++ cPluginConflictcheckonly();
++ ~cPluginConflictcheckonly();
++ virtual const char* Version() { return VERSION; }
++ virtual const char* Description() { return tr(DESCRIPTION); }
++ virtual bool Initialize();
++ virtual cOsdObject* MainMenuAction() { return GetEpgSearchMenu("Epgsearch-conflictmenu-v1.0"); }
++
++ protected:
++ virtual const char* SetupText() { return tr(SETUPTEXT); }
++ virtual const char* MainMenuText();
++};
+
+-const char *cPluginConflictcheckonly::CommandLineHelp(void)
++cPluginConflictcheckonly::cPluginConflictcheckonly()
++:_menuText(NULL)
+ {
+- return NULL;
+ }
+
+-bool cPluginConflictcheckonly::ProcessArgs(int argc, char *argv[])
+-{
+- return true;
+-}
+-
+-bool cPluginConflictcheckonly::Initialize(void)
+-{
+- RegisterI18n(Phrases);
+- return true;
+-}
+-
+-bool cPluginConflictcheckonly::Start(void)
+-{
+- return true;
+-}
+-
+-void cPluginConflictcheckonly::Stop(void)
+-{
+-}
+-
+-void cPluginConflictcheckonly::Housekeeping(void)
++cPluginConflictcheckonly::~cPluginConflictcheckonly()
+ {
++ free(_menuText);
+ }
+
+-cOsdObject *cPluginConflictcheckonly::MainMenuAction(void)
++const char* cPluginConflictcheckonly::MainMenuText(void)
+ {
+- cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+- if (p)
+- {
+- Epgsearch_conflictmenu_v1_0* serviceData = new Epgsearch_conflictmenu_v1_0;
+- serviceData->pConflictMenu = NULL;
+-
+- cOsdMenu* pMenu = NULL;
+- if (p->Service("Epgsearch-conflictmenu-v1.0", serviceData))
+- pMenu = serviceData->pConflictMenu;
+- else
+- Skins.Message(mtError, tr("This version of EPGSearch does not support this service!"));
+-
+- delete serviceData;
+-
+- if (pMenu)
+- return pMenu;
+- else
+- return NULL;
+- }
+- else
++ const char* menuText = tr(MAINMENUENTRY);
++ cPlugin *epgSearchPlugin = cPluginManager::GetPlugin("epgsearch");
++ if (epgSearchPlugin)
+ {
+- Skins.Message(mtError, tr("EPGSearch does not exist!"));
+- return NULL;
++ Epgsearch_lastconflictinfo_v1_0* serviceData = new Epgsearch_lastconflictinfo_v1_0;
++ if (epgSearchPlugin->Service("Epgsearch-lastconflictinfo-v1.0", serviceData))
++ {
++ if (serviceData->relevantConflicts > 0)
++ {
++ free(_menuText);
++ asprintf(&_menuText, "%s (%d, %s: %s)", menuText, serviceData->relevantConflicts,
++ tr("next"), *DateTime(serviceData->nextConflict));
++ menuText = _menuText;
++ }
++ }
++ delete serviceData;
+ }
+-
+- return NULL;
++ return menuText;
+ }
+
+-cMenuSetupPage *cPluginConflictcheckonly::SetupMenu(void)
+-{
+- return new cMenuConflictcheckonlySetup;
+-}
+-
+-bool cPluginConflictcheckonly::SetupParse(const char *Name, const char *Value)
++bool cPluginConflictcheckonly::Initialize(void)
+ {
+- if (!strcasecmp(Name, "ConflictInfoInMain")) showInfoInMain = atoi(Value);
+- return true;
++ RegisterI18n(Phrases);
++ return cMainMenuShortcut::Initialize();
+ }
+
+ VDRPLUGINCREATOR(cPluginConflictcheckonly); // Don't touch this!
+diff -Nur epgsearch-0.9.20/epgsearch.c epgsearch-0.9.20-tg/epgsearch.c
+--- epgsearch-0.9.20/epgsearch.c 2007-01-30 21:18:59.000000000 +0100
++++ epgsearch-0.9.20-tg/epgsearch.c 2007-02-02 10:08:43.000000000 +0100
+@@ -243,8 +243,8 @@
+ if (Data == NULL)
+ return true;
+
+- Epgsearch_searchmenu_v1_0* serviceData = (Epgsearch_searchmenu_v1_0*) Data;
+- serviceData->pSearchMenu = new cMenuEPGSearchExt();
++ EpgSearchMenu_v1_0* serviceData = (EpgSearchMenu_v1_0*) Data;
++ serviceData->Menu = new cMenuEPGSearchExt();
+
+ return true;
+ }
+@@ -252,8 +252,8 @@
+ if (Data == NULL)
+ return true;
+
+- Epgsearch_conflictmenu_v1_0* serviceData = (Epgsearch_conflictmenu_v1_0*) Data;
+- serviceData->pConflictMenu = new cMenuConflictCheck();
++ EpgSearchMenu_v1_0* serviceData = (EpgSearchMenu_v1_0*) Data;
++ serviceData->Menu = new cMenuConflictCheck();
+
+ return true;
+ }
+@@ -355,8 +355,8 @@
+ if (Data == NULL)
+ return true;
+
+- Epgsearch_quicksearch_v1_0* serviceData = (Epgsearch_quicksearch_v1_0*) Data;
+- serviceData->pSearchMenu = new cMenuQuickSearch(new cSearchExt);
++ EpgSearchMenu_v1_0* serviceData = (EpgSearchMenu_v1_0*) Data;
++ serviceData->Menu = new cMenuQuickSearch(new cSearchExt);
+
+ return true;
+ }
+diff -Nur epgsearch-0.9.20/epgsearchonly.c epgsearch-0.9.20-tg/epgsearchonly.c
+--- epgsearch-0.9.20/epgsearchonly.c 2006-12-03 14:25:32.000000000 +0100
++++ epgsearch-0.9.20-tg/epgsearchonly.c 2007-02-02 10:08:43.000000000 +0100
+@@ -8,230 +8,104 @@
+ #include <vdr/plugin.h>
+ #include <vdr/i18n.h>
+ #include "services.h"
++#include "mainmenushortcut.h"
+
+ static const char VERSION[] = "0.0.1";
+ static const char DESCRIPTION[] = "Direct access to epgsearch's search menu";
+ static const char MAINMENUENTRY[] = "Search";
++static const char SETUPTEXT[] = "EpgSearch-Search in main menu";
+
+-const tI18nPhrase Phrases[] = {
+- { "Direct access to epgsearch's search menu",
+- "Direkter Zugriff auf epgsearch's Suchenmenu",// Deutsch
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Suoratoiminto EPGSearch-laajennoksen haulle",
+- "",// TODO Polski
+- "",// TODO Español
+- "",// TODO ÅëëçíéêÜ (Greek)
+- "",// TODO Svenska
+- "",// TODO Romaneste
+- "",// TODO Magyar
+- "",// TODO Català
+- "",// TODO ÀãááÚØÙ (Russian)
+- "",// TODO Hrvatski (Croatian)
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Search",
+- "Suche",
+- "",// TODO
+- "Ricerca",
+- "Zoek",
+- "",// TODO
+- "Recherche",
+- "",// TODO
+- "Etsi ohjelmaoppaasta",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "This version of EPGSearch does not support this service!",
+- "Diese Version von EPGSearch unterstützt diesen Dienst nicht!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennos ei tarjoa vaadittavaa palvelua!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "EPGSearch does not exist!",
+- "EPGSearch nicht vorhanden!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennosta ei löydy!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Plugin needs vdr-1.3.30 or above!",
+- "Plugin benötigt vdr-1.3.30 oder höher!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Laajennos tarvitsee toimiakseen vähintään vdr-1.3.30!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { NULL }
+- };
+-
+-class cPluginEpgsearchonly : public cPlugin {
+-private:
+- // Add any member variables or functions you may need here.
+-public:
+- cPluginEpgsearchonly(void);
+- virtual ~cPluginEpgsearchonly();
+- virtual const char *Version(void) { return VERSION; }
+- virtual const char *Description(void) { return tr(DESCRIPTION); }
+- virtual const char *CommandLineHelp(void);
+- virtual bool ProcessArgs(int argc, char *argv[]);
+- virtual bool Initialize(void);
+- virtual bool Start(void);
+- virtual void Stop(void);
+- virtual void Housekeeping(void);
+- virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
+- virtual cOsdObject *MainMenuAction(void);
+- virtual cMenuSetupPage *SetupMenu(void);
+- virtual bool SetupParse(const char *Name, const char *Value);
+- };
+-
+-cPluginEpgsearchonly::cPluginEpgsearchonly(void)
+-{
+- // Initialize any member variables here.
+- // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
+- // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
+-}
+-
+-cPluginEpgsearchonly::~cPluginEpgsearchonly()
+-{
+- // Clean up after yourself!
+-}
+-
+-const char *cPluginEpgsearchonly::CommandLineHelp(void)
+-{
+- // Return a string that describes all known command line options.
+- return NULL;
+-}
+-
+-bool cPluginEpgsearchonly::ProcessArgs(int argc, char *argv[])
+-{
+- // Implement command line argument processing here if applicable.
+- return true;
+-}
+-
+-bool cPluginEpgsearchonly::Initialize(void)
+-{
+- RegisterI18n(Phrases);
+- return true;
+-}
+-
+-bool cPluginEpgsearchonly::Start(void)
+-{
+- return true;
+-}
+-
+-void cPluginEpgsearchonly::Stop(void)
+-{
+- // Stop any background activities the plugin shall perform.
+-}
+-
+-void cPluginEpgsearchonly::Housekeeping(void)
+-{
+- // Perform any cleanup or other regular tasks.
+-}
+-
+-cOsdObject *cPluginEpgsearchonly::MainMenuAction(void)
++const tI18nPhrase Phrases[] =
+ {
+- cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+- if (p)
+ {
+- Epgsearch_searchmenu_v1_0* serviceData = new Epgsearch_searchmenu_v1_0;
+- serviceData->pSearchMenu = NULL;
+-
+- cOsdMenu* pMenu = NULL;
+- if (p->Service("Epgsearch-searchmenu-v1.0", serviceData))
+- pMenu = serviceData->pSearchMenu;
+- else
+- Skins.Message(mtError, tr("This version of EPGSearch does not support this service!"));
+-
+- delete serviceData;
+-
+- if (pMenu)
+- return pMenu;
+- else
+- return NULL;
+- }
+- else
++ "Direct access to epgsearch's search menu",
++ "Direkter Zugriff auf epgsearch's Suchenmenu",// Deutsch
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Suoratoiminto EPGSearch-laajennoksen haulle",
++ "",// TODO Polski
++ "",// TODO Español
++ "",// TODO ÅëëçíéêÜ (Greek)
++ "",// TODO Svenska
++ "",// TODO Romaneste
++ "",// TODO Magyar
++ "",// TODO Català
++ "",// TODO ÀãááÚØÙ (Russian)
++ "",// TODO Hrvatski (Croatian)
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
+ {
+- Skins.Message(mtError, tr("EPGSearch does not exist!"));
+- return NULL;
+- }
+-
+- return NULL;
+-}
+-
+-cMenuSetupPage *cPluginEpgsearchonly::SetupMenu(void)
++ "Search",
++ "Suche",
++ "",// TODO
++ "Ricerca",
++ "Zoek",
++ "",// TODO
++ "Recherche",
++ "",// TODO
++ "Etsi ohjelmaoppaasta",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "EpgSearch-Search in main menu",
++ "EpgSearch-Suche im Hauptmenü",// Deutsch
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO Finnish
++ "",// TODO Polski
++ "",// TODO Español
++ "",// TODO ÅëëçíéêÜ (Greek)
++ "",// TODO Svenska
++ "",// TODO Romaneste
++ "",// TODO Magyar
++ "",// TODO Català
++ "",// TODO ÀãááÚØÙ (Russian)
++ "",// TODO Hrvatski (Croatian)
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ { NULL }
++};
++
++class cPluginEpgsearchonly: public cMainMenuShortcut
+ {
+- // Return a setup menu in case the plugin supports one.
+- return NULL;
+-}
++ public:
++ virtual const char* Version() { return VERSION; }
++ virtual const char* Description() { return tr(DESCRIPTION); }
++ virtual bool Initialize();
++ virtual cOsdObject *MainMenuAction() { return GetEpgSearchMenu("Epgsearch-searchmenu-v1.0"); };
++
++ protected:
++ virtual const char* SetupText() { return tr(SETUPTEXT); }
++ virtual const char* MainMenuText() { return tr(MAINMENUENTRY); };
++};
+
+-bool cPluginEpgsearchonly::SetupParse(const char *Name, const char *Value)
++bool cPluginEpgsearchonly::Initialize()
+ {
+- // Parse your own setup parameters and store their values.
+- return false;
++ RegisterI18n(Phrases);
++ return cMainMenuShortcut::Initialize();
+ }
+
+ VDRPLUGINCREATOR(cPluginEpgsearchonly); // Don't touch this!
+diff -Nur epgsearch-0.9.20/mainmenushortcut.c epgsearch-0.9.20-tg/mainmenushortcut.c
+--- epgsearch-0.9.20/mainmenushortcut.c 1970-01-01 01:00:00.000000000 +0100
++++ epgsearch-0.9.20-tg/mainmenushortcut.c 2007-02-02 10:08:43.000000000 +0100
+@@ -0,0 +1,135 @@
++#include "services.h"
++#include "mainmenushortcut.h"
++
++static const char SETUPENTRY[] = "MainMenuEntryEnabled";
++
++const tI18nPhrase Phrases[] =
++{
++ {
++ "This version of EPGSearch does not support this service!",
++ "Diese Version von EPGSearch unterstützt diesen Dienst nicht!",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "EPGSearch-laajennos ei tarjoa vaadittavaa palvelua!",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "EPGSearch does not exist!",
++ "EPGSearch nicht vorhanden!",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "EPGSearch-laajennosta ei löydy!",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ { NULL }
++};
++
++cMainMenuShortcutSetupPage::cMainMenuShortcutSetupPage(const char* setupText, const char* setupEntry,
++ int* const setupValue)
++:_setupEntry(setupEntry), _setupValue(setupValue)
++{
++ Add(new cMenuEditBoolItem(setupText, _setupValue, tr("no"), tr("yes")));
++};
++
++void cMainMenuShortcutSetupPage::Store()
++{
++ SetupStore(_setupEntry, *_setupValue);
++}
++
++cMainMenuShortcut::cMainMenuShortcut()
++:_mainMenuEntryEnabled(0)
++{
++}
++
++cMainMenuShortcut::~cMainMenuShortcut()
++{
++ I18nRegister(NULL, PLUGIN_NAME_I18N);
++}
++
++cOsdMenu* cMainMenuShortcut::GetEpgSearchMenu(const char* serviceName)
++{
++ cOsdMenu* menu = NULL;
++ cPlugin *epgSearchPlugin = cPluginManager::GetPlugin("epgsearch");
++ if (epgSearchPlugin)
++ {
++ EpgSearchMenu_v1_0* serviceData = new EpgSearchMenu_v1_0;
++
++ if (epgSearchPlugin->Service(serviceName, serviceData))
++ {
++ menu = serviceData->Menu;
++ }
++ else
++ {
++ Skins.Message(mtError, tr("This version of EPGSearch does not support this service!"));
++ }
++
++ delete serviceData;
++ }
++ else
++ {
++ Skins.Message(mtError, tr("EPGSearch does not exist!"));
++ }
++ return menu;
++}
++
++bool cMainMenuShortcut::Initialize()
++{
++ I18nRegister(Phrases, PLUGIN_NAME_I18N);
++ return true;
++}
++
++bool cMainMenuShortcut::SetupParse(const char *Name, const char *Value)
++{
++ if (!strcasecmp(Name, SETUPENTRY))
++ {
++ _mainMenuEntryEnabled = atoi(Value);
++ }
++ return true;
++}
++
++cMenuSetupPage* cMainMenuShortcut::SetupMenu()
++{
++ return new cMainMenuShortcutSetupPage(SetupText(), SETUPENTRY, &_mainMenuEntryEnabled);
++}
++
++const char* cMainMenuShortcut::MainMenuEntry()
++{
++ if (_mainMenuEntryEnabled)
++ {
++ return (const char*) MainMenuText();
++ }
++ else
++ {
++ return NULL;
++ }
++}
+diff -Nur epgsearch-0.9.20/mainmenushortcut.h epgsearch-0.9.20-tg/mainmenushortcut.h
+--- epgsearch-0.9.20/mainmenushortcut.h 1970-01-01 01:00:00.000000000 +0100
++++ epgsearch-0.9.20-tg/mainmenushortcut.h 2007-02-02 10:08:43.000000000 +0100
+@@ -0,0 +1,38 @@
++#ifndef __MAINMENUSHORTCUT_H
++#define __MAINMENUSHORTCUT_H
++
++#include <vdr/plugin.h>
++
++class cMainMenuShortcutSetupPage : public cMenuSetupPage
++{
++ private:
++ const char* _setupEntry;
++ int* const _setupValue;
++
++ public:
++ cMainMenuShortcutSetupPage(const char* setupText, const char* setupEntry, int* const setupValue);
++
++ protected:
++ virtual void Store(void);
++};
++
++class cMainMenuShortcut : public cPlugin
++{
++ private:
++ int _mainMenuEntryEnabled;
++
++ public:
++ cMainMenuShortcut();
++ virtual ~cMainMenuShortcut();
++ virtual bool Initialize();
++ virtual bool SetupParse(const char* Name, const char* Value);
++ virtual cMenuSetupPage* SetupMenu();
++ virtual const char* MainMenuEntry();
++
++ protected:
++ cOsdMenu* GetEpgSearchMenu(const char* serviceName);
++ virtual const char* SetupText() = 0;
++ virtual const char* MainMenuText() = 0;
++};
++
++#endif
+diff -Nur epgsearch-0.9.20/Makefile epgsearch-0.9.20-tg/Makefile
+--- epgsearch-0.9.20/Makefile 2007-01-26 17:04:27.000000000 +0100
++++ epgsearch-0.9.20-tg/Makefile 2007-02-02 10:08:43.000000000 +0100
+@@ -10,6 +10,7 @@
+ #WITHOUT_QUICKSEARCH=1
+
+ PLUGIN = epgsearch
++MAINMENUSHORTCUT = epgsearchmainmenushortcut
+ PLUGIN2 = epgsearchonly
+ PLUGIN3 = conflictcheckonly
+ PLUGIN4 = quickepgsearch
+@@ -72,6 +73,7 @@
+ #INCLUDES += -I$(VDRDIR)/include
+
+ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
++DEFINES1 += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(MAINMENUSHORTCUT)"'
+ DEFINES2 += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN2)"'
+ DEFINES3 += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN3)"'
+ DEFINES4 += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN4)"'
+@@ -98,19 +100,21 @@
+ DEFINES += -DDEBUG_CONFL
+ endif
+
+-OBJS2 = epgsearchonly.o
++OBJS2 = mainmenushortcut.o epgsearchonly.o
+ LIBS2 =
+
+-OBJS3 = conflictcheckonly.o
++OBJS3 = mainmenushortcut.o conflictcheckonly.o
+ LIBS3 =
+
+-OBJS4 = quickepgsearch.o
++OBJS4 = mainmenushortcut.o quickepgsearch.o
+ LIBS4 =
+
+ ### Implicit rules:
+
+ %.o: %.c
+ $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
++mainmenushortcut.o: mainmenushortcut.c
++ $(CXX) $(CXXFLAGS) -c $(DEFINES1) $(INCLUDES) $<
+ epgsearchonly.o: epgsearchonly.c
+ $(CXX) $(CXXFLAGS) -c $(DEFINES2) $(INCLUDES) $<
+ conflictcheckonly.o: conflictcheckonly.c
+diff -Nur epgsearch-0.9.20/quickepgsearch.c epgsearch-0.9.20-tg/quickepgsearch.c
+--- epgsearch-0.9.20/quickepgsearch.c 2007-01-28 16:29:57.000000000 +0100
++++ epgsearch-0.9.20-tg/quickepgsearch.c 2007-02-02 10:08:43.000000000 +0100
+@@ -8,262 +8,105 @@
+ #include <vdr/plugin.h>
+ #include <vdr/i18n.h>
+ #include "services.h"
++#include "mainmenushortcut.h"
+
+ static const char VERSION[] = "0.0.1";
+ static const char DESCRIPTION[] = "Quick search for broadcasts";
+ static const char MAINMENUENTRY[] = "Quick search";
+-int showInMain=1;
++static const char SETUPTEXT[] = "Show in main menu";
+
+
+-const tI18nPhrase Phrases[] = {
+- { "Quick search for broadcasts",
+- "Schnelle Suche nach Sendungen",// Deutsch
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Pikahaku ohjelmaoppaalle",// suomi
+- "",// TODO Polski
+- "",// TODO Español
+- "",// TODO ÅëëçíéêÜ (Greek)
+- "",// TODO Svenska
+- "",// TODO Romaneste
+- "",// TODO Magyar
+- "",// TODO Català
+- "",// TODO ÀãááÚØÙ (Russian)
+- "",// TODO Hrvatski (Croatian)
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Quick search",
+- "Schnellsuche",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Pikahaku",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "This version of EPGSearch does not support this service!",
+- "Diese Version von EPGSearch unterstützt diesen Dienst nicht!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennos ei tarjoa vaadittavaa palvelua!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "EPGSearch does not exist!",
+- "EPGSearch nicht vorhanden!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "EPGSearch-laajennosta ei löydy!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Plugin needs vdr-1.3.30 or above!",
+- "Plugin benötigt vdr-1.3.30 oder höher!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Laajennos tarvitsee toimiakseen vähintään vdr-1.3.30!",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- },
+- { "Show in main menu",
+- "Im Hauptmenü anzeigen",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "Näytä valinta päävalikossa",
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "",// TODO
+- "", // Eesti
+- "", // Dansk
+- "", // Czech
+- }, { NULL }
+- };
+-
+-class cMenuQuicksearchSetup : public cMenuSetupPage {
+- private:
+- virtual void Setup(void)
+- {
+- Add(new cMenuEditBoolItem(tr("Show in main menu"), &showInMain, tr("no"), tr("yes")));
+- }
+- protected:
+- virtual void Store(void)
+- {
+- SetupStore("QuickEPGSearchInMain", showInMain);
+- }
+- public:
+- cMenuQuicksearchSetup(void)
+- {
+- Setup();
+- };
+- };
+-
+-
+-class cPluginQuicksearch : public cPlugin {
+-private:
+-public:
+- cPluginQuicksearch(void);
+- virtual ~cPluginQuicksearch();
+- virtual const char *Version(void) { return VERSION; }
+- virtual const char *Description(void) { return tr(DESCRIPTION); }
+- virtual const char *CommandLineHelp(void);
+- virtual bool ProcessArgs(int argc, char *argv[]);
+- virtual bool Initialize(void);
+- virtual bool Start(void);
+- virtual void Stop(void);
+- virtual void Housekeeping(void);
+- virtual const char *MainMenuEntry(void) { if (showInMain) return tr(MAINMENUENTRY); else return NULL; }
+- virtual cOsdObject *MainMenuAction(void);
+- virtual cMenuSetupPage *SetupMenu(void);
+- virtual bool SetupParse(const char *Name, const char *Value);
+- };
+-
+-cPluginQuicksearch::cPluginQuicksearch(void)
+-{
+-}
+-
+-cPluginQuicksearch::~cPluginQuicksearch()
+-{
+-}
+-
+-const char *cPluginQuicksearch::CommandLineHelp(void)
+-{
+- return NULL;
+-}
+-
+-bool cPluginQuicksearch::ProcessArgs(int argc, char *argv[])
+-{
+- return true;
+-}
+-
+-bool cPluginQuicksearch::Initialize(void)
+-{
+- RegisterI18n(Phrases);
+- return true;
+-}
+-
+-bool cPluginQuicksearch::Start(void)
+-{
+- return true;
+-}
+-
+-void cPluginQuicksearch::Stop(void)
++const tI18nPhrase Phrases[] =
+ {
+-}
+-
+-void cPluginQuicksearch::Housekeeping(void)
+-{
+-}
+-
+-cOsdObject *cPluginQuicksearch::MainMenuAction(void)
+-{
+- cPlugin *p = cPluginManager::GetPlugin("epgsearch");
+- if (p)
+ {
+- Epgsearch_quicksearch_v1_0* serviceData = new Epgsearch_quicksearch_v1_0;
+- serviceData->pSearchMenu = NULL;
+-
+- cOsdMenu* pMenu = NULL;
+- if (p->Service("Epgsearch-quicksearch-v1.0", serviceData))
+- pMenu = serviceData->pSearchMenu;
+- else
+- Skins.Message(mtError, tr("This version of EPGSearch does not support this service!"));
+-
+- delete serviceData;
+-
+- if (pMenu)
+- return pMenu;
+- else
+- return NULL;
+- }
+- else
++ "Quick search for broadcasts",
++ "Schnelle Suche nach Sendungen",// Deutsch
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Pikahaku ohjelmaoppaalle",// suomi
++ "",// TODO Polski
++ "",// TODO Español
++ "",// TODO ÅëëçíéêÜ (Greek)
++ "",// TODO Svenska
++ "",// TODO Romaneste
++ "",// TODO Magyar
++ "",// TODO Català
++ "",// TODO ÀãááÚØÙ (Russian)
++ "",// TODO Hrvatski (Croatian)
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
+ {
+- Skins.Message(mtError, tr("EPGSearch does not exist!"));
+- return NULL;
+- }
+-
+- return NULL;
+-}
+-
+-bool cPluginQuicksearch::SetupParse(const char *Name, const char *Value)
++ "Quick search",
++ "Schnellsuche",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Pikahaku",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ {
++ "Show in main menu",
++ "Im Hauptmenü anzeigen",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "Näytä valinta päävalikossa",
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "",// TODO
++ "", // Eesti
++ "", // Dansk
++ "", // Czech
++ },
++ { NULL }
++};
++
++class cPluginQuicksearch : public cMainMenuShortcut
+ {
+- if (!strcasecmp(Name, "QuickEPGSearchInMain")) showInMain = atoi(Value);
+- return true;
+-}
++ public:
++ virtual const char* Version() { return VERSION; }
++ virtual const char* Description() { return tr(DESCRIPTION); }
++ virtual bool Initialize();
++ virtual cOsdObject* MainMenuAction() { return GetEpgSearchMenu("Epgsearch-quicksearch-v1.0"); };
++
++ protected:
++ virtual const char* SetupText() { return tr(SETUPTEXT); }
++ virtual const char* MainMenuText() { return tr(MAINMENUENTRY); };
++};
+
+-cMenuSetupPage *cPluginQuicksearch::SetupMenu(void)
++bool cPluginQuicksearch::Initialize()
+ {
+- return new cMenuQuicksearchSetup;
++ RegisterI18n(Phrases);
++ return cMainMenuShortcut::Initialize();
+ }
+
+ VDRPLUGINCREATOR(cPluginQuicksearch); // Don't touch this!
+diff -Nur epgsearch-0.9.20/services.h epgsearch-0.9.20-tg/services.h
+--- epgsearch-0.9.20/services.h 2007-01-25 19:23:31.000000000 +0100
++++ epgsearch-0.9.20-tg/services.h 2007-02-02 10:08:43.000000000 +0100
+@@ -4,6 +4,7 @@
+ #include <string>
+ #include <list>
+ #include <memory>
++#include <vdr/osdbase.h>
+
+ // Data structure for service "Epgsearch-search-v1.0"
+ struct Epgsearch_search_v1_0
+@@ -45,20 +46,12 @@
+ eMessageType type;
+ };
+
+-// Data structure for service "Epgsearch-searchmenu-v1.0"
+-struct Epgsearch_searchmenu_v1_0
++// Data structure for service "EpgsearchMenu-v1.0"
++struct EpgSearchMenu_v1_0
+ {
+ // in
+ // out
+- cOsdMenu* pSearchMenu; // pointer to the search menu
+-};
+-
+-// Data structure for service "Epgsearch-conflictmenu-v1.0"
+-struct Epgsearch_conflictmenu_v1_0
+-{
+-// in
+-// out
+- cOsdMenu* pConflictMenu; // pointer to the conflict menu
++ cOsdMenu* Menu; // pointer to the menu
+ };
+
+ // Data structure for service "Epgsearch-lastconflictinfo-v1.0"
+@@ -106,14 +99,6 @@
+ bool success; // result
+ };
+
+-// Data structure for service "Epgsearch-quicksearch-v1.0"
+-struct Epgsearch_quicksearch_v1_0
+-{
+-// in
+-// out
+- cOsdMenu* pSearchMenu; // pointer to the search menu
+-};
+-
+ // Data structures for service "Epgsearch-services-v1.0"
+ class cServiceHandler
+ {
More information about the pkg-vdr-dvb-changes
mailing list