From: Andreas Monzner Date: Mon, 12 Dec 2005 19:56:42 +0000 (+0000) Subject: fix show currently running events in channellist ( in favourite list ) X-Git-Tag: 2.6.0~4731 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/7d9a03383fba0b90090e678812c30153a1d3d5a2 fix show currently running events in channellist ( in favourite list ) --- 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; }