don't crash when removing a marker from bouquet list
[enigma2.git] / Navigation.py
index 9ba0afc55603c95729dd82f0d5ccc8b83a722d94..53e9ed426153516466b627d147e2aeadd7fd17b7 100644 (file)
@@ -2,6 +2,7 @@ from enigma import *
 from Components.ParentalControl import parentalControl
 from Tools.BoundFunction import boundFunction
 import RecordTimer
 from Components.ParentalControl import parentalControl
 from Tools.BoundFunction import boundFunction
 import RecordTimer
+import SleepTimer
 
 import NavigationInstance
 import ServiceReference
 
 import NavigationInstance
 import ServiceReference
@@ -21,18 +22,26 @@ class Navigation:
                Nav.navcore = self
                
                self.pnav = pNavigation()
                Nav.navcore = self
                
                self.pnav = pNavigation()
-               self.pnav.m_event.get().append(self.callEvent)
+               self.pnav.m_event.get().append(self.dispatchEvent)
+               self.pnav.m_record_event.get().append(self.dispatchRecordEvent)
                self.event = [ ]
                self.event = [ ]
+               self.record_event = [ ]
                self.currentlyPlayingServiceReference = None
                self.currentlyPlayingService = None
                self.state = 0
                self.RecordTimer = RecordTimer.RecordTimer()
                self.currentlyPlayingServiceReference = None
                self.currentlyPlayingService = None
                self.state = 0
                self.RecordTimer = RecordTimer.RecordTimer()
-               
-       def callEvent(self, i):
+               self.SleepTimer = SleepTimer.SleepTimer()
+
+       def dispatchEvent(self, i):
                self.state = i != 1
                for x in self.event:
                        x(i)
 
                self.state = i != 1
                for x in self.event:
                        x(i)
 
+       def dispatchRecordEvent(self, rec_service, event):
+#              print "record_event", rec_service, event
+               for x in self.record_event:
+                       x(rec_service, event)
+
        def playService(self, ref, checkParentalControl = True):
                print "playing", ref and ref.toString()
                self.currentlyPlayingServiceReference = None
        def playService(self, ref, checkParentalControl = True):
                print "playing", ref and ref.toString()
                self.currentlyPlayingServiceReference = None
@@ -41,7 +50,7 @@ class Navigation:
                        self.stopService()
                        return 0
                
                        self.stopService()
                        return 0
                
-               if not checkParentalControl or parentalControl.isServicePlayable(ref, boundFunction(self.playService, checkParentalControl = False)):
+               if not checkParentalControl or parentalControl.isServicePlayable(ref.toCompareString(), boundFunction(self.playService, checkParentalControl = False)):
                        if self.pnav and not self.pnav.playService(ref):
                                self.currentlyPlayingServiceReference = ref
                                return 0
                        if self.pnav and not self.pnav.playService(ref):
                                self.currentlyPlayingServiceReference = ref
                                return 0
@@ -64,6 +73,13 @@ class Navigation:
                else:
                        return service
 
                else:
                        return service
 
+       def stopRecordService(self, service):
+               ret = self.pnav and self.pnav.stopRecordService(service)
+               return ret
+
+       def getRecordings(self):
+               return self.pnav and self.pnav.getRecordings()
+
        def getCurrentService(self):
                if self.state:
                        if not self.currentlyPlayingService:
        def getCurrentService(self):
                if self.state:
                        if not self.currentlyPlayingService: