do not let the user leave the parental control setup when setup protection
[enigma2.git] / lib / python / Screens / ServiceInfo.py
index c05bd25e8b254473ba3422d9e0628c04dd8e95a1..fa94815094e572e2d0b48b5e828ddd13f25bfab7 100644 (file)
@@ -75,6 +75,9 @@ class ServiceInfo(Screen):
                        self["blue"] = Label()
                        info = eServiceCenter.getInstance().info(serviceref)
                        self.transponder_info = info.getInfoObject(serviceref, iServiceInformation.sTransponderData)
+                       # info is a iStaticServiceInformation, not a iServiceInformation
+                       self.info = None
+                       self.feinfo = None
                else:
                        self.type = TYPE_SERVICE_INFO
                        self["red"] = Label(_("Serviceinfo"))
@@ -97,7 +100,7 @@ class ServiceInfo(Screen):
 
        def information(self):
                if self.type == TYPE_SERVICE_INFO:
-                       if self.session.nav.getCurrentlyPlayingServiceReference() is not None:
+                       if self.session.nav.getCurrentlyPlayingServiceReference():
                                name = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference()).getServiceName()
                        else:
                                name = "N/A"
@@ -106,11 +109,19 @@ class ServiceInfo(Screen):
                                aspect = "4:3"
                        else:
                                aspect = "16:9"
-                       Labels = ( ("Name", name, TYPE_TEXT),
-                                          ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
-                                          ("Videoformat", aspect, TYPE_TEXT),
-                                          ("Videosize", "%dx%d" %(self.getServiceInfoValue(iServiceInformation.sVideoWidth), self.getServiceInfoValue(iServiceInformation.sVideoHeight)), TYPE_TEXT),
-                                          ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8))
+                       width = self.info and self.info.getInfo(iServiceInformation.sVideoWidth) or -1
+                       height = self.info and self.info.getInfo(iServiceInformation.sVideoHeight) or -1
+                       if width != -1 and height != -1:
+                               Labels = ( ("Name", name, TYPE_TEXT),
+                                                  ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+                                                  ("Videoformat", aspect, TYPE_TEXT),
+                                                  ("Videosize", "%dx%d" %(width, height), TYPE_TEXT),
+                                                  ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8))
+                       else:
+                               Labels = ( ("Name", name, TYPE_TEXT),
+                                                  ("Provider", self.getServiceInfoValue(iServiceInformation.sProvider), TYPE_TEXT),
+                                                  ("Videoformat", aspect, TYPE_TEXT),
+                                                  ("Namespace", self.getServiceInfoValue(iServiceInformation.sNamespace), TYPE_VALUE_HEX, 8))
                        self.fillList(Labels)
                else:
                        if self.transponder_info: