Support turbo2.
[vuplus_dvbapp] / lib / python / Screens / ServiceInfo.py
index 61885df..7c0f0f0 100644 (file)
@@ -6,6 +6,8 @@ from Components.Label import Label
 from ServiceReference import ServiceReference
 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation, eServiceCenter
 from Tools.Transponder import ConvertToHumanReadable
 from ServiceReference import ServiceReference
 from enigma import eListboxPythonMultiContent, eListbox, gFont, iServiceInformation, eServiceCenter
 from Tools.Transponder import ConvertToHumanReadable
+from Components.NimManager import nimmanager
+import skin
 
 RT_HALIGN_LEFT = 0
 
 
 RT_HALIGN_LEFT = 0
 
@@ -30,11 +32,14 @@ def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4):
                else:
                        b = str(b)
 
                else:
                        b = str(b)
 
+       x, y, w, h = skin.parameters.get("ServiceInfo",(0, 0, 200, 30))
+       xa, ya, wa, ha = skin.parameters.get("ServiceInfoLeft",(0, 0, 200, 25))
+       xb, yb, wb, hb = skin.parameters.get("ServiceInfoRight",(220, 0, 350, 25))
        return [
                #PyObject *type, *px, *py, *pwidth, *pheight, *pfnt, *pstring, *pflags;
        return [
                #PyObject *type, *px, *py, *pwidth, *pheight, *pfnt, *pstring, *pflags;
-               (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 30, 0, RT_HALIGN_LEFT, ""),
-               (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 200, 25, 0, RT_HALIGN_LEFT, a),
-               (eListboxPythonMultiContent.TYPE_TEXT, 220, 0, 350, 25, 0, RT_HALIGN_LEFT, b)
+               (eListboxPythonMultiContent.TYPE_TEXT, x, y, w, h, 0, RT_HALIGN_LEFT, ""),
+               (eListboxPythonMultiContent.TYPE_TEXT, xa, ya, wa, ha, 0, RT_HALIGN_LEFT, a),
+               (eListboxPythonMultiContent.TYPE_TEXT, xb, yb, wb, hb, 0, RT_HALIGN_LEFT, b)
        ]
 
 class ServiceInfoList(HTMLComponent, GUIComponent):
        ]
 
 class ServiceInfoList(HTMLComponent, GUIComponent):
@@ -43,8 +48,9 @@ class ServiceInfoList(HTMLComponent, GUIComponent):
                self.l = eListboxPythonMultiContent()
                self.list = source
                self.l.setList(self.list)
                self.l = eListboxPythonMultiContent()
                self.list = source
                self.l.setList(self.list)
-               self.l.setFont(0, gFont("Regular", 23))
-               self.l.setItemHeight(25)
+               font = skin.fonts.get("ServiceInfo", ("Regular", 23, 25))
+               self.l.setFont(0, gFont(font[0], font[1]))
+               self.l.setItemHeight(font[2])
 
        GUI_WIDGET = eListbox
 
 
        GUI_WIDGET = eListbox
 
@@ -148,7 +154,11 @@ class ServiceInfo(Screen):
                                         "constellation"                : _("Constellation"),
                                         "transmission_mode"            : _("Transmission mode"),
                                         "guard_interval"               : _("Guard interval"),
                                         "constellation"                : _("Constellation"),
                                         "transmission_mode"            : _("Transmission mode"),
                                         "guard_interval"               : _("Guard interval"),
-                                        "hierarchy_information"        : _("Hierarchy info") }
+                                        "hierarchy_information"        : _("Hierarchy info"),
+                                        "plp_id"                       : _("PLP ID"),
+                                        "is_id"                        : _("Input Stream ID"),
+                                        "pls_mode"                     : _("PLS Mode"),
+                                        "pls_code"                     : _("PLS Code")}
                                Labels = [(conv[i], tp_info[i], TYPE_VALUE_DEC) for i in tp_info.keys()]
                                self.fillList(Labels)
 
                                Labels = [(conv[i], tp_info[i], TYPE_VALUE_DEC) for i in tp_info.keys()]
                                self.fillList(Labels)
 
@@ -182,7 +192,7 @@ class ServiceInfo(Screen):
                if frontendDataOrg and len(frontendDataOrg):
                        frontendData = ConvertToHumanReadable(frontendDataOrg)
                        if frontendDataOrg["tuner_type"] == "DVB-S":
                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),
+                               data = ((_("NIM"), chr(ord('A')+int(frontendData["tuner_number"])), TYPE_TEXT),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
                                                (_("System"), frontendData["system"], TYPE_TEXT),
                                                (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
                                                (_("System"), frontendData["system"], TYPE_TEXT),
                                                (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
@@ -194,8 +204,13 @@ class ServiceInfo(Screen):
                                                (_("FEC"), frontendData["fec_inner"], TYPE_TEXT),
                                                (_("Pilot"), frontendData.get("pilot", None), TYPE_TEXT),
                                                (_("Roll-off"), frontendData.get("rolloff", None), TYPE_TEXT))
                                                (_("FEC"), frontendData["fec_inner"], TYPE_TEXT),
                                                (_("Pilot"), frontendData.get("pilot", None), TYPE_TEXT),
                                                (_("Roll-off"), frontendData.get("rolloff", None), TYPE_TEXT))
+                               if nimmanager.isSupportMultistream(int(frontendData["tuner_number"])):
+                                       data += ((_("Input Stream ID"), frontendData.get("is_id", 0), TYPE_VALUE_DEC),
+                                               (_("PLS Mode"), frontendData.get("pls_mode", None), TYPE_TEXT),
+                                               (_("PLS Code"), frontendData.get("pls_code", 0), TYPE_VALUE_DEC))
+                               return data
                        elif frontendDataOrg["tuner_type"] == "DVB-C":
                        elif frontendDataOrg["tuner_type"] == "DVB-C":
-                               return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+                               return ((_("NIM"), chr(ord('A')+int(frontendData["tuner_number"])), TYPE_TEXT),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
                                                (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
                                                (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
                                                (_("Modulation"), frontendData["modulation"], TYPE_TEXT),
                                                (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
@@ -203,8 +218,9 @@ class ServiceInfo(Screen):
                                                (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
                                                (_("FEC"), frontendData["fec_inner"], TYPE_TEXT))
                        elif frontendDataOrg["tuner_type"] == "DVB-T":
                                                (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
                                                (_("FEC"), frontendData["fec_inner"], TYPE_TEXT))
                        elif frontendDataOrg["tuner_type"] == "DVB-T":
-                               return ((_("NIM"), ('A', 'B', 'C', 'D')[frontendData["tuner_number"]], TYPE_TEXT),
+                               data = ((_("NIM"), chr(ord('A')+int(frontendData["tuner_number"])), TYPE_TEXT),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
                                                (_("Type"), frontendData["tuner_type"], TYPE_TEXT),
+                                               (_("System"), frontendData["system"], TYPE_TEXT),
                                                (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
                                                (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
                                                (_("Bandwidth"), frontendData["bandwidth"], TYPE_VALUE_DEC),
                                                (_("Frequency"), frontendData["frequency"], TYPE_VALUE_DEC),
                                                (_("Inversion"), frontendData["inversion"], TYPE_TEXT),
                                                (_("Bandwidth"), frontendData["bandwidth"], TYPE_VALUE_DEC),
@@ -214,6 +230,10 @@ class ServiceInfo(Screen):
                                                (_("Transmission mode"), frontendData["transmission_mode"], TYPE_TEXT),
                                                (_("Guard interval"), frontendData["guard_interval"], TYPE_TEXT),
                                                (_("Hierarchy info"), frontendData["hierarchy_information"], TYPE_TEXT))
                                                (_("Transmission mode"), frontendData["transmission_mode"], TYPE_TEXT),
                                                (_("Guard interval"), frontendData["guard_interval"], TYPE_TEXT),
                                                (_("Hierarchy info"), frontendData["hierarchy_information"], TYPE_TEXT))
+                               if frontendData.has_key("plp_id"):
+                                       data += ((_("PLP ID"), frontendData["plp_id"], TYPE_VALUE_DEC), )
+                               return data
+
                return [ ]
 
        def fillList(self, Labels):
                return [ ]
 
        def fillList(self, Labels):