when the system time on e2 startup seems valid (> 1.1.2004) we use this time
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 15 Jan 2007 19:36:42 +0000 (19:36 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 15 Jan 2007 19:36:42 +0000 (19:36 +0000)
as time reference for the internal transponder time correction.. so the
systemtime stays valid on startup from deepstandby on a transponder with
incorrect transponder time transmission

lib/dvb/dvbtime.cpp
lib/dvb/epgcache.cpp

index 5ece09d31f8f961dd1b18cbcef2e9a6176d47488..6c2df6c265c0d5ef98d8359008de102b63cb9b20 100644 (file)
@@ -129,7 +129,18 @@ eDVBLocalTimeHandler::eDVBLocalTimeHandler()
        if (!res_mgr)
                eDebug("[eDVBLocalTimerHandler] no resource manager !!!!!!!");
        else
        if (!res_mgr)
                eDebug("[eDVBLocalTimerHandler] no resource manager !!!!!!!");
        else
+       {
                res_mgr->connectChannelAdded(slot(*this,&eDVBLocalTimeHandler::DVBChannelAdded), m_chanAddedConn);
                res_mgr->connectChannelAdded(slot(*this,&eDVBLocalTimeHandler::DVBChannelAdded), m_chanAddedConn);
+               time_t now = time(0);
+               if ( now < 1072224000 ) // 01.01.2004
+                       eDebug("RTC not ready... wait for transponder time");
+               else // inform all who's waiting for valid system time..
+               {
+                       eDebug("Use valid Linux Time :) (RTC?)");
+                       m_time_ready = true;
+                       /*emit*/ m_timeUpdated();
+               }
+       }
 }
 
 eDVBLocalTimeHandler::~eDVBLocalTimeHandler()
 }
 
 eDVBLocalTimeHandler::~eDVBLocalTimeHandler()
index afbc6e011f4a03ce13f650b9e9b91230b0f4a43f..1428cc7cfac0b584e25e307342f4a3fee8189eb6 100644 (file)
@@ -226,7 +226,11 @@ eEPGCache::eEPGCache()
        if (!res_mgr)
                eDebug("[eEPGCache] no resource manager !!!!!!!");
        else
        if (!res_mgr)
                eDebug("[eEPGCache] no resource manager !!!!!!!");
        else
+       {
                res_mgr->connectChannelAdded(slot(*this,&eEPGCache::DVBChannelAdded), m_chanAddedConn);
                res_mgr->connectChannelAdded(slot(*this,&eEPGCache::DVBChannelAdded), m_chanAddedConn);
+               if (eDVBLocalTimeHandler::getInstance()->ready())
+                       timeUpdated();
+       }
        instance=this;
 }
 
        instance=this;
 }