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

Fixed handling "pending" timers that blocked others that actually could record

This commit is contained in:
Klaus Schmidinger 2006-02-03 15:25:51 +01:00
parent 881c251bea
commit 5cd7945ab5
3 changed files with 14 additions and 1 deletions

View File

@ -844,6 +844,8 @@ Ludwig Nussel <ludwig.nussel@web.de>
Thomas Koch <tom@harhar.net> Thomas Koch <tom@harhar.net>
for his support in keeping the Premiere World channels up to date in 'channels.conf' for his support in keeping the Premiere World channels up to date in 'channels.conf'
for implementing the SVDRP command STAT for implementing the SVDRP command STAT
for reporting a problem with "pending" timers that blocked others that actually
could record
Stefan Hußfeldt <vdr@marvin.on-luebeck.de> Stefan Hußfeldt <vdr@marvin.on-luebeck.de>
for his help in keeping 'channels.conf.cable' up to date for his help in keeping 'channels.conf.cable' up to date

View File

@ -4278,3 +4278,5 @@ Video Disk Recorder Revision History
- Fixed setting "No title" for broken event data (reported by Ronny Kornexl). - Fixed setting "No title" for broken event data (reported by Ronny Kornexl).
- Fixed channel up/down switching on single card systems (reported by Stefan - Fixed channel up/down switching on single card systems (reported by Stefan
Huelswitt). Huelswitt).
- Fixed handling "pending" timers that blocked others that actually could record
(reported by Thomas Koch).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: timers.c 1.45 2006/01/28 15:09:05 kls Exp $ * $Id: timers.c 1.46 2006/02/03 15:20:14 kls Exp $
*/ */
#include "timers.h" #include "timers.h"
@ -535,13 +535,22 @@ cTimer *cTimers::GetTimer(cTimer *Timer)
cTimer *cTimers::GetMatch(time_t t) cTimer *cTimers::GetMatch(time_t t)
{ {
static int LastPending = -1;
cTimer *t0 = NULL; cTimer *t0 = NULL;
for (cTimer *ti = First(); ti; ti = Next(ti)) { for (cTimer *ti = First(); ti; ti = Next(ti)) {
if (!ti->Recording() && ti->Matches(t)) { if (!ti->Recording() && ti->Matches(t)) {
if (ti->Pending()) {
if (ti->Index() > LastPending)
LastPending = ti->Index();
else
continue;
}
if (!t0 || ti->Priority() > t0->Priority()) if (!t0 || ti->Priority() > t0->Priority())
t0 = ti; t0 = ti;
} }
} }
if (!t0)
LastPending = -1;
return t0; return t0;
} }