X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FSatfinder%2Fplugin.py;h=b7c9ae70b23431d99111baaf467ebedead7b3923;hp=06a0f3fb8468f7960b1c122ce2751e55422bddeb;hb=5bea48a0d25ea7932a589a2a83a6bc3a05454bb9;hpb=e5a909e610fcd24a0bb6d7b1a586a14cd9767512 diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py index 06a0f3f..b7c9ae7 100644 --- a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py +++ b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py @@ -1,4 +1,6 @@ -from enigma import eTimer, eDVBSatelliteEquipmentControl, eDVBResourceManager, eDVBDiseqcCommand, eDVBResourceManagerPtr, iDVBChannelPtr, iDVBFrontendPtr, iDVBFrontend, eDVBFrontendParametersSatellite, eDVBFrontendParameters +from enigma import eTimer, eDVBSatelliteEquipmentControl, eDVBResourceManager,\ + eDVBDiseqcCommand, eDVBFrontendParametersSatellite, eDVBFrontendParameters + from Screens.Screen import Screen from Screens.ScanSetup import ScanSetup from Screens.MessageBox import MessageBox @@ -8,7 +10,7 @@ from Components.Label import Label from Components.ConfigList import ConfigList from Components.TunerInfo import TunerInfo from Components.ActionMap import ActionMap -from Components.NimManager import nimmanager +from Components.NimManager import nimmanager, getConfigSatlist from Components.MenuList import MenuList from Components.config import ConfigSelection, ConfigSatlist, getConfigListEntry @@ -56,12 +58,12 @@ class Satfinder(ScanSetup): """ def openFrontend(self): - res_mgr = eDVBResourceManagerPtr() - if eDVBResourceManager.getInstance(res_mgr) == 0: - self.raw_channel = iDVBChannelPtr() - if res_mgr.allocateRawChannel(self.raw_channel, self.feid) == 0: - self.frontend = iDVBFrontendPtr() - if self.raw_channel.getFrontend(self.frontend) == 0: + res_mgr = eDVBResourceManager.getInstance() + if res_mgr: + self.raw_channel = res_mgr.allocateRawChannel(self.feid) + if self.raw_channel: + self.frontend = self.raw_channel.getFrontend() + if self.frontend: return True else: print "getFrontend failed" @@ -89,10 +91,10 @@ class Satfinder(ScanSetup): if not self.openFrontend(): self.frontend = None # in normal case this should not happen self.getFrontend = None - + ScanSetup.__init__(self, session) self.tuner = Tuner(self.frontend) - + self["snr"] = Label() self["agc"] = Label() self["ber"] = Label() @@ -104,16 +106,14 @@ class Satfinder(ScanSetup): self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, frontendfkt = self.getFrontend) self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, frontendfkt = self.getFrontend) self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, frontendfkt = self.getFrontend) - + self["introduction"].setText("") self.statusTimer = eTimer() self.statusTimer.timeout.get().append(self.updateStatus) self.statusTimer.start(50, False) - self.initcomplete = True - self.session = session - + def updateStatus(self): self["snr_percentage"].update() self["agc_percentage"].update() @@ -126,7 +126,7 @@ class Satfinder(ScanSetup): def createSetup(self): self.typeOfTuningEntry = None self.satEntry = None - + self.list = [] self.typeOfTuningEntry = getConfigListEntry(_('Tune'), self.tuning_type) self.list.append(self.typeOfTuningEntry) @@ -167,21 +167,20 @@ class Satfinder(ScanSetup): self.tune(returnvalue) def createConfig(self, foo): - self.tuning_transponder = None - self.tuning_type = ConfigSelection(choices = [("manual_transponder", _("Manual transponder")), ("predefined_transponder", _("Predefined satellite"))]) - self.tuning_sat = ConfigSatlist(default = 192, list = nimmanager.getSatListForNim(self.feid)) + self.tuning_type = ConfigSelection(choices = [("manual_transponder", _("Manual transponder")), ("predefined_transponder", _("Predefined transponder"))]) + self.tuning_sat = getConfigSatlist(192, nimmanager.getSatListForNim(self.feid)) ScanSetup.createConfig(self, None) self.updateSats() - - self.tuning_type.addNotifier(self.retune) - self.tuning_sat.addNotifier(self.sat_changed) - self.scan_sat.frequency.addNotifier(self.retune) - self.scan_sat.inversion.addNotifier(self.retune) - self.scan_sat.symbolrate.addNotifier(self.retune) - self.scan_sat.polarization.addNotifier(self.retune) - self.scan_sat.fec.addNotifier(self.retune) + + self.tuning_type.addNotifier(self.retune, initial_call = False) + self.tuning_sat.addNotifier(self.sat_changed, initial_call = False) + self.scan_sat.frequency.addNotifier(self.retune, initial_call = False) + self.scan_sat.inversion.addNotifier(self.retune, initial_call = False) + self.scan_sat.symbolrate.addNotifier(self.retune, initial_call = False) + self.scan_sat.polarization.addNotifier(self.retune, initial_call = False) + self.scan_sat.fec.addNotifier(self.retune, initial_call = False) def updateSats(self): orb_pos = self.tuning_sat.orbital_position @@ -215,19 +214,25 @@ class Satfinder(ScanSetup): fec = "FEC_None" list.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec) self.tuning_transponder = ConfigSelection(choices = list) - self.tuning_transponder.addNotifier(self.retune) - + self.tuning_transponder.addNotifier(self.retune, initial_call = False) + def keyGo(self): self.retune(self.tuning_type) - def keyCancel(self): - if self.oldref: + def restartPrevService(self, yesno): + if yesno: if self.frontend: self.frontend = None del self.raw_channel self.session.nav.playService(self.oldref) self.close(None) - + + def keyCancel(self): + if self.oldref: + self.session.openWithCallback(self.restartPrevService, MessageBox, _("Zap back to service before satfinder?"), MessageBox.TYPE_YESNO) + else: + self.restartPrevService(False) + def tune(self, transponder): if self.initcomplete: if transponder is not None: @@ -262,18 +267,21 @@ class NimSelection(Screen): def SatfinderMain(session, **kwargs): nimList = nimmanager.getNimListOfType(nimmanager.nimType["DVB-S"]) if len(nimList) == 0: - session.open(MessageBox, _("No positioner capable frontend found."), MessageBox.TYPE_ERROR) + session.open(MessageBox, _("No satellite frontend found!!"), MessageBox.TYPE_ERROR) else: if session.nav.RecordTimer.isRecording(): - session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to configure the positioner."), MessageBox.TYPE_ERROR) + session.open(MessageBox, _("A recording is currently running. Please stop the recording before trying to start the satfinder."), MessageBox.TYPE_ERROR) else: if len(nimList) == 1: session.open(Satfinder, nimList[0]) - elif len(nimList) > 1: - session.open(NimSelection) else: - session.open(MessageBox, _("No tuner is configured for use with a diseqc positioner!"), MessageBox.TYPE_ERROR) + session.open(NimSelection) +def SatfinderStart(menuid): + if menuid == "scan": + return [(_("Satfinder"), SatfinderMain)] + else: + return [] def Plugins(**kwargs): - return PluginDescriptor(name="Satfinder", description="Helps setting up your dish", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=SatfinderMain) + return PluginDescriptor(name=_("Satfinder"), description="Helps setting up your dish", where = PluginDescriptor.WHERE_SETUP, fnc=SatfinderStart)