diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index d9a54e36a..cfb509c8e 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -1306,10 +1306,19 @@ bool CTimerEvent_Record::adjustToCurrentEPG() CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id, evtlist); time_t now = time(NULL); + time_t compare; + + int pre, post; + CTimerManager::getInstance()->getRecordingSafety(pre, post); + CChannelEventList::iterator first = evtlist.end(); for (CChannelEventList::iterator e = evtlist.begin(); e != evtlist.end(); ++e) { - if (e->startTime < now) + compare = e->startTime; + if (!pre) + compare += e->duration; + + if (compare <= now) continue; if (first == evtlist.end() || first->startTime > e->startTime) first = e; @@ -1323,8 +1332,6 @@ bool CTimerEvent_Record::adjustToCurrentEPG() time_t _alarmTime = first->startTime; time_t _stopTime = first->startTime + first->duration; if (recordingSafety) { - int pre, post; - CTimerManager::getInstance()->getRecordingSafety(pre, post); _alarmTime -= pre; _stopTime += post; }