fix DVB-T inversion
[enigma2.git] / lib / dvb / epgcache.cpp
index eb031be3dda3d971ce23fcf63c29bd89a3f95e5a..79012d387e5bcf04fc9de41f800cb849d4da74f0 100644 (file)
@@ -177,12 +177,11 @@ eEPGCache::eEPGCache()
 
 void eEPGCache::timeUpdated()
 {
-       if ( !thread_running() )
+       if (!sync())
        {
                eDebug("[EPGC] time updated.. start EPG Mainloop");
                run();
-       }
-       else
+       } else
                messages.send(Message(Message::timeChanged));
 }
 
@@ -692,6 +691,7 @@ void eEPGCache::gotMessage( const Message &msg )
 
 void eEPGCache::thread()
 {
+       hasStarted();
        nice(4);
        load();
        cleanLoop();
@@ -1946,16 +1946,16 @@ PyObject *eEPGCache::search(PyObject *arg)
                        }
                        PyObject *service_name=0;
                        PyObject *service_reference=0;
-                       eventMap &evmap = cit->second.first;
+                       timeMap &evmap = cit->second.second;
                        // check all events
-                       for (eventMap::iterator evit(evmap.begin()); evit != evmap.end() && maxcount; ++evit)
+                       for (timeMap::iterator evit(evmap.begin()); evit != evmap.end() && maxcount; ++evit)
                        {
+                               if (evit->second->getEventID() == eventid)
+                                       continue;
                                __u8 *data = evit->second->EITdata;
                                int tmp = evit->second->ByteSize-12;
                                __u32 *p = (__u32*)(data+12);
                                // check if any of our descriptor used by this event
-                               if (evit->first == eventid )
-                                       continue;
                                int cnt=-1;
                                while(tmp>0)
                                {