1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning for events before present event

This commit is contained in:
Klaus Schmidinger 2006-03-26 13:53:58 +02:00
parent 4546708841
commit 5c90a6eba3
2 changed files with 9 additions and 5 deletions

View File

@ -4449,3 +4449,5 @@ Video Disk Recorder Revision History
device into transfer mode (thanks to Reinhard Nissl). device into transfer mode (thanks to Reinhard Nissl).
- The 'version' of EPG events is now ignored when reading EPG data from 'epg.data' - The 'version' of EPG events is now ignored when reading EPG data from 'epg.data'
or via SVDRP/PUTE to avoid problems with double EPG events. or via SVDRP/PUTE to avoid problems with double EPG events.
- The 'running status' of EPG events is now only set to SI::RunningStatusNotRunning
for events before the present event.

12
epg.c
View File

@ -7,7 +7,7 @@
* Original version (as used in VDR before 1.3.0) written by * Original version (as used in VDR before 1.3.0) written by
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>. * Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* *
* $Id: epg.c 1.68 2006/03/26 13:44:23 kls Exp $ * $Id: epg.c 1.69 2006/03/26 13:47:29 kls Exp $
*/ */
#include "epg.h" #include "epg.h"
@ -103,7 +103,7 @@ cEvent::cEvent(tEventID EventID)
eventID = EventID; eventID = EventID;
tableID = 0; tableID = 0;
version = 0xFF; // actual version numbers are 0..31 version = 0xFF; // actual version numbers are 0..31
runningStatus = 0; runningStatus = SI::RunningStatusUndefined;
title = NULL; title = NULL;
shortText = NULL; shortText = NULL;
description = NULL; description = NULL;
@ -735,9 +735,11 @@ const cEvent *cSchedule::GetEventAround(time_t Time) const
void cSchedule::SetRunningStatus(cEvent *Event, int RunningStatus, cChannel *Channel) void cSchedule::SetRunningStatus(cEvent *Event, int RunningStatus, cChannel *Channel)
{ {
for (cEvent *p = events.First(); p; p = events.Next(p)) { for (cEvent *p = events.First(); p; p = events.Next(p)) {
if (p == Event) if (p == Event) {
p->SetRunningStatus(RunningStatus, Channel); if (p->RunningStatus() > SI::RunningStatusNotRunning || RunningStatus > SI::RunningStatusNotRunning)
else if (RunningStatus >= SI::RunningStatusPausing && p->RunningStatus() > SI::RunningStatusNotRunning) p->SetRunningStatus(RunningStatus, Channel);
}
else if (RunningStatus >= SI::RunningStatusPausing && p->StartTime() < Event->StartTime())
p->SetRunningStatus(SI::RunningStatusNotRunning); p->SetRunningStatus(SI::RunningStatusNotRunning);
} }
if (RunningStatus >= SI::RunningStatusPausing) if (RunningStatus >= SI::RunningStatusPausing)