make factory reset description translatable
[enigma2.git] / lib / python / Screens / ServiceInfo.py
index 7bd8aa9821dbae3e1cfe1694c3011aee1ad2ee0a..df8af4b4173881e42bbb34ebeb00b993d0c38478 100644 (file)
@@ -5,6 +5,7 @@ from Components.ActionMap import ActionMap
 from Components.Label import Label
 from ServiceReference import ServiceReference
 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation, eServiceCenter
 from Components.Label import Label
 from ServiceReference import ServiceReference
 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation, eServiceCenter
+from Tools.Transponder import ConvertToHumanReadable
 
 RT_HALIGN_LEFT = 0
 
 
 RT_HALIGN_LEFT = 0
 
@@ -14,6 +15,9 @@ TYPE_VALUE_DEC = 2
 TYPE_VALUE_HEX_DEC = 3
 TYPE_SLIDER = 4
 
 TYPE_VALUE_HEX_DEC = 3
 TYPE_SLIDER = 4
 
+def to_unsigned(x):
+       return x & 0xFFFFFFFF
+
 def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4):
        res = [ ]
 
 def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4):
        res = [ ]
 
@@ -21,13 +25,13 @@ def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4):
        res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 30, 0, RT_HALIGN_LEFT, ""))
        res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 25, 0, RT_HALIGN_LEFT, a))
        print "b:", b
        res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 30, 0, RT_HALIGN_LEFT, ""))
        res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 25, 0, RT_HALIGN_LEFT, a))
        print "b:", b
-       if type(b) is not str:
+       if not isinstance(b, str):
                if valueType == TYPE_VALUE_HEX:
                if valueType == TYPE_VALUE_HEX:
-                       b = ("0x%0" + str(param) + "x") % b
+                       b = ("0x%0" + str(param) + "x") % to_unsigned(b)
                elif valueType == TYPE_VALUE_DEC:
                        b = str(b)
                elif valueType == TYPE_VALUE_HEX_DEC:
                elif valueType == TYPE_VALUE_DEC:
                        b = str(b)
                elif valueType == TYPE_VALUE_HEX_DEC:
-                       b = ("0x%0" + str(param) + "x (%dd)") % (b, b)
+                       b = ("0x%0" + str(param) + "x (%dd)") % (to_unsigned(b), b)
                else:
                        b = str(b)
        
                else:
                        b = str(b)
        
@@ -128,26 +132,28 @@ class ServiceInfo(Screen):
                        self.fillList(Labels)
                else:
                        if self.transponder_info:
                        self.fillList(Labels)
                else:
                        if self.transponder_info:
-                               conv = { "type"                         : _("Transponder Type"),
-                                                "frequency"            : _("Frequency"),
-                                                "symbolrate"           : _("Symbolrate"),
-                                                "orbital position" : _("Orbital Position"),
-                                                "inversion"            : _("Inversion"),
-                                                "fec inner"            : _("FEC"),
-                                                "modulation"           : _("Modulation"),
-                                                "polarization"         : _("Polarization"),
-                                                "roll off"                     : _("Rolloff"),
+                               tp_info = ConvertToHumanReadable(self.transponder_info)
+                               conv = { "tuner_type"           : _("Transponder Type"),
                                                 "system"                       : _("System"),
                                                 "system"                       : _("System"),
+                                                "modulation"           : _("Modulation"),
+                                                "orbital_position" : _("Orbital Position"),
+                                                "frequency"            : _("Frequency"),
+                                                "symbol_rate"          : _("Symbolrate"),
                                                 "bandwidth"            : _("Bandwidth"),
                                                 "bandwidth"            : _("Bandwidth"),
-                                                "code rate lp"         : _("Coderate LP"),
-                                                "code rate hp"         : _("Coderate HP"),
+                                                "polarization"         : _("Polarization"),
+                                                "inversion"            : _("Inversion"),
+                                                "pilot"                        : _("Pilot"),
+                                                "rolloff"                      : _("Rolloff"),
+                                                "fec_inner"            : _("FEC"),
+                                                "code_rate_lp"         : _("Coderate LP"),
+                                                "code_rate_hp"         : _("Coderate HP"),
                                                 "constellation"        : _("Constellation"),
                                                 "constellation"        : _("Constellation"),
-                                                "transmission mode": _("Transmission Mode"),
-                                                "guard interval"       : _("Guard Interval"),
-                                                "hierarchy"            : _("Hierarchy Information") }
+                                                "transmission_mode": _("Transmission Mode"),
+                                                "guard_interval"       : _("Guard Interval"),
+                                                "hierarchy_information": _("Hierarchy Information") }
                                Labels = [ ]
                                Labels = [ ]
-                               for i in self.transponder_info.keys():
-                                       Labels.append( (conv[i], self.transponder_info[i], TYPE_TEXT) )
+                               for i in tp_info.keys():
+                                       Labels.append( (conv[i], tp_info[i], TYPE_VALUE_DEC) )
                                self.fillList(Labels)
 
        def pids(self):
                                self.fillList(Labels)
 
        def pids(self):
@@ -176,9 +182,10 @@ class ServiceInfo(Screen):
                if self.type == TYPE_SERVICE_INFO:
                        self.showFrontendData(False)
 
                if self.type == TYPE_SERVICE_INFO:
                        self.showFrontendData(False)
 
-       def getFEData(self, frontendData):
-               if frontendData and len(frontendData):
-                       if frontendData["tuner_type"] == "DVB-S":
+       def getFEData(self, frontendDataOrg):
+               if frontendDataOrg and len(frontendDataOrg):
+                       frontendData = ConvertToHumanReadable(frontendDataOrg)
+                       if frontendDataOrg["tuner_type"] == "DVB-S":
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                        ("Type", frontendData["system"], TYPE_TEXT),
                                                        ("Modulation", frontendData["modulation"], TYPE_TEXT),
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                        ("Type", frontendData["system"], TYPE_TEXT),
                                                        ("Modulation", frontendData["modulation"], TYPE_TEXT),
@@ -187,8 +194,10 @@ class ServiceInfo(Screen):
                                                        ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
                                                        ("Polarization", frontendData["polarization"], TYPE_TEXT),
                                                        ("Inversion", frontendData["inversion"], TYPE_TEXT),
                                                        ("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
                                                        ("Polarization", frontendData["polarization"], TYPE_TEXT),
                                                        ("Inversion", frontendData["inversion"], TYPE_TEXT),
-                                                       ("FEC inner", frontendData["fec_inner"], TYPE_TEXT))
-                       elif frontendData["tuner_type"] == "DVB-C":
+                                                       ("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
+                                                       ("Pilot", frontendData.get("pilot", None), TYPE_TEXT),
+                                                       ("Rolloff", frontendData.get("rolloff", None), TYPE_TEXT))
+                       elif frontendDataOrg["tuner_type"] == "DVB-C":
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                ("Type", frontendData["tuner_type"], TYPE_TEXT),
                                                ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                ("Type", frontendData["tuner_type"], TYPE_TEXT),
                                                ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
@@ -196,7 +205,7 @@ class ServiceInfo(Screen):
                                                ("Modulation", frontendData["modulation"], TYPE_TEXT),
                                                ("Inversion", frontendData["inversion"], TYPE_TEXT),
                                                ("FEC inner", frontendData["fec_inner"], TYPE_TEXT))
                                                ("Modulation", frontendData["modulation"], TYPE_TEXT),
                                                ("Inversion", frontendData["inversion"], TYPE_TEXT),
                                                ("FEC inner", frontendData["fec_inner"], TYPE_TEXT))
-                       elif frontendData["tuner_type"] == "DVB-T":
+                       elif frontendDataOrg["tuner_type"] == "DVB-T":
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                ("Type", frontendData["tuner_type"], TYPE_TEXT),
                                                ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
                                return (("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
                                                ("Type", frontendData["tuner_type"], TYPE_TEXT),
                                                ("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
@@ -214,6 +223,8 @@ class ServiceInfo(Screen):
                tlist = [ ]
 
                for item in Labels:
                tlist = [ ]
 
                for item in Labels:
+                       if item[1] is None:
+                               continue;
                        value = item[1]
                        if len(item) < 4:
                                tlist.append(ServiceInfoListEntry(item[0]+":", value, item[2]))
                        value = item[1]
                        if len(item) < 4:
                                tlist.append(ServiceInfoListEntry(item[0]+":", value, item[2]))