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;
|
||
|
}
|
||