summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-02-21 15:30:35 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2004-02-21 15:30:35 +0100
commit6fef98aa971f8ee51b21d95f9fe3f975a13858f1 (patch)
tree9a08f57ac8377d16a35c1a84b0609b49a58318fe
parentc969c77d9c5faed74e429a60c9eaa00b4b84ec1f (diff)
downloadvdr-6fef98aa971f8ee51b21d95f9fe3f975a13858f1.tar.gz
vdr-6fef98aa971f8ee51b21d95f9fe3f975a13858f1.tar.bz2
Implemented an "EPG linger time"
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--MANUAL3
-rw-r--r--config.c5
-rw-r--r--config.h3
-rw-r--r--epg.c4
-rw-r--r--i18n.c20
-rw-r--r--menu.c8
8 files changed, 38 insertions, 8 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 6719ef41..bc19b3ea 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -561,6 +561,7 @@ Jaakko Hyvätti <jaakko@hyvatti.iki.fi>
for fixing the minimum lifespan of deleted recordings
for suggesting to improve channel switching in case of numerical input by switching
as soon as the channel is unique
+ for implementing an "EPG linger time"
Dennis Noordsij <dennis.noordsij@wiral.com>
for reporting a small glitch when switching channels
diff --git a/HISTORY b/HISTORY
index 5749d91a..613d48a9 100644
--- a/HISTORY
+++ b/HISTORY
@@ -2689,3 +2689,5 @@ Video Disk Recorder Revision History
will still be shown in the display (provided the broadcasters handle the
'running status' flag correctly). This also applies to programmes that have
a start time that is in the future, but are already running.
+- Implemented an "EPG linger time", which can be set to have older EPG information
+ still displayed in the "Schedule" menu (thanks to Jaakko Hyvätti).
diff --git a/MANUAL b/MANUAL
index 80977a90..beb7444c 100644
--- a/MANUAL
+++ b/MANUAL
@@ -462,6 +462,9 @@ Version 1.2
be fixed accordingly. Restart VDR if you want to make sure
all data is fixed.
+ EPG linger time = 0 The time (in minutes) within which old EPG information
+ shall still be displayed in the "Schedule" menu.
+
Set system time = no Defines whether the system time will be set according to
the time received from the DVB data stream.
Note that this works only if VDR is running under a user
diff --git a/config.c b/config.c
index 25b64d32..530da577 100644
--- a/config.c
+++ b/config.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.c 1.123 2004/02/09 16:57:59 kls Exp $
+ * $Id: config.c 1.124 2004/02/21 15:05:40 kls Exp $
*/
#include "config.h"
@@ -262,6 +262,7 @@ cSetup::cSetup(void)
EPGLanguages[0] = -1;
EPGScanTimeout = 5;
EPGBugfixLevel = 2;
+ EPGLinger = 0;
SVDRPTimeout = 300;
ZapTimeout = 3;
SortTimers = 1;
@@ -406,6 +407,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "EPGLanguages")) return ParseLanguages(Value, EPGLanguages);
else if (!strcasecmp(Name, "EPGScanTimeout")) EPGScanTimeout = atoi(Value);
else if (!strcasecmp(Name, "EPGBugfixLevel")) EPGBugfixLevel = atoi(Value);
+ else if (!strcasecmp(Name, "EPGLinger")) EPGLinger = atoi(Value);
else if (!strcasecmp(Name, "SVDRPTimeout")) SVDRPTimeout = atoi(Value);
else if (!strcasecmp(Name, "ZapTimeout")) ZapTimeout = atoi(Value);
else if (!strcasecmp(Name, "SortTimers")) SortTimers = atoi(Value);
@@ -457,6 +459,7 @@ bool cSetup::Save(void)
StoreLanguages("EPGLanguages", EPGLanguages);
Store("EPGScanTimeout", EPGScanTimeout);
Store("EPGBugfixLevel", EPGBugfixLevel);
+ Store("EPGLinger", EPGLinger);
Store("SVDRPTimeout", SVDRPTimeout);
Store("ZapTimeout", ZapTimeout);
Store("SortTimers", SortTimers);
diff --git a/config.h b/config.h
index 14b3a1ba..34cad46f 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 1.187 2004/02/09 17:04:09 kls Exp $
+ * $Id: config.h 1.188 2004/02/21 15:04:53 kls Exp $
*/
#ifndef __CONFIG_H
@@ -220,6 +220,7 @@ public:
int EPGLanguages[I18nNumLanguages + 1];
int EPGScanTimeout;
int EPGBugfixLevel;
+ int EPGLinger;
int SVDRPTimeout;
int ZapTimeout;
int SortTimers;
diff --git a/epg.c b/epg.c
index fc5cc830..1cd0d446 100644
--- a/epg.c
+++ b/epg.c
@@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
*
- * $Id: epg.c 1.9 2004/02/21 14:33:11 kls Exp $
+ * $Id: epg.c 1.10 2004/02/21 15:15:47 kls Exp $
*/
#include "epg.h"
@@ -523,7 +523,7 @@ void cSchedule::Cleanup(time_t Time)
Event = events.Get(a);
if (!Event)
break;
- if (Event->StartTime() + Event->Duration() + 3600 < Time) { // adding one hour for safety
+ if (Event->StartTime() + Event->Duration() + Setup.EPGLinger * 60 + 3600 < Time) { // adding one hour for safety
events.Del(Event);
a--;
}
diff --git a/i18n.c b/i18n.c
index abf7ff15..bdd88348 100644
--- a/i18n.c
+++ b/i18n.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: i18n.c 1.147 2004/02/20 13:58:14 kls Exp $
+ * $Id: i18n.c 1.148 2004/02/21 15:14:36 kls Exp $
*
* Translations provided by:
*
@@ -2355,6 +2355,24 @@ const tI18nPhrase Phrases[] = {
"Nivell de correcció de la Guia",
"ÃàÞÒÕÝì ÚÞààÕÚæØØ ÞèØÑÞÚ",
},
+ { "Setup.EPG$EPG linger time (min)",
+ "Alte EPG-Daten anzeigen (min)",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "Vanha tieto näkyy (min)",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "Visa gammal info (min)",
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ "",// TODO
+ },
{ "Setup.EPG$Set system time",
"Systemzeit stellen",
"Nastavi sistemski cas",
diff --git a/menu.c b/menu.c
index bf189692..15ce09b2 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.287 2004/02/21 13:53:25 kls Exp $
+ * $Id: menu.c 1.288 2004/02/21 15:26:47 kls Exp $
*/
#include "menu.h"
@@ -1366,12 +1366,13 @@ void cMenuSchedule::PrepareSchedule(cChannel *Channel)
if (schedules) {
const cSchedule *Schedule = schedules->GetSchedule(Channel->GetChannelID());
if (Schedule) {
+ const cEvent *PresentEvent = Schedule->GetPresentEvent();
int num = Schedule->NumEvents();
- time_t now = time(NULL);
+ time_t now = time(NULL) - Setup.EPGLinger * 60;
for (int a = 0; a < num; a++) {
const cEvent *Event = Schedule->GetEventNumber(a);
if (Event->StartTime() + Event->Duration() > now)
- Add(new cMenuScheduleItem(Event));
+ Add(new cMenuScheduleItem(Event), Event == PresentEvent);
}
}
}
@@ -2026,6 +2027,7 @@ void cMenuSetupEPG::Setup(void)
Add(new cMenuEditIntItem( tr("Setup.EPG$EPG scan timeout (h)"), &data.EPGScanTimeout));
Add(new cMenuEditIntItem( tr("Setup.EPG$EPG bugfix level"), &data.EPGBugfixLevel, 0, MAXEPGBUGFIXLEVEL));
+ Add(new cMenuEditIntItem( tr("Setup.EPG$EPG linger time (min)"), &data.EPGLinger, 0));
Add(new cMenuEditBoolItem(tr("Setup.EPG$Set system time"), &data.SetSystemTime));
if (data.SetSystemTime)
Add(new cMenuEditTranItem(tr("Setup.EPG$Use time from transponder"), &data.TimeTransponder));