diff --git a/recmenus.c b/recmenus.c index 21c8778..2d15082 100644 --- a/recmenus.c +++ b/recmenus.c @@ -1431,14 +1431,19 @@ void cRecMenuTimeline::GetTimersForDay(void) { timersToday.clear(); #if VDRVERSNUM >= 20301 LOCK_TIMERS_READ; -// const cTimers* timers = Timers; - for (const cTimer *t = Timers->First(); t; t = Timers->Next(t)) { + const cTimers* timers = Timers; #else - for (const cTimer *t = Timers.First(); t; t = Timers.Next(t)) { + const cTimers* timers = &Timers; #endif + cSortedTimers SortedTimers(timers); + int i = 0; + while (i < SortedTimers.Size()) { + const cTimer *t = SortedTimers[i]; if (((t->StartTime() > timeStart) && (t->StartTime() <= timeStop)) || ((t->StopTime() > timeStart) && (t->StopTime() <= timeStop))) { - timersToday.push_back(t); + if (t->HasFlags(tfActive)) + timersToday.push_back(t); } + i++; } numTimersToday = timersToday.size(); }