From 7d9a03383fba0b90090e678812c30153a1d3d5a2 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Mon, 12 Dec 2005 19:56:42 +0000 Subject: [PATCH] fix show currently running events in channellist ( in favourite list ) --- lib/dvb/epgcache.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index fb121ae8..b2157693 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -1008,10 +1008,25 @@ RESULT eEPGCache::lookupEventTime(const eServiceReference &service, time_t t, co { if (!t) t = time(0)+eDVBLocalTimeHandler::getInstance()->difference(); - - timeMap::iterator i = It->second.second.lower_bound(t); - if ( i != It->second.second.end() && t <= i->first+i->second->getDuration() ) + timeMap::iterator i = It->second.second.lower_bound(t); // find > or equal + if ( i != It->second.second.end() ) { + if ( i->second->getStartTime() != t ) + { + timeMap::iterator x = i; + --x; + if ( x != It->second.second.end() ) + { + time_t start_time = x->second->getStartTime(); + if (t < start_time) + return -1; + if (t > (start_time+x->second->getDuration())) + return -1; + i = x; + } + else + return -1; + } result = i->second; return 0; } -- 2.30.2