cleanup, convert to human readable
authorghost <andreas.monzner@multimedia-labs.de>
Tue, 20 Jan 2009 00:21:02 +0000 (01:21 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Tue, 20 Jan 2009 00:21:02 +0000 (01:21 +0100)
lib/python/Screens/ServiceInfo.py
lib/python/Tools/Makefile.am
lib/python/Tools/Transponder.py [new file with mode: 0644]
lib/service/servicedvb.cpp

index d233c9813026d36a775bf4bdd5e0a0ae0c404532..e07b32082d514bfab7f4cee03461f781b75499a6 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 Tools.Transponder import ConvertToHumanReadable
 
 RT_HALIGN_LEFT = 0
 
@@ -131,7 +132,8 @@ class ServiceInfo(Screen):
                        self.fillList(Labels)
                else:
                        if self.transponder_info:
-                               conv = { "type"                         : _("Transponder Type"),
+                               tp_info = ConvertToHumanReadable(self.transponder_info)
+                               conv = { "tuner_type"           : _("Transponder Type"),
                                                 "system"                       : _("System"),
                                                 "modulation"           : _("Modulation"),
                                                 "orbital_position" : _("Orbital Position"),
@@ -150,8 +152,8 @@ class ServiceInfo(Screen):
                                                 "guard_interval"       : _("Guard Interval"),
                                                 "hierarchy_information": _("Hierarchy Information") }
                                Labels = [ ]
-                               for i in self.transponder_info.keys():
-                                       Labels.append( (conv[i], self.transponder_info[i], TYPE_VALUE_DEC) )
+                               for i in tp_info.keys():
+                                       Labels.append( (conv[i], tp_info[i], TYPE_VALUE_DEC) )
                                self.fillList(Labels)
 
        def pids(self):
@@ -180,9 +182,10 @@ class ServiceInfo(Screen):
                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),
@@ -194,7 +197,7 @@ class ServiceInfo(Screen):
                                                        ("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
                                                        ("Pilot", frontendData.get("pilot", None), TYPE_TEXT),
                                                        ("Rolloff", frontendData.get("rolloff", None), TYPE_TEXT))
-                       elif frontendData["tuner_type"] == "DVB-C":
+                       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),
@@ -202,7 +205,7 @@ class ServiceInfo(Screen):
                                                ("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),
index 609f3bab637d94ab47df5458f03404e856b48334..5617cb663032bb0d98367aa50fbcf747c9d5d8a8 100644 (file)
@@ -4,4 +4,4 @@ install_PYTHON = \
        FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \
        KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \
        RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \
-       LoadPixmap.py Profile.py HardwareInfo.py
+       LoadPixmap.py Profile.py HardwareInfo.py Transponder.py
diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py
new file mode 100644 (file)
index 0000000..108397b
--- /dev/null
@@ -0,0 +1,56 @@
+from enigma import eDVBFrontendParametersSatellite, eDVBFrontendParametersCable, eDVBFrontendParametersTerrestrial
+
+def ConvertToHumanReadable(tp):
+       ret = { }
+       type = tp.get("tuner_type", "None")
+       if type == "DVB-S":
+               ret["tuner_type"] = _("Satellite")
+               ret["frequency"] = tp["frequency"]
+               ret["symbol_rate"] = tp["symbol_rate"]
+               ret["orbital_position"] = tp["orbital_position"]
+               ret["inversion"] = {
+                       eDVBFrontendParametersSatellite.Inversion_Unknown : _("Auto"),
+                       eDVBFrontendParametersSatellite.Inversion_On : _("On"),
+                       eDVBFrontendParametersSatellite.Inversion_Off : _("Off")}[tp["inversion"]]
+               ret["fec_inner"] = {
+                       eDVBFrontendParametersSatellite.FEC_None : _("None"),
+                       eDVBFrontendParametersSatellite.FEC_Auto : _("Auto"),
+                       eDVBFrontendParametersSatellite.FEC_1_2 : "1/2",
+                       eDVBFrontendParametersSatellite.FEC_2_3 : "2/3",
+                       eDVBFrontendParametersSatellite.FEC_3_4 : "3/4",
+                       eDVBFrontendParametersSatellite.FEC_5_6 : "5/6",
+                       eDVBFrontendParametersSatellite.FEC_7_8 : "7/8",
+                       eDVBFrontendParametersSatellite.FEC_3_5 : "3/5",
+                       eDVBFrontendParametersSatellite.FEC_4_5 : "4/5",
+                       eDVBFrontendParametersSatellite.FEC_8_9 : "8/9",
+                       eDVBFrontendParametersSatellite.FEC_9_10 : "9/10"}[tp["fec_inner"]]
+               ret["modulation"] = {
+                       eDVBFrontendParametersSatellite.Modulation_Auto : _("Auto"),
+                       eDVBFrontendParametersSatellite.Modulation_QPSK : "QPSK",
+                       eDVBFrontendParametersSatellite.Modulation_QAM16 : "QAM16",
+                       eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK"}[tp["modulation"]]
+               ret["polarization"] = {
+                       eDVBFrontendParametersSatellite.Polarisation_Horizontal : _("Horizontal"),
+                       eDVBFrontendParametersSatellite.Polarisation_Vertical : _("Vertical"),
+                       eDVBFrontendParametersSatellite.Polarisation_CircularLeft : _("Circular left"),
+                       eDVBFrontendParametersSatellite.Polarisation_CircularRight : _("Circular right")}[tp["polarization"]]
+               ret["system"] = {
+                       eDVBFrontendParametersSatellite.System_DVB_S : "DVB-S",
+                       eDVBFrontendParametersSatellite.System_DVB_S2 : "DVB-S2"}[tp["system"]]
+               if ret["system"] == "DVB-S2":
+                       ret["rolloff"] = {
+                               eDVBFrontendParametersSatellite.RollOff_alpha_0_35 : "0.35",
+                               eDVBFrontendParametersSatellite.RollOff_alpha_0_25 : "0.25",
+                               eDVBFrontendParametersSatellite.RollOff_alpha_0_20 : "0.20"}[tp["rolloff"]]
+                       ret["pilot"] = {
+                               eDVBFrontendParametersSatellite.Pilot_Unknown : _("Auto"),
+                               eDVBFrontendParametersSatellite.Pilot_On : _("On"),
+                               eDVBFrontendParametersSatellite.Pilot_Off : _("Off")}[tp["pilot"]]
+       elif type == "DVB-C":
+               ret["tuner_type"] = _("Cable")
+       elif type == "DVB-T":
+               ret["tuner_type"] = _("Terrestrial")
+       for x in tp.keys():
+               if not ret.has_key(x):
+                       ret[x] = tp[x]
+       return ret
index 0dbc8be06aa848d30249a19a92db9018b4d986f1..59831680d8f160ef022bd825d5c9934571a4b873 100644 (file)
@@ -102,7 +102,7 @@ extern void PutToDict(ePyObject &dict, const char*key, const char *value); // de
 
 void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &feparm)
 {
-       PutToDict(dict, "type", "DVB-S");
+       PutToDict(dict, "tuner_type", "DVB-S");
        PutToDict(dict, "frequency", feparm.frequency);
        PutToDict(dict, "symbol_rate", feparm.symbol_rate);
        PutToDict(dict, "orbital_position", feparm.orbital_position);
@@ -120,7 +120,7 @@ void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &fe
 
 void PutTerrestrialDataToDict(ePyObject &dict, eDVBFrontendParametersTerrestrial &feparm)
 {
-       PutToDict(dict, "type", "DVB-T");
+       PutToDict(dict, "tuner_type", "DVB-T");
        PutToDict(dict, "frequency", feparm.frequency);
        PutToDict(dict, "bandwidth", feparm.bandwidth);
        PutToDict(dict, "code_rate_lp", feparm.code_rate_LP);
@@ -134,7 +134,7 @@ void PutTerrestrialDataToDict(ePyObject &dict, eDVBFrontendParametersTerrestrial
 
 void PutCableDataToDict(ePyObject &dict, eDVBFrontendParametersCable &feparm)
 {
-       PutToDict(dict, "type", "DVB-C");
+       PutToDict(dict, "tuner_type", "DVB-C");
        PutToDict(dict, "frequency", feparm.frequency);
        PutToDict(dict, "symbol_rate", feparm.symbol_rate);
        PutToDict(dict, "modulation", feparm.modulation);