summaryrefslogtreecommitdiff
path: root/mainmenushortcut.c
diff options
context:
space:
mode:
Diffstat (limited to 'mainmenushortcut.c')
-rw-r--r--mainmenushortcut.c170
1 files changed, 170 insertions, 0 deletions
diff --git a/mainmenushortcut.c b/mainmenushortcut.c
new file mode 100644
index 0000000..b66a11d
--- /dev/null
+++ b/mainmenushortcut.c
@@ -0,0 +1,170 @@
+/*
+Copyright (C) 2004-2007 Christian Wieninger
+
+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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+
+The author can be reached at cwieninger@gmx.de
+
+The project's page is at http://winni.vdr-developer.org/epgsearch
+*/
+
+#include <string>
+#include <list>
+#include <memory>
+#include <set>
+#include <vdr/plugin.h>
+#include "i18n.h"
+#include "services.h"
+#include "mainmenushortcut.h"
+
+static const char SETUPENTRY[] = "MainMenuEntryEnabled";
+
+#if APIVERSNUM < 10507
+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 }
+};
+#endif
+
+cMainMenuShortcutSetupPage::cMainMenuShortcutSetupPage(const char* setupText, const char* setupEntry,
+ int* const setupValue)
+:_setupEntry(setupEntry), _setupValue(setupValue)
+{
+ Add(new cMenuEditBoolItem(setupText, _setupValue, trVDR("no"), trVDR("yes")));
+};
+
+void cMainMenuShortcutSetupPage::Store()
+{
+ SetupStore(_setupEntry, *_setupValue);
+}
+
+cMainMenuShortcut::cMainMenuShortcut()
+:_mainMenuEntryEnabled(1)
+{
+}
+
+cMainMenuShortcut::~cMainMenuShortcut()
+{
+#if APIVERSNUM < 10507
+ I18nRegister(NULL, PLUGIN_NAME_I18N);
+#endif
+}
+
+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()
+{
+#if APIVERSNUM < 10507
+ I18nRegister(Phrases, PLUGIN_NAME_I18N);
+#endif
+ 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;
+ }
+}