X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/67b53c1cb06988394c35a6e965c99b72b67fe1be..250e846dc7fb2a3920e1aabd2430adb49fca5314:/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py index f3fb35eb..3ba621d7 100644 --- a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py @@ -1,4 +1,4 @@ -from enigma import eTimer, eDVBResourceManager,\ +from enigma import eDVBResourceManager,\ eDVBFrontendParametersSatellite, eDVBFrontendParameters from Screens.Screen import Screen @@ -7,7 +7,7 @@ from Screens.MessageBox import MessageBox from Plugins.Plugin import PluginDescriptor from Components.Label import Label -from Components.TunerInfo import TunerInfo +from Components.Sources.FrontendStatus import FrontendStatus from Components.ActionMap import ActionMap from Components.NimManager import nimmanager, getConfigSatlist from Components.MenuList import MenuList @@ -41,19 +41,42 @@ class Tuner: class Satfinder(ScanSetup): skin = """ - + - - - - - - - - - - - + + + + + + + SNRdB + + + SNR + + + AGC + + + BER + + + SNR + + + AGC + + + BER + + + LOCK + + + + LOCK + Invert + """ def openFrontend(self): @@ -76,8 +99,7 @@ class Satfinder(ScanSetup): self.initcomplete = False self.feid = feid self.oldref = None - self.frontendStatus = { } - + if not self.openFrontend(): self.oldref = session.nav.getCurrentlyPlayingServiceReference() session.nav.stopService() # try to disable foreground service @@ -90,38 +112,13 @@ class Satfinder(ScanSetup): ScanSetup.__init__(self, session) self.tuner = Tuner(self.frontend) - - self["snr"] = Label() - self["agc"] = Label() - self["ber"] = Label() - self["lock"] = Label() - self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, statusDict = self.frontendStatus) - self["agc_percentage"] = TunerInfo(TunerInfo.AGC_PERCENTAGE, statusDict = self.frontendStatus) - self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, statusDict = self.frontendStatus) - self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, statusDict = self.frontendStatus) - self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, statusDict = self.frontendStatus) - self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, statusDict = self.frontendStatus) - self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, statusDict = self.frontendStatus) - self["introduction"].setText("") - - self.statusTimer = eTimer() - self.statusTimer.timeout.get().append(self.updateStatus) - self.statusTimer.start(50, False) + self["Frontend"] = FrontendStatus(frontend_source = lambda : self.frontend, update_interval = 100) self.initcomplete = True + self.onClose.append(self.__onClose) - def updateStatus(self): - if self.frontend: - self.frontend.getFrontendStatus(self.frontendStatus) - else: - self.frontendStatus.clear() - self["snr_percentage"].update() - self["agc_percentage"].update() - self["ber_value"].update() - self["snr_bar"].update() - self["agc_bar"].update() - self["ber_bar"].update() - self["lock_state"].update() + def __onClose(self): + self.session.nav.playService(self.oldref) def createSetup(self): self.typeOfTuningEntry = None @@ -187,6 +184,7 @@ class Satfinder(ScanSetup): if orb_pos is not None: transponderlist = nimmanager.getTransponders(orb_pos) list = [] + default = None for x in transponderlist: if x[3] == 0: pol = "H" @@ -196,6 +194,8 @@ class Satfinder(ScanSetup): pol = "CL" elif x[3] == 3: pol = "CR" + else: + pol = "??" if x[4] == 0: fec = "FEC_AUTO" elif x[4] == 1: @@ -208,12 +208,23 @@ class Satfinder(ScanSetup): fec = "FEC_5_6" elif x[4] == 5: fec = "FEC_7_8" - elif x[4] == 5: - fec = "FEC_8_9" elif x[4] == 6: + fec = "FEC_8_9" + elif x[4] == 7: + fec = "FEC_3_5" + elif x[4] == 8: + fec = "FEC_4_5" + elif x[4] == 9: + fec = "FEC_9_10" + elif x[4] == 15: fec = "FEC_None" - list.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec) - self.tuning_transponder = ConfigSelection(choices = list) + else: + fec = "FEC_Unknown" + e = str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec + if default is None: + default = e + list.append(e) + self.tuning_transponder = ConfigSelection(choices = list, default = default) self.tuning_transponder.addNotifier(self.retune, initial_call = False) def keyGo(self): @@ -224,7 +235,8 @@ class Satfinder(ScanSetup): if self.frontend: self.frontend = None del self.raw_channel - self.session.nav.playService(self.oldref) + else: + self.oldref = None self.close(None) def keyCancel(self): @@ -277,11 +289,14 @@ def SatfinderMain(session, **kwargs): else: session.open(NimSelection) -def SatfinderStart(menuid): +def SatfinderStart(menuid, **kwargs): if menuid == "scan": - return [(_("Satfinder"), SatfinderMain)] + return [(_("Satfinder"), SatfinderMain, "satfinder", None)] else: return [] def Plugins(**kwargs): - return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_SETUP, fnc=SatfinderStart) + if (nimmanager.hasNimType("DVB-S")): + return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_MENU, fnc=SatfinderStart) + else: + return []