diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-01-15 20:19:14 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2007-01-15 20:19:14 +0000 |
| commit | 60a9bcb6f7b0e928a836dccd1008b82f837a0461 (patch) | |
| tree | 298c9d6ab3772176578646c6887df38b11241580 | |
| parent | e68ab3a6255de286aad4f503ee9929d0c503ebcc (diff) | |
| download | enigma2-60a9bcb6f7b0e928a836dccd1008b82f837a0461.tar.gz enigma2-60a9bcb6f7b0e928a836dccd1008b82f837a0461.zip | |
use timedifference from eDVBLocalTimeHandler for time() calls in python
| -rw-r--r-- | lib/dvb/dvbtime.cpp | 5 | ||||
| -rw-r--r-- | lib/dvb/dvbtime.h | 2 | ||||
| -rw-r--r-- | lib/python/Tools/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/python/Tools/RedirectTime.py | 18 | ||||
| -rw-r--r-- | lib/python/Tools/__init__.py | 2 | ||||
| -rw-r--r-- | lib/python/enigma_python.i | 1 | ||||
| -rw-r--r-- | mytest.py | 2 |
7 files changed, 29 insertions, 4 deletions
diff --git a/lib/dvb/dvbtime.cpp b/lib/dvb/dvbtime.cpp index 6c2df6c2..7684bfa4 100644 --- a/lib/dvb/dvbtime.cpp +++ b/lib/dvb/dvbtime.cpp @@ -148,6 +148,11 @@ eDVBLocalTimeHandler::~eDVBLocalTimeHandler() instance=0; for (std::map<iDVBChannel*, channel_data>::iterator it=m_knownChannels.begin(); it != m_knownChannels.end(); ++it) delete it->second.tdt; + if (ready()) + { + eDebug("set RTC to previous valid time"); + setRTC(nowTime()); + } } void eDVBLocalTimeHandler::readTimeOffsetData( const char* filename ) diff --git a/lib/dvb/dvbtime.h b/lib/dvb/dvbtime.h index 2b07a250..a5114f82 100644 --- a/lib/dvb/dvbtime.h +++ b/lib/dvb/dvbtime.h @@ -73,10 +73,10 @@ class eDVBLocalTimeHandler: public Object #endif public: #ifndef SWIG - PSignal0<void> m_timeUpdated; eDVBLocalTimeHandler(); ~eDVBLocalTimeHandler(); #endif + PSignal0<void> m_timeUpdated; time_t nowTime() const { return m_time_ready ? ::time(0)+m_time_difference : -1; } bool ready() const { return m_time_ready; } int difference() const { return m_time_difference; } diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am index 4828e1fb..77142a7a 100644 --- a/lib/python/Tools/Makefile.am +++ b/lib/python/Tools/Makefile.am @@ -3,5 +3,6 @@ installdir = $(LIBDIR)/enigma2/python/Tools install_DATA = \ FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \ KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \ - RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py + RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \ + RedirectTime.py diff --git a/lib/python/Tools/RedirectTime.py b/lib/python/Tools/RedirectTime.py new file mode 100644 index 00000000..91c80022 --- /dev/null +++ b/lib/python/Tools/RedirectTime.py @@ -0,0 +1,18 @@ +import time +from enigma import eDVBLocalTimeHandler + +org_time = time.time +time_difference = eDVBLocalTimeHandler.getInstance().difference() + +def myTime(): + global time_difference + t = org_time() + t += time_difference + return t + +def timeChangedCallback(): + global time_difference + time_difference = eDVBLocalTimeHandler.getInstance().difference() + +eDVBLocalTimeHandler.getInstance().m_timeUpdated.get().append(timeChangedCallback) +time.time = myTime
\ No newline at end of file diff --git a/lib/python/Tools/__init__.py b/lib/python/Tools/__init__.py index a79bb103..df8d8873 100644 --- a/lib/python/Tools/__init__.py +++ b/lib/python/Tools/__init__.py @@ -1,2 +1,2 @@ -all = ["FuzzyDate.py", "XMLTools.py", "Directories.py", "KeyBindings.py", "BoundFunction.py", "ISO639.py", "Notifications", +all = ["RedirectTime.py", "FuzzyDate.py", "XMLTools.py", "Directories.py", "KeyBindings.py", "BoundFunction.py", "ISO639.py", "Notifications", "RedirectOutput.py", "DreamboxHardware.py"] diff --git a/lib/python/enigma_python.i b/lib/python/enigma_python.i index 8ee7fb39..13eca6b4 100644 --- a/lib/python/enigma_python.i +++ b/lib/python/enigma_python.i @@ -153,6 +153,7 @@ typedef long time_t; %immutable eDVBResourceManager::frontendUseMaskChanged; %immutable eAVSwitch::vcr_sb_notifier; %immutable ePythonMessagePump::recv_msg; +%immutable eDVBLocalTimeHandler::m_timeUpdated; %include <lib/base/message.h> %include <lib/base/console.h> %include <lib/base/nconfig.h> @@ -1,4 +1,4 @@ -from Tools import RedirectOutput +from Tools import RedirectOutput, RedirectTime from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, eDVBVolumecontrol, \ getDesktop, ePythonConfigQuery, eAVSwitch, eWindow, eServiceEvent from tools import * |
