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 Components.NimManager import nimmanager
+import skin
 
 RT_HALIGN_LEFT = 0
 
@@ -30,11 +32,14 @@ def ServiceInfoListEntry(a, b, valueType=TYPE_TEXT, param=4):
                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;
-               (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):
@@ -43,8 +48,9 @@ class ServiceInfoList(HTMLComponent, GUIComponent):
                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
 
@@ -148,7 +154,11 @@ class ServiceInfo(Screen):
                                         "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)
 
@@ -182,7 +192,7 @@ class ServiceInfo(Screen):
                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),
@@ -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))
+                               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":
-                               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),
@@ -203,8 +218,9 @@ class ServiceInfo(Screen):
                                                (_("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),
+                                               (_("System"), frontendData["system"], TYPE_TEXT),
                                                (_("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))
+                               if frontendData.has_key("plp_id"):
+                                       data += ((_("PLP ID"), frontendData["plp_id"], TYPE_VALUE_DEC), )
+                               return data
+
                return [ ]
 
        def fillList(self, Labels):