fix typo, add tsid correction
[enigma2.git] / lib / dvb / epgcache.cpp
index 57501d8d39e9b2c385eea477a261cc37da5e05c3..6767c4ad4a93ed574736b797b7426428bdabc14c 100644 (file)
@@ -1531,7 +1531,7 @@ RESULT eEPGCache::startTimeQuery(const eServiceReference &service, time_t begin,
                }
 
                if (minutes != -1)
-                       m_timemap_end = It->second.second.upper_bound(begin+minutes*60);
+                       m_timemap_end = It->second.second.lower_bound(begin+minutes*60);
                else
                        m_timemap_end = It->second.second.end();
 
@@ -1874,6 +1874,8 @@ PyObject *eEPGCache::lookupEvent(ePyObject list, ePyObject convertFunc)
                                                }
                                        }
                                }
+                               else
+                                       handleEvent(0, dest_list, argstring, argcount, service, nowTime, service_name, convertFunc, convertFuncArgs);
                                Unlock();
                        }
                        else
@@ -2254,6 +2256,11 @@ PyObject *eEPGCache::search(ePyObject arg)
                                                {
                                                        if (lookupEventId(ref, evid, ev))
                                                                eDebug("event not found !!!!!!!!!!!");
+                                                       else
+                                                       {
+                                                               const eServiceReferenceDVB &dref = (const eServiceReferenceDVB&)ref;
+                                                               ptr.parseFrom(ev, (dref.getTransportStreamID().get()<<16)|dref.getOriginalNetworkID().get());
+                                                       }
                                                }
                                        // create service name
                                                if (!service_name)
@@ -2485,7 +2492,7 @@ void eEPGCache::privateSectionRead(const uniqueEPGKey &current_service, const __
                                int sid = data[ptr++] << 8;
                                sid |= data[ptr++];
 
-// WORKAROUND for wrong transmitted epg data (01.08.2006)
+// WORKAROUND for wrong transmitted epg data (01.10.2007)
                                if ( onid == 0x85 )
                                {
                                        switch( (tsid << 16) | sid )
@@ -2496,6 +2503,7 @@ void eEPGCache::privateSectionRead(const uniqueEPGKey &current_service, const __
                                                case 0x0300f5: sid = 0xdc; break;
                                                case 0x0400d2: sid = 0xe2; tsid = 0x11; break;
                                                case 0x1100d3: sid = 0xe3; break;
+                                               case 0x0100d4: sid = 0xe4; tsid = 4; break;
                                        }
                                }
 ////////////////////////////////////////////