use frontend type infomation in /proc/nim_sockets to detect if a frontend
[enigma2.git] / Navigation.py
index eb1a2b14585c3e7ca09deb40c89758c6c248c99e..f46b92d44fac0784ed55ae1ea2ebced32a05a29c 100644 (file)
@@ -1,9 +1,11 @@
 from enigma import eServiceCenter, eServiceReference, pNavigation, getBestPlayableServiceReference, iPlayableService
 from Components.ParentalControl import parentalControl
 from Tools.BoundFunction import boundFunction
 from enigma import eServiceCenter, eServiceReference, pNavigation, getBestPlayableServiceReference, iPlayableService
 from Components.ParentalControl import parentalControl
 from Tools.BoundFunction import boundFunction
+from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime, getFPWasTimerWakeup, clearFPWasTimerWakeup
+from time import time
 import RecordTimer
 import SleepTimer
 import RecordTimer
 import SleepTimer
-
+import Screens.Standby
 import NavigationInstance
 import ServiceReference
 
 import NavigationInstance
 import ServiceReference
 
@@ -27,6 +29,19 @@ class Navigation:
                self.currentlyPlayingServiceReference = None
                self.currentlyPlayingService = None
                self.RecordTimer = RecordTimer.RecordTimer()
                self.currentlyPlayingServiceReference = None
                self.currentlyPlayingService = None
                self.RecordTimer = RecordTimer.RecordTimer()
+               if getFPWasTimerWakeup():
+                       clearFPWasTimerWakeup()
+                       if getFPWasTimerWakeup(): # sanity check to detect if the FP driver is working correct!
+                               print "buggy fp driver detected!!! please update drivers.... ignore timer wakeup!"
+                               setFPWakeuptime(0)
+                       elif len(self.getRecordings()) or abs(self.RecordTimer.getNextRecordingTime() - time()) <= 360:
+                               setFPWakeuptime(0x89ABCDEF)
+                               if getFPWakeuptime() != 0x89ABCDEF: # sanity check to detect if the FP Atmel Firmware is working correct!
+                                       print "buggy atmel firmware detected!! atmel update needed... ignore fp timer wakeup!"
+                                       setFPWakeuptime(0)
+                               elif not Screens.Standby.inTryQuitMainloop: # not a shutdown messagebox is open
+                                       RecordTimer.RecordTimerEntry.TryQuitMainloop(0) # start shutdown handling
+               setFPWakeuptime(1)
                self.SleepTimer = SleepTimer.SleepTimer()
 
        def dispatchEvent(self, i):
                self.SleepTimer = SleepTimer.SleepTimer()
 
        def dispatchEvent(self, i):