mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Now using the 'running status' in the channel display
This commit is contained in:
parent
340d9bcb0f
commit
c969c77d9c
5
HISTORY
5
HISTORY
@ -2684,3 +2684,8 @@ Video Disk Recorder Revision History
|
||||
- The EPG data is now always kept sorted chronologically in the internal data
|
||||
structures. This also means that any EPG data retrieved through the SVRDP
|
||||
command LSTE is guaranteed to be sorted by start time.
|
||||
- Now using the 'running status' in the channel display, so that a programme
|
||||
that has an end time that is before the current time, but is still running,
|
||||
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.
|
||||
|
27
epg.c
27
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.8 2004/02/21 13:46:23 kls Exp $
|
||||
* $Id: epg.c 1.9 2004/02/21 14:33:11 kls Exp $
|
||||
*/
|
||||
|
||||
#include "epg.h"
|
||||
@ -443,22 +443,23 @@ cEvent *cSchedule::AddEvent(cEvent *Event)
|
||||
|
||||
const cEvent *cSchedule::GetPresentEvent(void) const
|
||||
{
|
||||
return GetEventAround(time(NULL));
|
||||
const cEvent *pe = NULL;
|
||||
time_t now = time(NULL);
|
||||
for (cEvent *p = events.First(); p; p = events.Next(p)) {
|
||||
if (p->StartTime() <= now && now < p->StartTime() + p->Duration())
|
||||
pe = p;
|
||||
if (p->RunningStatus() >= SI::RunningStatusPausing)
|
||||
return p;
|
||||
}
|
||||
return pe;
|
||||
}
|
||||
|
||||
const cEvent *cSchedule::GetFollowingEvent(void) const
|
||||
{
|
||||
const cEvent *pe = NULL;
|
||||
time_t now = time(NULL);
|
||||
time_t delta = INT_MAX;
|
||||
for (cEvent *p = events.First(); p; p = events.Next(p)) {
|
||||
time_t dt = p->StartTime() - now;
|
||||
if (dt > 0 && dt < delta) {
|
||||
delta = dt;
|
||||
pe = p;
|
||||
}
|
||||
}
|
||||
return pe;
|
||||
const cEvent *p = GetPresentEvent();
|
||||
if (p)
|
||||
p = events.Next(p);
|
||||
return p;
|
||||
}
|
||||
|
||||
const cEvent *cSchedule::GetEvent(u_int16_t EventID, time_t StartTime) const
|
||||
|
Loading…
Reference in New Issue
Block a user