Feature #334 ยป yaepghd-ext-patch-v3.diff
yaepghd-ext-patch-v3/HISTORY 2010-08-08 17:39:34.401004736 +0200 | ||
---|---|---|
- Fixed a bug in channel listing (Rolf Ahrenberg).
|
||
- Fixed theme selection on the setup page (Rolf Ahrenberg).
|
||
- Fixed cPlugin::ConfigDirectory() to called only from main thread (Rolf Ahrenberg).
|
||
2010: Version 0.0.2beta
|
||
- Use vdr function for channel switching (Rolf Ahrenberg).
|
||
- Add makefile option for debuging output (Rolf Ahrenberg).
|
||
- Fixed a bug in setup menu (Rolf Ahrenberg).
|
||
- Changed compile options in makefile (Rolf Ahrenberg).
|
||
- Added ability to set timers and show event info (gnapheus,tomas))
|
||
- Changed date generation (CR7, tomas))
|
||
- Replace newlines with spaces in EPG Description for e.g tvmovieepg (tomas)
|
||
- Changed makefile for vdr 1.7.10
|
||
- fixed display of wrong week day (tomas)
|
||
- new MainMenuHooks patch (gnapheus, Joe_D).
|
||
- Fixed hide main menu entry(gnapheus)
|
||
yaepghd-ext-patch-v3/Makefile 2010-08-08 17:39:34.401004736 +0200 | ||
---|---|---|
#
|
||
# Makefile for a Video Disk Recorder plugin
|
||
#
|
||
# $Id$
|
||
# Use Reel eHD card
|
||
#YAEPGHD_REEL_EHD = 1
|
||
# $Id: Makefile 1.2 2010/02/06 14:50:03 kls Exp $
|
||
# The official name of this plugin.
|
||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||
# By default the main source file also carries this name.
|
||
# IMPORTANT: the presence of this macro is important for the Make.config
|
||
# file. So it must be defined, even if it is not used here!
|
||
#
|
||
# Use Reel eHD card
|
||
#YAEPGHD_REEL_EHD = 1
|
||
PLUGIN = yaepghd
|
||
### The version number of this plugin (taken from the main source file):
|
||
... | ... | |
LIBDIR = ../../lib
|
||
TMPDIR = /tmp
|
||
### Make sure that necessary options are included:
|
||
include $(VDRDIR)/Make.global
|
||
### Allow user defined options to overwrite defaults:
|
||
-include $(VDRDIR)/Make.config
|
||
... | ... | |
### The object files (add further files here):
|
||
OBJS = $(PLUGIN).o
|
||
OBJS = $(PLUGIN).o
|
||
### The main target:
|
||
yaepghd-ext-patch-v3/patches/MainMenuHooks.patch 2010-08-08 17:39:34.411005891 +0200 | ||
---|---|---|
--- vdr-1.6.0/menu.c.orig 2008-03-16 12:15:28.000000000 +0100
|
||
+++ vdr-1.6.0/menu.c 2010-08-01 09:22:52.000000000 +0200
|
||
@@ -2973,15 +2973,31 @@
|
||
|
||
// Initial submenus:
|
||
|
||
+ cOsdObject *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)
|
||
+ if (menu->IsMenu())
|
||
+ AddSubMenu((cOsdMenu *) menu);
|
||
}
|
||
|
||
cOsdObject *cMenuMain::PluginOsdObject(void)
|
||
@@ -3096,13 +3112,34 @@
|
||
eOSState state = cOsdMenu::ProcessKey(Key);
|
||
HadSubMenu |= HasSubMenu();
|
||
|
||
+ cOsdObject *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) {
|
||
@@ -3154,6 +3191,12 @@
|
||
default: break;
|
||
}
|
||
}
|
||
+ if (menu) {
|
||
+ if (menu->IsMenu())
|
||
+ return AddSubMenu((cOsdMenu *) menu);
|
||
+ pluginOsdObject = menu;
|
||
+ return osPlugin;
|
||
+ }
|
||
if (!HasSubMenu() && Update(HadSubMenu))
|
||
Display();
|
||
if (Key != kNone) {
|
||
--- vdr-1.6.0/config.h.orig 2008-03-23 11:26:10.000000000 +0100
|
||
+++ vdr-1.6.0/config.h 2010-08-01 09:17:00.000000000 +0200
|
||
@@ -36,6 +36,8 @@
|
||
// plugins to work with newer versions of the core VDR as long as no
|
||
// VDR header files have changed.
|
||
|
||
+#define MAINMENUHOOKSVERSION "1.1.0"
|
||
+#define MAINMENUHOOKSVERSNUM 10100 // Version * 10000 + Major * 100 + Minor
|
||
+
|
||
#define MAXPRIORITY 99
|
||
#define MAXLIFETIME 99
|
||
|
yaepghd-ext-patch-v3/patches/vdr-1.6.0-yaepghd.patch 2010-08-08 17:39:34.411005891 +0200 | ||
---|---|---|
#define APIVERSION "1.6.0"
|
||
#define APIVERSNUM 10600 // Version * 10000 + Major * 100 + Minor
|
||
|
||
+#define YAEPGHDVERSNUM 1
|
||
+#define YAEPGHDVERSNUM 2
|
||
+
|
||
// When loading plugins, VDR searches them by their APIVERSION, which
|
||
// may be smaller than VDRVERSION in case there have been no changes to
|
||
// VDR header files since the last APIVERSION. This allows compiled
|
||
diff -Nru vdr-1.6.0-vanilla/device.h vdr-1.6.0-yaepghd/device.h
|
||
--- vdr-1.6.0-vanilla/device.h 2008-02-23 15:13:04.000000000 +0200
|
||
+++ vdr-1.6.0-yaepghd/device.h 2009-01-24 23:34:01.000000000 +0200
|
||
@@ -242,12 +242,12 @@
|
||
///< Direction (only the sign of Direction is evaluated, positive values
|
||
///< switch to higher channel numbers).
|
||
private:
|
||
- eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView);
|
||
- ///< Sets the device to the given channel (general setup).
|
||
protected:
|
||
virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
|
||
///< Sets the device to the given channel (actual physical setup).
|
||
public:
|
||
+ eSetChannelResult SetChannel(const cChannel *Channel, bool LiveView);
|
||
+ ///< Sets the device to the given channel (general setup).
|
||
static int CurrentChannel(void) { return primaryDevice ? currentChannel : 0; }
|
||
///< Returns the number of the current channel on the primary device.
|
||
static void SetCurrentChannel(const cChannel *Channel) { currentChannel = Channel ? Channel->Number() : 0; }
|
||
diff -Nru vdr-1.6.0-vanilla/dvbosd.c vdr-1.6.0-yaepghd/dvbosd.c
|
||
--- vdr-1.6.0-vanilla/dvbosd.c 2007-09-16 11:55:54.000000000 +0300
|
||
+++ vdr-1.6.0-yaepghd/dvbosd.c 2009-01-24 23:40:51.000000000 +0200
|
yaepghd-ext-patch-v3/patches/vdr-1.7.14-yaepghd.diff 2010-08-08 17:39:34.411005891 +0200 | ||
---|---|---|
diff -Naur ./vdr-vanilla/config.h ./vdr-yaepghd/config.h
|
||
--- ./vdr-vanilla/config.h 2010-05-22 02:38:34.600962000 -0400
|
||
+++ ./vdr-yaepghd/config.h 2010-05-22 02:47:13.956960932 -0400
|
||
@@ -36,6 +36,8 @@
|
||
// plugins to work with newer versions of the core VDR as long as no
|
||
// VDR header files have changed.
|
||
|
||
+#define YAEPGHDVERSNUM 2
|
||
+
|
||
#define MAXPRIORITY 99
|
||
#define MAXLIFETIME 99
|
||
|
||
diff -Naur ./vdr-vanilla/osd.c ./vdr-yaepghd/osd.c
|
||
--- ./vdr-vanilla/osd.c 2010-05-22 02:38:34.632966839 -0400
|
||
+++ ./vdr-yaepghd/osd.c 2010-05-22 02:41:30.884960821 -0400
|
||
@@ -753,6 +753,7 @@
|
||
width = height = 0;
|
||
level = Level;
|
||
active = false;
|
||
+ vidWin.bpp = 0;
|
||
for (int i = 0; i < Osds.Size(); i++) {
|
||
if (Osds[i]->level > level) {
|
||
Osds.Insert(this, i);
|
||
diff -Naur ./vdr-vanilla/osd.h ./vdr-yaepghd/osd.h
|
||
--- ./vdr-vanilla/osd.h 2010-05-22 02:38:34.636967919 -0400
|
||
+++ ./vdr-yaepghd/osd.h 2010-05-22 02:41:30.868981878 -0400
|
||
@@ -270,6 +270,8 @@
|
||
int left, top, width, height;
|
||
uint level;
|
||
bool active;
|
||
+public:
|
||
+ tArea vidWin;
|
||
protected:
|
||
cOsd(int Left, int Top, uint Level);
|
||
///< Initializes the OSD with the given coordinates.
|
||
diff -Naur ./vdr-vanilla/PLUGINS/src/dvbsddevice/dvbsdffosd.c ./vdr-yaepghd/PLUGINS/src/dvbsddevice/dvbsdffosd.c
|
||
--- ./vdr-vanilla/PLUGINS/src/dvbsddevice/dvbsdffosd.c 2010-05-22 02:38:34.576963926 -0400
|
||
+++ ./vdr-yaepghd/PLUGINS/src/dvbsddevice/dvbsdffosd.c 2010-05-22 02:45:03.324961972 -0400
|
||
@@ -51,6 +51,10 @@
|
||
osdMem = cap.val;
|
||
#endif
|
||
}
|
||
+ if (vidWin.bpp != 0) {
|
||
+ Cmd(OSD_SetWindow, 0, 5);
|
||
+ Cmd(OSD_Close);
|
||
+ }
|
||
}
|
||
|
||
cDvbSdFfOsd::~cDvbSdFfOsd()
|
||
@@ -196,6 +200,10 @@
|
||
Cmd(OSD_SetWindow, 0, i + 1);
|
||
Cmd(OSD_MoveWindow, 0, Left() + Bitmap->X0(), Top() + Bitmap->Y0());
|
||
}
|
||
+ if (vidWin.bpp != 0) {
|
||
+ Cmd(OSD_SetWindow, 0, 5);
|
||
+ Cmd(OSD_OpenRaw, vidWin.bpp, vidWin.x1, vidWin.y1, vidWin.x2, vidWin.y2, NULL);
|
||
+ }
|
||
shown = true;
|
||
}
|
||
}
|
yaepghd-ext-patch-v3/po/de_DE.po 2010-08-08 18:00:15.981005719 +0200 | ||
---|---|---|
msgstr ""
|
||
"Project-Id-Version: Yaepghd 0.0.1\n"
|
||
"Report-Msgid-Bugs-To: <see README>\n"
|
||
"POT-Creation-Date: 2009-01-30 20:42+0200\n"
|
||
"POT-Creation-Date: 2010-08-07 20:31+0200\n"
|
||
"PO-Revision-Date: 2009-01-28 10:51+0200\n"
|
||
"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
|
||
"Language-Team: <vdr@linuxtv.org>\n"
|
||
... | ... | |
msgid "No Info"
|
||
msgstr "Keine Daten verf?gbar."
|
||
msgid "Screenshot"
|
||
msgstr ""
|
||
#, fuzzy
|
||
msgid "Timer"
|
||
msgstr "Zeit-Format"
|
||
msgid "Page up"
|
||
msgstr ""
|
||
msgstr "Seite hoch"
|
||
msgid "Page down"
|
||
msgstr ""
|
||
msgstr "Seite runter"
|
||
msgid "Once"
|
||
msgstr "Sobald"
|
||
... | ... | |
msgstr "Frequenz"
|
||
msgid "24h"
|
||
msgstr ""
|
||
msgstr "24h"
|
||
msgid "12h"
|
||
msgstr ""
|
||
msgstr "12h"
|
||
msgid "Up"
|
||
msgstr ""
|
||
msgstr "Hoch"
|
||
msgid "Down"
|
||
msgstr ""
|
||
msgstr "Runter"
|
||
msgid "Manual"
|
||
msgstr ""
|
||
msgstr "Manuell"
|
||
msgid "Semi-automatic"
|
||
msgstr ""
|
||
msgstr "Halbautomatisch"
|
||
msgid "Automatic"
|
||
msgstr ""
|
||
msgstr "Automatisch"
|
||
msgid "Hide mainmenu entry"
|
||
msgstr "Hauptmen?eintrag verstecken"
|
||
... | ... | |
msgstr ""
|
||
msgid "Channel change"
|
||
msgstr ""
|
||
msgstr "Kanal wechseln"
|
||
msgid "Time format"
|
||
msgstr "Zeit-Format"
|
||
msgstr "Zeitformat"
|
||
msgid "Channel order"
|
||
msgstr ""
|
||
msgstr "Kanalreihenfolge"
|
||
msgid "Channel number"
|
||
msgstr "Kanalnummer"
|
||
msgid "Yet another EPG in HD"
|
||
msgstr ""
|
||
msgstr "Yet another EPG in HD"
|
||
msgid "YaepgHD"
|
||
msgstr ""
|
||
msgstr "YaepgHD"
|
yaepghd-ext-patch-v3/po/fi_FI.po 2010-08-08 18:00:15.991005693 +0200 | ||
---|---|---|
msgstr ""
|
||
"Project-Id-Version: Yaepghd 0.0.1\n"
|
||
"Report-Msgid-Bugs-To: <see README>\n"
|
||
"POT-Creation-Date: 2009-01-30 20:42+0200\n"
|
||
"POT-Creation-Date: 2010-08-07 20:31+0200\n"
|
||
"PO-Revision-Date: 2009-01-28 10:51+0200\n"
|
||
"Last-Translator: Rolf Ahrenberg <rahrenbe@cc.hut.fi>\n"
|
||
"Language-Team: <vdr@linuxtv.org>\n"
|
||
... | ... | |
msgid "No Info"
|
||
msgstr "Ei tietoja"
|
||
msgid "Screenshot"
|
||
msgstr "Ota kuva"
|
||
#, fuzzy
|
||
msgid "Timer"
|
||
msgstr "Kellonajan esitysmuoto"
|
||
msgid "Page up"
|
||
msgstr "Sivu ylรถs"
|
||
... | ... | |
msgstr "Piilota valinta pรครคvalikosta"
|
||
msgid "Replace original schedule"
|
||
msgstr "Korvaa alkuperรคinen ohjelmaopas"
|
||
msgstr ""
|
||
msgid "Channel change"
|
||
msgstr "Kanavanvaihto"
|
||
... | ... | |
msgstr "Kellonajan esitysmuoto"
|
||
msgid "Channel order"
|
||
msgstr "Kanavajรคrjestys"
|
||
#, fuzzy
|
||
msgid "Channel number"
|
||
msgstr "Kanavajรคrjetys"
|
||
msgid "Yet another EPG in HD"
|
||
... | ... | |
msgid "YaepgHD"
|
||
msgstr "Ohjelmaopas (YaepgHD)"
|
||
#~ msgid "Screenshot"
|
||
#~ msgstr "Ota kuva"
|
yaepghd-ext-patch-v3/po/fr_FR.po 2010-08-08 18:00:16.001006115 +0200 | ||
---|---|---|
# VDR plugin language source file.
|
||
# Copyright (C) 2009 bball <bball950@yahoo.com>
|
||
# This file is distributed under the same license as the yaepghd package.
|
||
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: Yaepghd 0.0.1\n"
|
||
"Report-Msgid-Bugs-To: <see README>\n"
|
||
"POT-Creation-Date: 2010-08-07 20:31+0200\n"
|
||
"PO-Revision-Date: 2009-01-28 10:51+0200\n"
|
||
"Last-Translator: Klaus Schmidinger <kls@cadsoft.de>\n"
|
||
"Language-Team: <vdr@linuxtv.org>\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
msgid "No Info"
|
||
msgstr "Aucune donn?es."
|
||
#, fuzzy
|
||
msgid "Timer"
|
||
msgstr "Format horaire"
|
||
msgid "Page up"
|
||
msgstr "Page vers le haut"
|
||
msgid "Page down"
|
||
msgstr "Page vers le bas"
|
||
msgid "Once"
|
||
msgstr "Une fois"
|
||
msgid "Every day"
|
||
msgstr "Tous les jours"
|
||
msgid "Mon-Fri"
|
||
msgstr "Lu-Ve"
|
||
msgid "Sun-Sat"
|
||
msgstr "Sam-Dim"
|
||
msgid "Start"
|
||
msgstr "D?marrer"
|
||
msgid "Stop"
|
||
msgstr "Arreter"
|
||
msgid "Frequency"
|
||
msgstr "Fr?quence"
|
||
msgid "24h"
|
||
msgstr "24h"
|
||
msgid "12h"
|
||
msgstr "12h"
|
||
msgid "Up"
|
||
msgstr "Haut"
|
||
msgid "Down"
|
||
msgstr "Bas"
|
||
msgid "Manual"
|
||
msgstr "Manuel"
|
||
msgid "Semi-automatic"
|
||
msgstr "Semi-automatique"
|
||
msgid "Automatic"
|
||
msgstr "Automatique"
|
||
msgid "Hide mainmenu entry"
|
||
msgstr "Cacher dans le menu principal"
|
||
msgid "Replace original schedule"
|
||
msgstr "Remplacer le guide des programmes original"
|
||
msgid "Channel change"
|
||
msgstr "Changement de cha?ne"
|
||
msgid "Time format"
|
||
msgstr "Format horaire"
|
||
msgid "Channel order"
|
||
msgstr "Ordre des cha?nes"
|
||
#, fuzzy
|
||
msgid "Channel number"
|
||
msgstr "Ordre des cha?nes"
|
||
msgid "Yet another EPG in HD"
|
||
msgstr "Yet another EPG in HD"
|
||
msgid "YaepgHD"
|
||
msgstr "YaepgHD"
|
||
#~ msgid "Screenshot"
|
||
#~ msgstr "Capture d'?cran"
|
yaepghd-ext-patch-v3/po/it_IT.po 2010-08-08 18:00:16.021004666 +0200 | ||
---|---|---|
# VDR plugin language source file.
|
||
# Copyright (C) 2009 bball <bball950@yahoo.com>
|
||
# This file is distributed under the same license as the yaepghd package.
|
||
#
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: Yaepghd 0.0.1\n"
|
||
"Report-Msgid-Bugs-To: <see README>\n"
|
||
"POT-Creation-Date: 2010-08-07 20:31+0200\n"
|
||
"PO-Revision-Date: 2009-02-08 23:04+0100\n"
|
||
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
|
||
"Language-Team: <vdr@linuxtv.org>\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=utf-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
"X-Poedit-Language: Italian\n"
|
||
"X-Poedit-Country: ITALY\n"
|
||
"X-Poedit-SourceCharset: utf-8\n"
|
||
msgid "No Info"
|
||
msgstr "Nessuna informazione"
|
||
#, fuzzy
|
||
msgid "Timer"
|
||
msgstr "Formato ora"
|
||
msgid "Page up"
|
||
msgstr "Pagina su"
|
||
msgid "Page down"
|
||
msgstr "Pagina giรน"
|
||
msgid "Once"
|
||
msgstr "Una volta"
|
||
msgid "Every day"
|
||
msgstr "Ogni giorno"
|
||
msgid "Mon-Fri"
|
||
msgstr "Lu-Ve"
|
||
msgid "Sun-Sat"
|
||
msgstr "Do-Sa"
|
||
msgid "Start"
|
||
msgstr "Inizio"
|
||
msgid "Stop"
|
||
msgstr "Fine"
|
||
msgid "Frequency"
|
||
msgstr "Frequenza"
|
||
msgid "24h"
|
||
msgstr "24h"
|
||
msgid "12h"
|
||
msgstr "12h"
|
||
msgid "Up"
|
||
msgstr "Su"
|
||
msgid "Down"
|
||
msgstr "Giรน"
|
||
msgid "Manual"
|
||
msgstr "Manuale"
|
||
msgid "Semi-automatic"
|
||
msgstr "Semi automatico"
|
||
msgid "Automatic"
|
||
msgstr "Automatico"
|
||
msgid "Hide mainmenu entry"
|
||
msgstr "Nascondi voce menu principale"
|
||
msgid "Replace original schedule"
|
||
msgstr "Sostituisci programmazione originale"
|
||
msgid "Channel change"
|
||
msgstr "Cambio canale"
|
||
msgid "Time format"
|
||
msgstr "Formato ora"
|
||
msgid "Channel order"
|
||
msgstr "Ordine canale"
|
||
#, fuzzy
|
||
msgid "Channel number"
|
||
msgstr "Ordine canale"
|
||
msgid "Yet another EPG in HD"
|
||
msgstr "Un altro gestore EPG in HD"
|
||
msgid "YaepgHD"
|
||
msgstr "YaepgHD"
|
||
#~ msgid "Screenshot"
|
||
#~ msgstr "Schermata"
|
yaepghd-ext-patch-v3/README 2010-08-08 17:39:34.411005891 +0200 | ||
---|---|---|
tar -xzf /put/your/path/here/vdr-yaepghd-X.Y.Z.tgz
|
||
ln -s yaepghd-X.Y.Z yaepghd
|
||
cd /put/your/path/here/VDR
|
||
patch -p1 < PLUGINS/src/yaepghd/patches/vdr-X.Y.Z-yaepghd.patch
|
||
patch -p1 < PLUGINS/src/yaepghd/patches/vdr-X.Y.Z-yaepghd.patch # Optional
|
||
cp -R PLUGINS/src/yaepghd/yaepghd /path/to/vdrconf/plugins/
|
||
make
|
||
make plugins
|
||
... | ... | |
Notes:
|
||
- Yaepghd patch provides an optional VDR API modications for scaling
|
||
video window. The video stays untouched without the patch.
|
||
- Video window doesn't scale back to normal when quiting the plugin
|
||
with FF cards.
|
||
yaepghd-ext-patch-v3/yaepghd/default.theme 2010-08-08 17:47:16.961005000 +0200 | ||
---|---|---|
eventTimeFont="Accidental Presidency;20"
|
||
eventDescFont="Accidental Presidency;20"
|
||
eventDateFont="Accidental Presidency;20"
|
||
eventInfoFont="Accidental Presidency;20"
|
||
gridEventColor=FFFFFFFF
|
||
gridSelFg=FF000000
|
||
gridSelBg=FFF8AF31
|
||
... | ... | |
eventTimeColor=FF1B537C
|
||
eventDescColor=FFFFFFFF
|
||
eventDateColor=FF1B537C
|
||
eventInfoColor=FF1B537C
|
||
tlineBoxColor=FFFFFFFF
|
||
gridEventGeom=154,288,516,234
|
||
gridChanGeom=25,288,113,234
|
||
gridTimeGeom=154,251,516,32
|
||
gridDateGeom=25,251,113,32
|
||
eventTitleGeom=144,20,306,70
|
||
eventTimeGeom=144,96,306,37
|
||
eventTimeGeom=144,96,156,37
|
||
eventDescGeom=25,135,425,115
|
||
eventDateGeom=25,96,117,37
|
||
eventInfoGeom=300,96,100,37
|
||
tlineLocGeom=154,283,516,3
|
||
tlineBoxGeom=0,0,9,3
|
||
vidWinGeom=456,32,196,130
|
yaepghd-ext-patch-v3/yaepghd.c 2010-08-08 17:50:20.583505135 +0200 | ||
---|---|---|
#include <vdr/osd.h>
|
||
#include <vdr/device.h>
|
||
#include <vdr/thread.h>
|
||
#ifndef YAEPGHDVERSNUM
|
||
#error "You must apply the yaepghd patch for VDR!"
|
||
#endif
|
||
#include <vdr/player.h>
|
||
#include <vdr/timers.h>
|
||
#if defined(APIVERSNUM) && APIVERSNUM < 10600
|
||
#error "VDR-1.6.0 API version or greater is required!"
|
||
... | ... | |
/**
|
||
* Macros
|
||
*/
|
||
#define WO_MSG_RECDLG // RecDlg and Msg is not used yet
|
||
#ifdef DEBUG
|
||
#define ASSERT assert
|
||
... | ... | |
#define GRID_TIME_FONT THEME_FONT("gridTimeFont")
|
||
#define GRID_DATE_FONT THEME_FONT("gridDateFont")
|
||
#define EVENT_TITLE_FONT THEME_FONT("eventTitleFont")
|
||
#define EVENT_INFO_FONT THEME_FONT("eventInfoFont")
|
||
#define EVENT_TIME_FONT THEME_FONT("eventTimeFont")
|
||
#define EVENT_DESC_FONT THEME_FONT("eventDescFont")
|
||
#define EVENT_DATE_FONT THEME_FONT("eventDateFont")
|
||
... | ... | |
#define GRID_DATE_COLOR THEME_COLOR("gridDateColor")
|
||
#define GRID_SEP_COLOR THEME_COLOR("gridSepColor")
|
||
#define EVENT_TITLE_COLOR THEME_COLOR("eventTitleColor")
|
||
#define EVENT_INFO_COLOR THEME_COLOR("eventInfoColor")
|
||
#define EVENT_TIME_COLOR THEME_COLOR("eventTimeColor")
|
||
#define EVENT_DESC_COLOR THEME_COLOR("eventDescColor")
|
||
#define EVENT_DATE_COLOR THEME_COLOR("eventDateColor")
|
||
... | ... | |
#define GRID_TIME_GEOM THEME_GEOM("gridTimeGeom")
|
||
#define GRID_DATE_GEOM THEME_GEOM("gridDateGeom")
|
||
#define EVENT_TITLE_GEOM THEME_GEOM("eventTitleGeom")
|
||
#define EVENT_INFO_GEOM THEME_GEOM("eventInfoGeom")
|
||
#define EVENT_TIME_GEOM THEME_GEOM("eventTimeGeom")
|
||
#define EVENT_DESC_GEOM THEME_GEOM("eventDescGeom")
|
||
#define EVENT_DATE_GEOM THEME_GEOM("eventDateGeom")
|
||
... | ... | |
#define TEXT_BORDER THEME_IVAL("textBorder")
|
||
#define TEXT_SPACE THEME_IVAL("textSpace")
|
||
#ifndef WO_MSG_RECDLG
|
||
#define REC_DLG_IMG THEME_IMAGE("recDlgImage")
|
||
#define REC_DLG_FONT THEME_FONT("recDlgFont")
|
||
#define REC_DLG_COLOR THEME_COLOR("recDlgColor")
|
||
... | ... | |
#define MSG_BOX_FONT THEME_FONT("msgBoxFont")
|
||
#define MSG_BOX_COLOR THEME_COLOR("msgBoxColor")
|
||
#define MSG_BOX_GEOM THEME_GEOM("msgBoxGeom")
|
||
#endif
|
||
/* Manner in which channel is changed while in YAEPG */
|
||
enum eChanneChangeType {
|
||
... | ... | |
* Private Data
|
||
*/
|
||
static int iHideMenuEntry = false;
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
static int iReplaceOrgSchedule = false;
|
||
#endif
|
||
static int iChannelChange = CHANNEL_CHANGE_MANUAL;
|
||
static int iTimeFormat = TIME_FORMAT_12H;
|
||
static int iChannelOrder = CHANNEL_ORDER_DOWN;
|
||
static int iChannelNumber = false;
|
||
static std::string sThemeName = "default";
|
||
static std::string sThemeDir = "";
|
||
... | ... | |
AddElement("gridTimeFont", THEME_FONT);
|
||
AddElement("gridDateFont", THEME_FONT);
|
||
AddElement("eventTitleFont", THEME_FONT);
|
||
AddElement("eventInfoFont", THEME_FONT);
|
||
AddElement("eventTimeFont", THEME_FONT);
|
||
AddElement("eventDescFont", THEME_FONT);
|
||
AddElement("eventDateFont", THEME_FONT);
|
||
... | ... | |
AddElement("gridTimeColor", THEME_COLOR);
|
||
AddElement("gridDateColor", THEME_COLOR);
|
||
AddElement("eventTitleColor", THEME_COLOR);
|
||
AddElement("eventInfoColor", THEME_COLOR);
|
||
AddElement("eventTimeColor", THEME_COLOR);
|
||
AddElement("eventDescColor", THEME_COLOR);
|
||
AddElement("eventDateColor", THEME_COLOR);
|
||
... | ... | |
AddElement("gridTimeGeom", THEME_GEOM);
|
||
AddElement("gridDateGeom", THEME_GEOM);
|
||
AddElement("eventTitleGeom", THEME_GEOM);
|
||
AddElement("eventInfoGeom", THEME_GEOM);
|
||
AddElement("eventTimeGeom", THEME_GEOM);
|
||
AddElement("eventDescGeom", THEME_GEOM);
|
||
AddElement("eventDateGeom", THEME_GEOM);
|
||
... | ... | |
AddElement("textBorder", THEME_IVAL);
|
||
AddElement("textSpace", THEME_IVAL);
|
||
#ifndef WO_MSG_RECDLG
|
||
AddElement("recDlgImage", THEME_IMAGE);
|
||
AddElement("recDlgGeom", THEME_GEOM);
|
||
AddElement("recDlgColor", THEME_COLOR);
|
||
... | ... | |
AddElement("msgBoxFont", THEME_FONT);
|
||
AddElement("msgBoxGeom", THEME_GEOM);
|
||
AddElement("msgBoxColor", THEME_COLOR);
|
||
#endif
|
||
}
|
||
cYaepgTheme *
|
||
... | ... | |
*s-- = '\0';
|
||
}
|
||
/* Remove newlines in descriptions */
|
||
char *newlineText = tokText;
|
||
strreplace(newlineText, '\n', ' ');
|
||
|
||
|
||
/* Break text up into lines */
|
||
char *line, *nextLine = tokText;
|
||
... | ... | |
chanInfo[i].nameBox.FgColor(GRID_CHAN_COLOR);
|
||
chanInfo[i].nameBox.BgColor(clrTransparent);
|
||
chanInfo[i].nameBox.Flags((eTextFlags)(TBOX_VALIGN_LEFT | TBOX_HALIGN_CENTER));
|
||
chanInfo[i].nameBox.X(geom.x + (geom.w / 2));
|
||
|
||
if (iChannelNumber)
|
||
{
|
||
chanInfo[i].nameBox.X(geom.x + (geom.w / 2));
|
||
chanInfo[i].nameBox.W(geom.w / 2);
|
||
}
|
||
else
|
||
{
|
||
chanInfo[i].nameBox.X(geom.x);
|
||
chanInfo[i].nameBox.W(geom.w );
|
||
}
|
||
|
||
chanInfo[i].nameBox.Y(geom.y + ROUND((float)i * (chanRowHeight + (float)horizSpace)));
|
||
chanInfo[i].nameBox.W(geom.w / 2);
|
||
chanInfo[i].nameBox.H(ROUND(chanRowHeight));
|
||
chanInfo[i].nameBox.Generate();
|
||
... | ... | |
YAEPG_INFO("Drawing grid channels at (%d %d)", geom.x, geom.y);
|
||
for (int i = 0; i < (int)chanInfo.size(); i++) {
|
||
chanInfo[i].numBox.Draw(bmp);
|
||
if (iChannelNumber)
|
||
chanInfo[i].numBox.Draw(bmp);
|
||
chanInfo[i].nameBox.Draw(bmp);
|
||
}
|
||
}
|
||
... | ... | |
void
|
||
cYaepgGridDate::UpdateTime(time_t _t)
|
||
{
|
||
struct tm locTime;
|
||
sprintf(dateStr,"%s", *DateString(_t));
|
||
t = _t;
|
||
localtime_r(&t, &locTime);
|
||
snprintf(dateStr, sizeof(dateStr), "%s %d/%d",
|
||
*WeekDayName((locTime.tm_wday + 6) % 6), locTime.tm_mon, locTime.tm_mday);
|
||
Generate();
|
||
}
|
||
... | ... | |
box.Draw(bmp);
|
||
}
|
||
/*
|
||
*****************************************************************************
|
||
* cYaepgEventInfo
|
||
*****************************************************************************
|
||
*/
|
||
class cYaepgEventInfo {
|
||
private:
|
||
tGeom geom;
|
||
const cEvent *event;
|
||
cYaepgTextBox box;
|
||
public:
|
||
cYaepgEventInfo(const cEvent *_event);
|
||
void UpdateEvent(const cEvent *_event) { event = _event; Generate(); }
|
||
void Generate(void);
|
||
void Draw(cBitmap *bmp);
|
||
};
|
||
cYaepgEventInfo::cYaepgEventInfo(const cEvent *_event) :
|
||
event(_event)
|
||
{
|
||
geom = EVENT_INFO_GEOM;
|
||
Generate();
|
||
}
|
||
static const char *TimerMatchChars = " tT";
|
||
void
|
||
cYaepgEventInfo::Generate(void)
|
||
{
|
||
int timerMatch=tmNone;
|
||
Timers.GetMatch(event, &timerMatch);
|
||
char t = TimerMatchChars[timerMatch];
|
||
char v = event->Vps() && (event->Vps() - event->StartTime()) ? 'V' : ' ';
|
||
char r = event->SeenWithin(30) && event->IsRunning() ? '*' : ' ';
|
||
cString buffer;
|
||
buffer = cString::sprintf("%c %c %c", t, v, r);
|
||
|
||
box.Text(buffer);
|
||
box.Font(EVENT_INFO_FONT);
|
||
box.FgColor(EVENT_INFO_COLOR);
|
||
box.BgColor(clrTransparent);
|
||
box.Flags((eTextFlags)(TBOX_VALIGN_LEFT | TBOX_HALIGN_CENTER));
|
||
box.X(geom.x);
|
||
box.Y(geom.y);
|
||
box.W(geom.w);
|
||
box.H(geom.h);
|
||
box.Generate();
|
||
}
|
||
void
|
||
cYaepgEventInfo::Draw(cBitmap *bmp)
|
||
{
|
||
YAEPG_INFO("Drawing event info at (%d %d)", geom.x, geom.y);
|
||
box.Draw(bmp);
|
||
}
|
||
/*
|
||
*****************************************************************************
|
||
* cYaepgEventTime
|
||
... | ... | |
localtime_r(&t, &locTime);
|
||
if (iTimeFormat == TIME_FORMAT_24H) {
|
||
snprintf(timeStr, sizeof(timeStr), "%s %02d:%02d",
|
||
*WeekDayName((locTime.tm_wday + 6) % 6), locTime.tm_hour, locTime.tm_min);
|
||
*WeekDayName((locTime.tm_wday + 7) % 7), locTime.tm_hour, locTime.tm_min);
|
||
} else {
|
||
snprintf(timeStr, sizeof(timeStr), "%s %d:%02d%s",
|
||
*WeekDayName((locTime.tm_wday + 6) % 6),
|
||
*WeekDayName((locTime.tm_wday + 7) % 7),
|
||
FMT_12HR(locTime.tm_hour), locTime.tm_min,
|
||
FMT_AMPM(locTime.tm_hour));
|
||
}
|
||
... | ... | |
};
|
||
const char *cYaepgHelpBar::helpStrs[4] = {
|
||
trNOOP("Screenshot"),
|
||
trNOOP("Timer"),
|
||
trNOOP("Page up"),
|
||
trNOOP("Page down"),
|
||
trVDR("Button$Switch")
|
||
... | ... | |
for (int i = 0; i < 4; i++) {
|
||
boxes[i].Text(tr(helpStrs[i]));
|
||
boxes[i].Font(GRID_EVENT_FONT);
|
||
boxes[i].FgColor(GRID_EVENT_COLOR);
|
||
boxes[i].FgColor(EVENT_TITLE_COLOR);
|
||
boxes[i].BgColor(clrTransparent);
|
||
boxes[i].Flags((eTextFlags)(TBOX_VALIGN_LEFT | TBOX_HALIGN_CENTER));
|
||
boxes[i].X(geom.x + (i * boxWidth) + dotDiam);
|
||
... | ... | |
}
|
||
|
||
for (int i = 0; i < 4; i++) {
|
||
bmp->DrawEllipse(dots[i].x1, dots[i].y1,
|
||
dots[i].x2, dots[i].y2,
|
||
dots[i].color);
|
||
boxes[i].Draw(bmp);
|
||
}
|
||
}
|
||
... | ... | |
return state;
|
||
}
|
||
#ifndef WO_MSG_RECDLG
|
||
/*
|
||
*****************************************************************************
|
||
* cYaepgRecDlg
|
||
... | ... | |
t = event->StartTime();
|
||
localtime_r(&t, &locTime);
|
||
freqs[1][5] = ' ';
|
||
strcpy(&freqs[1][6], *WeekDayName((locTime.tm_wday + 6) % 6));
|
||
strcpy(&freqs[1][6], *WeekDayName((locTime.tm_wday + 7) % 7));
|
||
freqInput.UpdateStra((char **)freqs);
|
||
}
|
||
... | ... | |
bmp->DrawBitmap(geom.x, geom.y, *MSG_BG_IMG);
|
||
msgBox.Draw(bmp);
|
||
}
|
||
#endif
|
||
#ifdef YAEPGHD_REEL_EHD
|
||
/*
|
||
... | ... | |
static cReelVidWin *reelVidWin = NULL;
|
||
#endif
|
||
/*
|
||
*****************************************************************************
|
||
* cYaepgHd
|
||
... | ... | |
time_t startTime;
|
||
tArea mainWin;
|
||
cBitmap *mainBmp;
|
||
std::vector< cChannel * > chanVec;
|
||
const cEvent *event;
|
||
cTimeMs lastInput;
|
||
... | ... | |
cYaepgGridTime *gridTime;
|
||
cYaepgGridDate *gridDate;
|
||
cYaepgEventTitle *eventTitle;
|
||
cYaepgEventInfo *eventInfo;
|
||
cYaepgEventTime *eventTime;
|
||
cYaepgEventDesc *eventDesc;
|
||
cYaepgEventDate *eventDate;
|
||
cYaepgTimeLine *timeLine;
|
||
cYaepgHelpBar *helpBar;
|
||
#ifndef WO_MSG_RECDLG
|
||
cYaepgHelpBar *recDlg;
|
||
#endif
|
||
public:
|
||
cYaepghd(void);
|
||
... | ... | |
void UpdateEvent(const cEvent *newEvent);
|
||
void MoveCursor(eCursorDir dir);
|
||
void SwitchToCurrentChannel(bool closeVidWin = false);
|
||
void AddDelTimer(void);
|
||
void Draw(void);
|
||
};
|
||
... | ... | |
gridTime(NULL),
|
||
gridDate(NULL),
|
||
eventTitle(NULL),
|
||
eventInfo(NULL),
|
||
eventTime(NULL),
|
||
eventDesc(NULL),
|
||
eventDate(NULL),
|
||
timeLine(NULL),
|
||
#ifndef WO_MSG_RECDLG
|
||
helpBar(NULL),
|
||
recDlg(NULL)
|
||
#else
|
||
helpBar(NULL)
|
||
#endif
|
||
|
||
|
||
|
||
{
|
||
memset(&mainWin, 0, sizeof(mainWin));
|
||
chanVec.clear();
|
||
... | ... | |
delete gridDate;
|
||
delete timeLine;
|
||
delete eventTitle;
|
||
delete eventInfo;
|
||
delete eventTime;
|
||
delete eventDesc;
|
||
delete eventDate;
|
||
... | ... | |
BG_IMAGE->Bpp());
|
||
osd->SetAreas(&mainWin, 1);
|
||
#ifdef YAEPGHDVERSNUM
|
||
/* Set up the video window parameters */
|
||
if (VID_WIN_GEOM.w != 0 && VID_WIN_GEOM.h != 0) {
|
||
osd->vidWin.x1 = VID_WIN_GEOM.x;
|
||
... | ... | |
osd->vidWin.y2 = VID_WIN_GEOM.y + VID_WIN_GEOM.h;
|
||
osd->vidWin.bpp = 12;
|
||
}
|
||
#endif
|
||
#ifdef YAEPGHD_REEL_EHD
|
||
reelVidWin->Open(VID_WIN_GEOM);
|
||
... | ... | |
timeLine = new cYaepgTimeLine(t);
|
||
const cEvent *e = gridEvents->Event();
|
||
eventTitle = new cYaepgEventTitle(e);
|
||
eventInfo = new cYaepgEventInfo(e);
|
||
eventTime = new cYaepgEventTime(e);
|
||
eventDesc = new cYaepgEventDesc(e);
|
||
eventDate = new cYaepgEventDate();
|
||
... | ... | |
Draw();
|
||
}
|
||
void
|
||
cYaepghd::AddDelTimer(void)
|
||
{
|
||
const cEvent *event=gridEvents->Event();
|
||
int timerMatch;
|
||
cTimer *ti;
|
||
ti=Timers.GetMatch(event, &timerMatch);
|
||
if (timerMatch==tmFull)
|
||
{
|
||
if (ti)
|
||
{
|
||
isyslog("deleting timer %s", *ti->ToDescr());
|
||
Timers.Del(ti);
|
||
Timers.SetModified();
|
||
eventInfo->UpdateEvent(event);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
cTimer *timer = new cTimer(event);
|
||
Timers.Add(timer);
|
||
Timers.SetModified();
|
||
isyslog("timer %s added (active)", *timer->ToDescr());
|
||
eventInfo->UpdateEvent(event);
|
||
}
|
||
}
|
||
eOSState
|
||
cYaepghd::ProcessKey(eKeys key)
|
||
{
|
||
... | ... | |
else
|
||
state = osEnd;
|
||
break;
|
||
|
||
|
||
case kRed:
|
||
cDevice::PrimaryDevice()->GrabImageFile("yaepghd.jpg", true, 256, -1, -1);
|
||
AddDelTimer();
|
||
needsRedraw = true;
|
||
state = osContinue;
|
||
break;
|
||
case kGreen:
|
||
... | ... | |
state = osContinue;
|
||
// -12 hours
|
||
break;
|
||
|
||
|
||
|
||
case k0 ... k9:
|
||
if (directChan || (key != k0)) {
|
||
directChan = ((directChan * 10) + ((key & ~k_Repeat) - k0)) % 100000;
|
||
... | ... | |
}
|
||
event = newEvent;
|
||
eventTitle->UpdateEvent(event);
|
||
eventInfo->UpdateEvent(event);
|
||
eventTime->UpdateEvent(event);
|
||
eventDesc->UpdateEvent(event);
|
||
|
||
}
|
||
void
|
||
... | ... | |
if (gridChan && (gridChan->Number() != cDevice::CurrentChannel())) {
|
||
/*
|
||
* The "Channel not availaible message" will cause vdr to crash. Do a
|
||
* "lower level" channel switch to avoid the error message.
|
||
*
|
||
* XXX Is this still true ? XXX
|
||
*/
|
||
eSetChannelResult ret;
|
||
/*
|
||
* The eHD card doesn't seem to like changing channels while the video
|
||
* plane is sacled down. To get around this problem we close/reopen the
|
||
* video window across channel changes.
|
||
... | ... | |
cCondWait::SleepMs(100);
|
||
#endif
|
||
ret = cDevice::PrimaryDevice()->SetChannel(gridChan, true);
|
||
if (ret != scrOk) {
|
||
fprintf(stderr, "SetChannel(): %d\n", ret);
|
||
}
|
||
Channels.SwitchTo(gridChan->Number());
|
||
#ifdef YAEPGHD_REEL_EHD
|
||
if (closeVidWin == false) {
|
||
... | ... | |
gridDate->Draw(mainBmp);
|
||
timeLine->Draw(mainBmp);
|
||
eventTitle->Draw(mainBmp);
|
||
eventInfo->Draw(mainBmp);
|
||
eventTime->Draw(mainBmp);
|
||
eventDesc->Draw(mainBmp);
|
||
eventDate->Draw(mainBmp);
|
||
... | ... | |
class cMenuSetupYaepg : public cMenuSetupPage {
|
||
private:
|
||
int iNewHideMenuEntry;
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
int iNewReplaceOrgSchedule;
|
||
#endif
|
||
int iNewChannelChange;
|
||
int iNewTimeFormat;
|
||
int iNewChannelOrder;
|
||
int iNewChannelNumber;
|
||
int iNewThemeIndex;
|
||
char **themes;
|
||
int numThemes;
|
||
... | ... | |
void cMenuSetupYaepg::Store(void)
|
||
{
|
||
iHideMenuEntry = iNewHideMenuEntry;
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
iReplaceOrgSchedule = iNewReplaceOrgSchedule;
|
||
#endif
|
||
iChannelChange = iNewChannelChange;
|
||
iTimeFormat = iNewTimeFormat;
|
||
iChannelOrder = iNewChannelOrder;
|
||
iChannelNumber = iNewChannelNumber;
|
||
sThemeName = themes[iNewThemeIndex];
|
||
SetupStore("HideMenuEntry", iHideMenuEntry);
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
SetupStore("ReplaceOrgSchedule", iReplaceOrgSchedule);
|
||
#endif
|
||
SetupStore("ChannelChange", iChannelChange);
|
||
SetupStore("TimeFormat", iTimeFormat);
|
||
SetupStore("ChannelOrder", iChannelOrder);
|
||
SetupStore("ChannelNumber", iChannelNumber);
|
||
SetupStore("Theme", sThemeName.c_str());
|
||
}
|
||
... | ... | |
}
|
||
iNewHideMenuEntry = iHideMenuEntry;
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
iNewReplaceOrgSchedule = iReplaceOrgSchedule;
|
||
#endif
|
||
iNewChannelChange = iChannelChange;
|
||
iNewTimeFormat = iTimeFormat;
|
||
iNewChannelOrder = iChannelOrder;
|
||
iNewReplaceOrgSchedule = iReplaceOrgSchedule;
|
||
iNewChannelNumber = iChannelNumber;
|
||
Add(new cMenuEditBoolItem (tr("Hide mainmenu entry"), &iNewHideMenuEntry));
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
Add(new cMenuEditBoolItem (tr("Replace original schedule"), &iNewReplaceOrgSchedule));
|
||
#endif
|
||
Add(new cMenuEditStraItem (tr("Channel change"), &iNewChannelChange, CHANNEL_CHANGE_COUNT, CH_CHANGE_MODES));
|
||
Add(new cMenuEditStraItem (tr("Time format"), &iNewTimeFormat, TIME_FORMAT_COUNT, TIME_FORMATS));
|
||
Add(new cMenuEditStraItem (tr("Channel order"), &iNewChannelOrder, CHANNEL_ORDER_COUNT, CH_ORDER_FORMATS));
|
||
Add(new cMenuEditStraItem (trVDR("Setup.OSD$Theme"), &iNewThemeIndex, numThemes, themes));
|
||
Add(new cMenuEditBoolItem (tr("Channel number"), &iNewChannelNumber));
|
||
if (numThemes > 0) {
|
||
Add(new cMenuEditStraItem (trVDR("Setup.OSD$Theme"), &iNewThemeIndex, numThemes, themes));
|
||
}
|
||
}
|
||
cMenuSetupYaepg::~cMenuSetupYaepg()
|
||
... | ... | |
* cPluginYaepghd
|
||
*****************************************************************************
|
||
*/
|
||
static const char *VERSION = "0.0.1";
|
||
static const char *VERSION = "0.0.2beta";
|
||
static const char *DESCRIPTION = trNOOP("Yet another EPG in HD");
|
||
static const char *MAINMENUENTRY = trNOOP("YaepgHD");
|
||
... | ... | |
virtual void MainThreadHook(void);
|
||
virtual cString Active(void);
|
||
virtual time_t WakeupTime(void);
|
||
virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); }
|
||
virtual const char *MainMenuEntry(void) { return iHideMenuEntry ? NULL : tr(MAINMENUENTRY); }
|
||
virtual cOsdObject *MainMenuAction(void);
|
||
virtual cMenuSetupPage *SetupMenu(void);
|
||
virtual bool SetupParse(const char *Name, const char *Value);
|
||
... | ... | |
cOsdObject *
|
||
cPluginYaepghd::MainMenuAction(void)
|
||
{
|
||
return new cYaepghd;
|
||
return new cYaepghd;
|
||
// return new cYaepghdMenu;
|
||
}
|
||
cMenuSetupPage *
|
||
... | ... | |
// Parse your own setup parameters and store their values.
|
||
if (!strcasecmp(Name, "HideMenuEntry")) { iHideMenuEntry = atoi(Value); }
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
else if (!strcasecmp(Name, "ReplaceOrgSchedule")) { iReplaceOrgSchedule = atoi(Value); }
|
||
#endif
|
||
else if (!strcasecmp(Name, "ChannelChange")) { iChannelChange = atoi(Value); }
|
||
else if (!strcasecmp(Name, "TimeFormat")) { iTimeFormat = atoi(Value); }
|
||
else if (!strcasecmp(Name, "ChannelOrder")) { iChannelOrder = atoi(Value); }
|
||
else if (!strcasecmp(Name, "ChannelNumber")) { iChannelNumber = atoi(Value); }
|
||
else if (!strcasecmp(Name, "Theme")) { Utf8Strn0Cpy(themeName, Value, sizeof(themeName)); sThemeName = themeName; }
|
||
else { return false; }
|
||
... | ... | |
bool
|
||
cPluginYaepghd::Service(const char *Id, void *Data)
|
||
{
|
||
if (strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0 && iReplaceOrgSchedule)
|
||
#if MAINMENUHOOKSVERSNUM == 10100
|
||
if (strcmp(Id, "MainMenuHooksPatch-v1.0::osSchedule") == 0 && iReplaceOrgSchedule)
|
||
{
|
||
if (!Data) {
|
||
return true;
|
||
}
|
||
cOsdMenu **menu = (cOsdMenu**)Data;
|
||
if (menu) {
|
||
*menu = (cOsdMenu*)MainMenuAction();
|
||
cOsdObject **osd = (cOsdObject**)Data;
|
||
if (osd) {
|
||
*osd = (cOsdObject*)MainMenuAction();
|
||
}
|
||
return true;
|
||
}
|
||
#endif
|
||
// Handle custom service requests from other plugins
|
||
return false;
|
||
}
|
||