summaryrefslogtreecommitdiff
path: root/epg.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <Klaus (dot) Schmidinger (at) tvdr (dot) de>2012-02-19 14:54:00 +0100
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2012-02-19 16:36:45 +0100
commitc2d9577b3dd7557b7a9c702d5c1fd3b1bbe0e5e7 (patch)
treea59a457cc3975f5835e7b307dccc5fd0f0e1b1be /epg.c
parent59f0138a7d03fed4fc33e1083928bf5b28e0e4ff (diff)
downloadvdr-patches-c2d9577b3dd7557b7a9c702d5c1fd3b1bbe0e5e7.tar.gz
vdr-patches-c2d9577b3dd7557b7a9c702d5c1fd3b1bbe0e5e7.tar.bz2
Version 1.7.24
Original announce message: VDR developer version 1.7.24 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.24.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-1.7.23-1.7.24.diff MD5 checksums: a034c5e399417dfc583483f650d003ee vdr-1.7.24.tar.bz2 aa1a2b202da92e65945ff39470b26618 vdr-1.7.23-1.7.24.diff WARNING: ======== This is a developer version. Even though I use it in my productive environment. I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Updated the Italian OSD texts (thanks to Diego Pierotto). - Fixed a high load in case a transponder can't be received. - Improved the way DVB_API_VERSION is checked. - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Fixed asserting there is a live programme if the primary device is bonded with a device that starts a recording on a different band. - Fixed the return type of cMyDeviceHook::DeviceProvidesTransponder() in PLUGINS.html. - Fixed a crash in a plugin using cDeviceHook when VDR ends (reported by Oliver Endriss). - Some improvements to the Makefiles (thanks to Christian Ruppert). - Fixed cRecording::LengthInSeconds(), which wrongfully rounded the result to full minutes (thanks to Christoph Haubrich). - Symbolic links are no longer resolved in cRecordings::ScanVideoDir() (thanks to Sundararaj Reel). - The epg.data file is now read in a separate thread to make the startup process faster in case the file is very large (suggested by Helmut Auer). - Fixed selecting the primary device for receiving the live viewing channel in case it is bonded with an other device and has no receiver attached to it. - Fixed a possible crash when canceling VDR while displaying subtitles, and the primary device is no longer available. - Improved handling subtitles of BBC channels. - No longer using tabs as delimiter in the EPG bugfix log (they were garbled in the log file). - Added a missing '.' after the month in VPS strings. - Added some missing 'const' to cDevice (thanks to Joachim Wilke). - Fixed handling the PrimaryLimit when requesting a device for live viewing (reported by Uwe Scheffler). - Removed superfluous calls to SetVideoFormat() from device constructors. This function is called in cDevice::SetPrimaryDevice(), anyway. - An ongoing editing process is now canceled if either the original or the edited version of the recording is deleted from the Recordings menu. - The SVDRP command DELR now won't delete a recording that is currently being edited. - Removed code stub for obsolete SVDRP command MOVT. - The DVB device adapters/frontends are now probed by scanning the /dev/dvb directory instead of looping through adapter/frontend numbers. This allows for "holes" in the device numbering. - cReadDir::Next() now skips directory entries "." and "..". - Fixed a possible deadlock in time shift mode. - Fixed switching into time shift mode when pausing live video (thanks to Reinhard Nissl for helping to debug this one).
Diffstat (limited to 'epg.c')
-rw-r--r--epg.c35
1 files changed, 21 insertions, 14 deletions
diff --git a/epg.c b/epg.c
index dccef32..2ff1052 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 2.9 2012/01/12 14:31:46 kls Exp $
+ * $Id: epg.c 2.11 2012/02/13 14:58:19 kls Exp $
*/
#include "epg.h"
@@ -424,7 +424,7 @@ cString cEvent::GetVpsString(void) const
{
char buf[25];
struct tm tm_r;
- strftime(buf, sizeof(buf), "%d.%m %R", localtime_r(&vps, &tm_r));
+ strftime(buf, sizeof(buf), "%d.%m. %R", localtime_r(&vps, &tm_r));
return buf;
}
@@ -587,7 +587,7 @@ void ReportEpgBugFixStats(bool Reset)
bool GotHits = false;
char buffer[1024];
for (int i = 0; i < MAXEPGBUGFIXSTATS; i++) {
- const char *delim = "\t";
+ const char *delim = " ";
tEpgBugFixStats *p = &EpgBugFixStats[i];
if (p->hits) {
bool PrintedStats = false;
@@ -604,11 +604,11 @@ void ReportEpgBugFixStats(bool Reset)
dsyslog("CHANNELS READS THIS: PLEASE TAKE A LOOK AT THE FUNCTION cEvent::FixEpgBugs()");
dsyslog("IN VDR/epg.c TO LEARN WHAT'S WRONG WITH YOUR DATA, AND FIX IT!");
dsyslog("=====================");
- dsyslog("Fix\tHits\tChannels");
+ dsyslog("Fix Hits Channels");
GotHits = true;
}
if (!PrintedStats) {
- q += snprintf(q, sizeof(buffer) - (q - buffer), "%d\t%d", i, p->hits);
+ q += snprintf(q, sizeof(buffer) - (q - buffer), "%-3d %-4d", i, p->hits);
PrintedStats = true;
}
q += snprintf(q, sizeof(buffer) - (q - buffer), "%s%s", delim, channel->Name());
@@ -1029,15 +1029,10 @@ void cSchedule::Cleanup(void)
void cSchedule::Cleanup(time_t Time)
{
- cEvent *Event = events.First();
- while (Event) {
- if (Event->HasTimer())
- Event = (cEvent *)Event->Next();
- else if (Event->EndTime() + Setup.EPGLinger * 60 + 3600 < Time) { // adding one hour for safety
- cEvent *e = Event;
- Event = (cEvent *)Event->Next();
- DelEvent(e);
- }
+ cEvent *Event;
+ while ((Event = events.First()) != NULL) {
+ if (!Event->HasTimer() && Event->EndTime() + Setup.EPGLinger * 60 + 3600 < Time) // adding one hour for safety
+ DelEvent(Event);
else
break;
}
@@ -1289,3 +1284,15 @@ const cSchedule *cSchedules::GetSchedule(const cChannel *Channel, bool AddIfMiss
}
return Channel->schedule != &DummySchedule? Channel->schedule : NULL;
}
+
+// --- cEpgDataReader --------------------------------------------------------
+
+cEpgDataReader::cEpgDataReader(void)
+:cThread("epg data reader")
+{
+}
+
+void cEpgDataReader::Action(void)
+{
+ cSchedules::Read();
+}