From 219e5a3edf67e060c751b70419a8a5293fea169a Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Tue, 18 Nov 2008 13:15:12 +0100 Subject: add isMount encapsulation --- lib/python/Tools/Directories.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/python/Tools') diff --git a/lib/python/Tools/Directories.py b/lib/python/Tools/Directories.py index 2b60924c..0d238b30 100644 --- a/lib/python/Tools/Directories.py +++ b/lib/python/Tools/Directories.py @@ -126,6 +126,9 @@ def resolveFilename(scope, base = "", path_prefix = None): def pathExists(path): return os_path.exists(path) +def isMount(path): + return os_path.ismount(path) + def createDir(path, makeParents = False): try: if makeParents: -- cgit v1.2.3 From 22e4755ccb4820da1a50c7301951978dc45eaab3 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 8 Dec 2008 13:43:31 +0100 Subject: add search parameter for NumericalTextInput which supplies a mapping with only lowercase and standard ascii characters plus number plus SQL wildcards --- lib/python/Tools/NumericalTextInput.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'lib/python/Tools') diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py index 5954c9c3..be4cf01f 100644 --- a/lib/python/Tools/NumericalTextInput.py +++ b/lib/python/Tools/NumericalTextInput.py @@ -3,12 +3,33 @@ from enigma import eTimer from Components.Language import language class NumericalTextInput: - def __init__(self, nextFunc=None, handleTimeout = True): + def __init__(self, nextFunc=None, handleTimeout = True, search = False): self.mapping = [] self.lang = language.getLanguage() self.useableChars=None self.nextFunction=nextFunc - + + if handleTimeout: + self.timer = eTimer() + self.timer.callback.append(self.timeout) + else: + self.timer = None + self.lastKey = -1 + self.pos = -1 + + if search: + self.mapping.append (u"%_0") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"abc2") # 2 + self.mapping.append (u"def3") # 3 + self.mapping.append (u"ghi4") # 4 + self.mapping.append (u"jkl5") # 5 + self.mapping.append (u"mno6") # 6 + self.mapping.append (u"pqrs7") # 7 + self.mapping.append (u"tuv8") # 8 + self.mapping.append (u"wxyz9") # 9 + return + if self.lang == 'de_DE': self.mapping.append (u".,?'+\"0-()@/:_$!") # 0 self.mapping.append (u" 1") # 1 @@ -54,14 +75,6 @@ class NumericalTextInput: self.mapping.append (u"tuv8TUV") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 - if handleTimeout: - self.timer = eTimer() - self.timer.callback.append(self.timeout) - else: - self.timer = None - self.lastKey = -1 - self.pos = -1 - def setUseableChars(self, useable): self.useableChars = useable -- cgit v1.2.3 From 91f1726f99acf507973513a7203cbd1306275718 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Mon, 8 Dec 2008 14:50:20 +0100 Subject: change character encoding of source file from 8859-1 to utf-8 --- lib/python/Tools/NumericalTextInput.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'lib/python/Tools') diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py index be4cf01f..c5576405 100644 --- a/lib/python/Tools/NumericalTextInput.py +++ b/lib/python/Tools/NumericalTextInput.py @@ -1,4 +1,4 @@ -# -*- coding: iso-8859-1 -*- +# -*- coding: utf-8 -*- from enigma import eTimer from Components.Language import language @@ -33,33 +33,33 @@ class NumericalTextInput: if self.lang == 'de_DE': self.mapping.append (u".,?'+\"0-()@/:_$!") # 0 self.mapping.append (u" 1") # 1 - self.mapping.append (u"abc2ABC") # 2 + self.mapping.append (u"aäbc2AÄBC") # 2 self.mapping.append (u"def3DEF") # 3 self.mapping.append (u"ghi4GHI") # 4 self.mapping.append (u"jkl5JKL") # 5 - self.mapping.append (u"mno6MNO") # 6 - self.mapping.append (u"pqrs7PQRS") # 7 - self.mapping.append (u"tuv8TUV") # 8 + self.mapping.append (u"mnoö6MNOÖ") # 6 + self.mapping.append (u"pqrsß7PQRSß") # 7 + self.mapping.append (u"tuüv8TUÜV") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 elif self.lang == 'es_ES': self.mapping.append (u".,?'+\"0-()@/:_$!") # 0 self.mapping.append (u" 1") # 1 - self.mapping.append (u"abc2ABC") # 2 - self.mapping.append (u"def3DEF") # 3 - self.mapping.append (u"ghi4GHI") # 4 + self.mapping.append (u"abcáà2ABCÁÀ") # 2 + self.mapping.append (u"deéèf3DEFÉÈ") # 3 + self.mapping.append (u"ghiíì4GHIÍÌ") # 4 self.mapping.append (u"jkl5JKL") # 5 - self.mapping.append (u"mno6MNO") # 6 + self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6 self.mapping.append (u"pqrs7PQRS") # 7 - self.mapping.append (u"tuv8TUV") # 8 + self.mapping.append (u"tuvúù8TUVÚÙ") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 if self.lang in ['sv_SE', 'fi_FI']: self.mapping.append (u".,?'+\"0-()@/:_$!") # 0 self.mapping.append (u" 1") # 1 - self.mapping.append (u"abc2ABC") # 2 - self.mapping.append (u"def3DEF") # 3 + self.mapping.append (u"abcåä2ABCÅÄ") # 2 + self.mapping.append (u"defé3DEFÉ") # 3 self.mapping.append (u"ghi4GHI") # 4 self.mapping.append (u"jkl5JKL") # 5 - self.mapping.append (u"mno6MNO") # 6 + self.mapping.append (u"mnoö6MNOÖ") # 6 self.mapping.append (u"pqrs7PQRS") # 7 self.mapping.append (u"tuv8TUV") # 8 self.mapping.append (u"wxyz9WXYZ") # 9 -- cgit v1.2.3 From 4f4a0a7483b746cc148fa94665eb2975e6c8df90 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 20 Jan 2009 01:21:02 +0100 Subject: cleanup, convert to human readable --- lib/python/Screens/ServiceInfo.py | 19 +++++++------ lib/python/Tools/Makefile.am | 2 +- lib/python/Tools/Transponder.py | 56 +++++++++++++++++++++++++++++++++++++++ lib/service/servicedvb.cpp | 6 ++--- 4 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 lib/python/Tools/Transponder.py (limited to 'lib/python/Tools') diff --git a/lib/python/Screens/ServiceInfo.py b/lib/python/Screens/ServiceInfo.py index d233c981..e07b3208 100644 --- a/lib/python/Screens/ServiceInfo.py +++ b/lib/python/Screens/ServiceInfo.py @@ -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), diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am index 609f3bab..5617cb66 100644 --- a/lib/python/Tools/Makefile.am +++ b/lib/python/Tools/Makefile.am @@ -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 index 00000000..108397b6 --- /dev/null +++ b/lib/python/Tools/Transponder.py @@ -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 diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 0dbc8be0..59831680 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -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); -- cgit v1.2.3 From 3de2ba79b56e3b227f72244631111e1847b49772 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 20 Jan 2009 11:51:15 +0100 Subject: also add conversion for -C and -T --- lib/python/Tools/Transponder.py | 67 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) (limited to 'lib/python/Tools') diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py index 108397b6..049f4211 100644 --- a/lib/python/Tools/Transponder.py +++ b/lib/python/Tools/Transponder.py @@ -5,9 +5,6 @@ def ConvertToHumanReadable(tp): 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"), @@ -48,8 +45,72 @@ def ConvertToHumanReadable(tp): eDVBFrontendParametersSatellite.Pilot_Off : _("Off")}[tp["pilot"]] elif type == "DVB-C": ret["tuner_type"] = _("Cable") + ret["modulation"] = { + eDVBFrontendParametersCable.Modulation_Auto: _("Auto"), + eDVBFrontendParametersCable.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersCable.Modulation_QAM32 : "QAM32", + eDVBFrontendParametersCable.Modulation_QAM64 : "QAM64", + eDVBFrontendParametersCable.Modulation_QAM128 : "QAM128", + eDVBFrontendParametersCable.Modulation_QAM256 : "QAM256"}[tp["modulation"]] + ret["inversion"] = { + eDVBFrontendParametersCable.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersCable.Inversion_On : _("On"), + eDVBFrontendParametersCable.Inversion_Off : _("Off")}[tp["inversion"]] + ret["fec_inner"] = { + eDVBFrontendParametersCable.FEC_None : _("None"), + eDVBFrontendParametersCable.FEC_Auto : _("Auto"), + eDVBFrontendParametersCable.FEC_1_2 : "1/2", + eDVBFrontendParametersCable.FEC_2_3 : "2/3", + eDVBFrontendParametersCable.FEC_3_4 : "3/4", + eDVBFrontendParametersCable.FEC_5_6 : "5/6", + eDVBFrontendParametersCable.FEC_7_8 : "7/8", + eDVBFrontendParametersCable.FEC_8_9 : "8/9"}[tp["fec_inner"]] elif type == "DVB-T": ret["tuner_type"] = _("Terrestrial") + ret["bandwidth"] = { + eDVBFrontendParametersTerrestrial.Bandwidth_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.Bandwidth_8MHz : "8 MHz", + eDVBFrontendParametersTerrestrial.Bandwidth_7MHz : "7 MHz", + eDVBFrontendParametersTerrestrial.Bandwidth_6MHz : "6 MHz"}[tp["bandwidth"]] + ret["code_rate_lp"] = { + eDVBFrontendParametersTerrestrial.FEC_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2", + eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3", + eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4", + eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6", + eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8"}[tp["code_rate_lp"]] + ret["code_rate_hp"] = { + eDVBFrontendParametersTerrestrial.FEC_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2", + eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3", + eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4", + eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6", + eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8"}[tp["code_rate_lp"]] + ret["constellation"] = { + eDVBFrontendParametersTerrestrial.Modulation_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.Modulation_QPSK : "QPSK", + eDVBFrontendParametersTerrestrial.Modulation_QAM16 : "QAM16", + eDVBFrontendParametersTerrestrial.Modulation_QAM64 : "QAM64"}[tp["constellation"]] + ret["transmission_mode"] = { + eDVBFrontendParametersTerrestrial.TransmissionMode_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.TransmissionMode_2k : "2k", + eDVBFrontendParametersTerrestrial.TransmissionMode_8k : "8k"}[tp["transmission_mode"]] + ret["guard_interval"] = { + eDVBFrontendParametersTerrestrial.GuardInterval_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.GuardInterval_1_32 : "1/32", + eDVBFrontendParametersTerrestrial.GuardInterval_1_16 : "1/16", + eDVBFrontendParametersTerrestrial.GuardInterval_1_8 : "1/8", + eDVBFrontendParametersTerrestrial.GuardInterval_1_4 : "1/4"}[tp["guard_interval"]] + ret["hierarchy_information"] = { + eDVBFrontendParametersTerrestrial.Hierarchy_Auto : _("Auto"), + eDVBFrontendParametersTerrestrial.Hierarchy_None : _("None"), + eDVBFrontendParametersTerrestrial.Hierarchy_1 : "1", + eDVBFrontendParametersTerrestrial.Hierarchy_2 : "2", + eDVBFrontendParametersTerrestrial.Hierarchy_4 : "4"}[tp["hierarchy_information"]] + ret["inversion"] = { + eDVBFrontendParametersTerrestrial.Inversion_Unknown : _("Auto"), + eDVBFrontendParametersTerrestrial.Inversion_On : _("On"), + eDVBFrontendParametersTerrestrial.Inversion_Off : _("Off")}[tp["inversion"]] for x in tp.keys(): if not ret.has_key(x): ret[x] = tp[x] -- cgit v1.2.3 From 160b144b442082b547644af1e3aceb73d5fb2df0 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 20 Jan 2009 11:53:22 +0100 Subject: fix typo --- lib/python/Tools/Transponder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/python/Tools') diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py index 049f4211..f37603c5 100644 --- a/lib/python/Tools/Transponder.py +++ b/lib/python/Tools/Transponder.py @@ -85,7 +85,7 @@ def ConvertToHumanReadable(tp): eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3", eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4", eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6", - eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8"}[tp["code_rate_lp"]] + eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8"}[tp["code_rate_hp"]] ret["constellation"] = { eDVBFrontendParametersTerrestrial.Modulation_Auto : _("Auto"), eDVBFrontendParametersTerrestrial.Modulation_QPSK : "QPSK", -- cgit v1.2.3 From 15d7074f55a2c3dd38ce9877626be6ec32b448d2 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 27 Jan 2009 00:04:59 +0100 Subject: fixes for python 2.6 by Moritz Venn --- keymapparser.py | 15 +++++++++++---- lib/actions/parseactions.py | 4 ++-- lib/dvb/epgcache.cpp | 8 ++++++++ lib/python/Components/Converter/EventTime.py | 4 ++-- lib/python/Components/Converter/MovieInfo.py | 4 ++-- lib/python/Components/Converter/ServicePosition.py | 4 ++-- lib/python/Components/Converter/ServiceTime.py | 4 ++-- lib/python/Components/Element.py | 7 +++++++ lib/python/Components/NimManager.py | 6 ++---- lib/python/Components/Renderer/Canvas.py | 2 +- lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py | 2 +- lib/python/Screens/ChannelSelection.py | 2 +- lib/python/Screens/Setup.py | 9 ++++++++- lib/python/Tools/LoadPixmap.py | 2 +- lib/python/python.h | 11 +++++++++++ mytest.py | 2 +- skin.py | 4 ++-- 17 files changed, 64 insertions(+), 26 deletions(-) (limited to 'lib/python/Tools') diff --git a/keymapparser.py b/keymapparser.py index 5023e944..63bca0f9 100644 --- a/keymapparser.py +++ b/keymapparser.py @@ -1,11 +1,18 @@ import enigma import xml.etree.cElementTree -from keyids import KEYIDS; +from keyids import KEYIDS # these are only informational (for help)... from Tools.KeyBindings import addKeyBinding +class KeymapError(Exception): + def __init__(self, message): + self.message = message + + def __str__(self): + return self.message + def parseKeys(context, filename, actionmap, device, keys): for x in keys.findall("key"): get_attr = x.attrib.get @@ -29,12 +36,12 @@ def parseKeys(context, filename, actionmap, device, keys): elif id[1] == 'd': keyid = int(id[2:]) | 0x8000 else: - raise "key id '" + str(id) + "' is neither hex nor dec" + raise KeymapError("key id '" + str(id) + "' is neither hex nor dec") else: try: keyid = KEYIDS[id] except: - raise "key id '" + str(id) + "' is illegal" + raise KeymapError("key id '" + str(id) + "' is illegal") # print context + "::" + mapto + " -> " + device + "." + hex(keyid) actionmap.bindKey(filename, device, keyid, flags, context, mapto) addKeyBinding(filename, keyid, context, mapto, flags) @@ -48,7 +55,7 @@ def readKeymap(filename): try: dom = xml.etree.cElementTree.parse(source) except: - raise "keymap %s not well-formed." % filename + raise KeymapError("keymap %s not well-formed." % filename) keymap = dom.getroot() diff --git a/lib/actions/parseactions.py b/lib/actions/parseactions.py index 4ab71af7..2462a751 100644 --- a/lib/actions/parseactions.py +++ b/lib/actions/parseactions.py @@ -65,7 +65,7 @@ def do_file(f, mode): except: pass - raise "action enum must be simple." + raise Exception("action enum must be simple.") counter = 0 @@ -82,7 +82,7 @@ def do_file(f, mode): if counter: if t != ",": - raise "no comma" + raise Exception("no comma") t = tokens.next() if firsthit: diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index a8eca85b..fdcbe0e9 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -2058,7 +2058,11 @@ PyObject *eEPGCache::search(ePyObject arg) ePyObject obj = PyTuple_GET_ITEM(arg,0); if (PyString_Check(obj)) { +#if PY_VERSION_HEX < 0x02060000 argcount = PyString_GET_SIZE(obj); +#else + argcount = PyString_Size(obj); +#endif argstring = PyString_AS_STRING(obj); for (int i=0; i < argcount; ++i) switch(argstring[i]) @@ -2156,7 +2160,11 @@ PyObject *eEPGCache::search(ePyObject arg) { int casetype = PyLong_AsLong(PyTuple_GET_ITEM(arg, 4)); const char *str = PyString_AS_STRING(obj); +#if PY_VERSION_HEX < 0x02060000 int textlen = PyString_GET_SIZE(obj); +#else + int textlen = PyString_Size(obj); +#endif if (querytype == 1) eDebug("lookup for events with '%s' as title(%s)", str, casetype?"ignore case":"case sensitive"); else diff --git a/lib/python/Components/Converter/EventTime.py b/lib/python/Components/Converter/EventTime.py index 966f2ca8..41f1ebf3 100644 --- a/lib/python/Components/Converter/EventTime.py +++ b/lib/python/Components/Converter/EventTime.py @@ -1,7 +1,7 @@ from Converter import Converter from Poll import Poll from time import time -from Components.Element import cached +from Components.Element import cached, ElementError class EventTime(Poll, Converter, object): STARTTIME = 0 @@ -28,7 +28,7 @@ class EventTime(Poll, Converter, object): self.poll_interval = 30*1000 self.poll_enabled = True else: - raise str("'%s' is not for EventTime converter" % type) + raise ElementError("'%s' is not for EventTime converter" % type) @cached def getTime(self): diff --git a/lib/python/Components/Converter/MovieInfo.py b/lib/python/Components/Converter/MovieInfo.py index 068d24d3..be28dcce 100644 --- a/lib/python/Components/Converter/MovieInfo.py +++ b/lib/python/Components/Converter/MovieInfo.py @@ -1,5 +1,5 @@ from Components.Converter.Converter import Converter -from Components.Element import cached +from Components.Element import cached, ElementError from enigma import iServiceInformation from ServiceReference import ServiceReference @@ -16,7 +16,7 @@ class MovieInfo(Converter, object): elif type == "RecordServiceName": self.type = self.MOVIE_REC_SERVICE_NAME else: - raise str("'%s' is not for MovieInfo converter" % type) + raise ElementError("'%s' is not for MovieInfo converter" % type) Converter.__init__(self, type) @cached diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py index d7a55dae..2bcc5492 100644 --- a/lib/python/Components/Converter/ServicePosition.py +++ b/lib/python/Components/Converter/ServicePosition.py @@ -1,7 +1,7 @@ from Converter import Converter from Poll import Poll from enigma import iPlayableService -from Components.Element import cached +from Components.Element import cached, ElementError class ServicePosition(Converter, Poll, object): TYPE_LENGTH = 0 @@ -35,7 +35,7 @@ class ServicePosition(Converter, Poll, object): elif type == "Gauge": self.type = self.TYPE_GAUGE else: - raise "type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|NoSeconds}" + raise ElementError("type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|NoSeconds}") self.poll_enabled = self.type != self.TYPE_LENGTH diff --git a/lib/python/Components/Converter/ServiceTime.py b/lib/python/Components/Converter/ServiceTime.py index 16bcae3a..89965067 100644 --- a/lib/python/Components/Converter/ServiceTime.py +++ b/lib/python/Components/Converter/ServiceTime.py @@ -1,5 +1,5 @@ from Converter import Converter -from Components.Element import cached +from Components.Element import cached, ElementError from enigma import iServiceInformation class ServiceTime(Converter, object): @@ -16,7 +16,7 @@ class ServiceTime(Converter, object): elif type == "Duration": self.type = self.DURATION else: - raise str("'%s' is not for eEventTime converter" % type) + raise ElementError("'%s' is not for eEventTime converter" % type) @cached def getTime(self): diff --git a/lib/python/Components/Element.py b/lib/python/Components/Element.py index 2af57793..f4a8f127 100644 --- a/lib/python/Components/Element.py +++ b/lib/python/Components/Element.py @@ -16,6 +16,13 @@ def cached(f): return cache[name][1] return wrapper +class ElementError(Exception): + def __init__(self, message): + self.message = message + + def __str__(self): + return self.message + class Element(object): CHANGED_DEFAULT = 0 # initial "pull" state CHANGED_ALL = 1 # really everything changed diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 1fcbda1a..2692cb5b 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -14,8 +14,6 @@ from enigma import eDVBSatelliteEquipmentControl as secClass, \ from time import localtime, mktime from datetime import datetime -from sets import Set - def getConfigSatlist(orbpos, satlist): default_orbpos = None for x in satlist: @@ -123,7 +121,7 @@ class SecConfigure: def update(self): sec = secClass.getInstance() - self.configuredSatellites = Set() + self.configuredSatellites = set() sec.clear() ## this do unlinking NIMs too !! print "sec config cleared" @@ -442,7 +440,7 @@ class SecConfigure: def __init__(self, nimmgr): self.NimManager = nimmgr - self.configuredSatellites = Set() + self.configuredSatellites = set() self.update() class NIM(object): diff --git a/lib/python/Components/Renderer/Canvas.py b/lib/python/Components/Renderer/Canvas.py index bd7ffb5e..acf0dbf7 100644 --- a/lib/python/Components/Renderer/Canvas.py +++ b/lib/python/Components/Renderer/Canvas.py @@ -35,7 +35,7 @@ class Canvas(Renderer): self.instance.writeText(eRect(l[1], l[2], l[3], l[4]), gRGB(l[5]), gRGB(l[6]), l[7], l[8], l[9]) else: print "drawlist entry:", l - raise "invalid drawlist entry" + raise RuntimeError("invalid drawlist entry") def changed(self, what): self.pull_updates() diff --git a/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py b/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py index a63562c8..69f935e4 100644 --- a/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py +++ b/lib/python/Plugins/DemoPlugins/TestPlugin/plugin.py @@ -51,7 +51,7 @@ class Test(Screen): def mycallback(self, answer): print "answer:", answer if answer: - raise "test-crash" + raise Exception("test-crash") self.close() def keyLeft(self): diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index b203b24e..ebfbe812 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -76,7 +76,7 @@ def append_when_current_valid(current, menu, args, level = 0): class ChannelContextMenu(Screen): def __init__(self, session, csel): Screen.__init__(self, session) - #raise "we need a better summary screen here" + #raise Exception("we need a better summary screen here") self.csel = csel self.bsel = None diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 35918b5b..1d035b8a 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -19,6 +19,13 @@ except: setupdom = xml.etree.cElementTree.parse(setupfile) setupfile.close() +class SetupError(Exception): + def __init__(self, message): + self.message = message + + def __str__(self): + return self.message + class SetupSummary(Screen): skin = """ @@ -145,4 +152,4 @@ def getSetupTitle(id): for x in xmldata.findall("setup"): if x.get("key") == id: return x.get("title", "").encode("UTF-8") - raise "unknown setup id '%s'!" % repr(id) + raise SetupError("unknown setup id '%s'!" % repr(id)) diff --git a/lib/python/Tools/LoadPixmap.py b/lib/python/Tools/LoadPixmap.py index 53e04e54..fff414ad 100644 --- a/lib/python/Tools/LoadPixmap.py +++ b/lib/python/Tools/LoadPixmap.py @@ -14,7 +14,7 @@ def LoadPixmap(path, desktop = None, cached = False): alpha = loadPNG(path + "a.png") ptr = loadJPG(path + "rgb.jpg", alpha) else: - raise "neither .png nor .jpg, please fix file extension" + raise Exception("neither .png nor .jpg, please fix file extension") if ptr and desktop: desktop.makeCompatiblePixmap(ptr) diff --git a/lib/python/python.h b/lib/python/python.h index f56d49bb..52ec6c1e 100644 --- a/lib/python/python.h +++ b/lib/python/python.h @@ -24,6 +24,7 @@ public: #ifdef PYTHON_REFCOUNT_DEBUG inline ePyObject(PyObject *ob, const char *file, int line); #endif + inline ePyObject(PyVarObject *ob); inline ePyObject(PyDictObject *ob); inline ePyObject(PyTupleObject *ob); inline ePyObject(PyListObject *ob); @@ -32,11 +33,13 @@ public: operator bool() { return !!m_ob; } ePyObject &operator=(const ePyObject &); ePyObject &operator=(PyObject *); + ePyObject &operator=(PyVarObject *ob) { return operator=((PyObject*)ob); } ePyObject &operator=(PyDictObject *ob) { return operator=((PyObject*)ob); } ePyObject &operator=(PyTupleObject *ob) { return operator=((PyObject*)ob); } ePyObject &operator=(PyListObject *ob) { return operator=((PyObject*)ob); } ePyObject &operator=(PyStringObject *ob) { return operator=((PyObject*)ob); } operator PyObject*(); + operator PyVarObject*() { return (PyVarObject*)operator PyVarObject*(); } operator PyTupleObject*() { return (PyTupleObject*)operator PyObject*(); } operator PyListObject*() { return (PyListObject*)operator PyObject*(); } operator PyStringObject*() { return (PyStringObject*)operator PyObject*(); } @@ -84,6 +87,14 @@ inline ePyObject::ePyObject(PyObject *ob, const char* file, int line) } #endif +inline ePyObject::ePyObject(PyVarObject *ob) + :m_ob((PyObject*)ob) +#ifdef PYTHON_REFCOUNT_DEBUG + ,m_file(0), m_line(0), m_from(0), m_to(0), m_erased(false) +#endif +{ +} + inline ePyObject::ePyObject(PyDictObject *ob) :m_ob((PyObject*)ob) #ifdef PYTHON_REFCOUNT_DEBUG diff --git a/mytest.py b/mytest.py index 014f94c9..8f23beac 100644 --- a/mytest.py +++ b/mytest.py @@ -277,7 +277,7 @@ class Session: def open(self, screen, *arguments, **kwargs): if len(self.dialog_stack) and not self.in_exec: - raise "modal open are allowed only from a screen which is modal!" + raise RuntimeError("modal open are allowed only from a screen which is modal!") # ...unless it's the very first screen. self.pushCurrent() diff --git a/skin.py b/skin.py index eae6ea4b..03fe96bb 100644 --- a/skin.py +++ b/skin.py @@ -274,7 +274,7 @@ def loadSingleSkinData(desktop, skin, path_prefix): colorNames[name] = parseColor(color) #print "Color:", name, color else: - raise ("need color and name, got %s %s" % (name, color)) + raise SkinError("need color and name, got %s %s" % (name, color)) for c in skin.findall("fonts"): for font in c.findall("font"): @@ -335,7 +335,7 @@ def loadSingleSkinData(desktop, skin, path_prefix): try: style.setColor(eWindowStyleSkinned.__dict__["col" + type], color) except: - raise ("Unknown color %s" % (type)) + raise SkinError("Unknown color %s" % (type)) #pass #print " color:", type, color -- cgit v1.2.3