X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FScanSetup.py;h=2c63653044c4ff4d91a89b2792856c3af84bd3c8;hp=9980df53dad1334393ca259a7b4e4da8545f7821;hb=24a8beaf22b62385a71d6aca3849587159611213;hpb=b2eebd0fef155a40a8a74468c4488cfb0c656a9a diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index 9980df5..2c63653 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -1,9 +1,9 @@ from Screen import Screen -from ServiceScan import * +from ServiceScan import ServiceScan from Components.config import config, ConfigSubsection, ConfigSelection, \ - ConfigYesNo, ConfigInteger, getConfigListEntry, ConfigSlider, ConfigSatlist, ConfigEnableDisable -from Components.ActionMap import NumberActionMap -from Components.ConfigList import ConfigList, ConfigListScreen + ConfigYesNo, ConfigInteger, getConfigListEntry, ConfigSlider, ConfigEnableDisable +from Components.ActionMap import NumberActionMap, ActionMap +from Components.ConfigList import ConfigListScreen from Components.NimManager import nimmanager, getConfigSatlist from Components.Label import Label from Screens.MessageBox import MessageBox @@ -156,6 +156,8 @@ class CableTransponderSearchSupport: def cableTransponderSearchSessionClosed(self, *val): print "cableTransponderSearchSessionClosed, val", val + self.cable_search_container.appClosed.get().remove(self.cableTransponderSearchClosed) + self.cable_search_container.dataAvail.get().remove(self.getCableTransponderData) self.cable_search_container = None self.cable_search_session = None if val and len(val) and val[0]: @@ -277,6 +279,7 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): def __init__(self, session): Screen.__init__(self, session) + self.finished_cb = None self.updateSatList() self.service = session.nav.getCurrentService() self.feinfo = None @@ -297,7 +300,7 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): }, -2) self.statusTimer = eTimer() - self.statusTimer.timeout.get().append(self.updateStatus) + self.statusTimer.callback.append(self.updateStatus) #self.statusTimer.start(5000, True) self.list = [] @@ -306,7 +309,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): self["introduction"] = Label(_("Press OK to start the scan")) - def run(self): + def runAsync(self, finished_cb): + self.finished_cb = finished_cb self.keyGo() def updateSatList(self): @@ -385,7 +389,7 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): elif nim.isCompatible("DVB-C"): if self.scan_typecable.value == "single_transponder": self.list.append(getConfigListEntry(_("Frequency"), self.scan_cab.frequency)) - self.list.append(getConfigListEntry(_("Inversions"), self.scan_cab.inversion)) + self.list.append(getConfigListEntry(_("Inversion"), self.scan_cab.inversion)) self.list.append(getConfigListEntry(_("Symbol Rate"), self.scan_cab.symbolrate)) self.list.append(getConfigListEntry(_("Modulation"), self.scan_cab.modulation)) self.list.append(getConfigListEntry(_("FEC"), self.scan_cab.fec)) @@ -735,9 +739,15 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): def startScan(self, tlist, flags, feid): if len(tlist): # flags |= eComponentScan.scanSearchBAT - self.session.open(ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags}]) + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags}]) + else: + self.session.open(ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags}]) else: - self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + else: + self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) def keyCancel(self): for x in self["config"].list: @@ -781,6 +791,7 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport): known_networks = [ ] nims_to_scan = [ ] + self.finished_cb = None for nim in nimmanager.nim_slots: # collect networks provided by this tuner @@ -819,7 +830,8 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport): self["header"] = Label(_("Automatic Scan")) self["footer"] = Label(_("Press OK to scan")) - def run(self): + def runAsync(self, finished_cb): + self.finished_cb = finished_cb self.keyGo() def keyGo(self): @@ -829,7 +841,6 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport): self.buildTransponderList() def buildTransponderList(self): # this method is called multiple times because of asynchronous stuff - print "buildTransponderList" APPEND_NOW = 0 SEARCH_CABLE_TRANSPONDERS = 1 action = APPEND_NOW @@ -886,9 +897,15 @@ class ScanSimple(ConfigListScreen, Screen, CableTransponderSearchSupport): def startScan(self, scanList): if len(scanList): - self.session.open(ServiceScan, scanList = scanList) + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, ServiceScan, scanList = scanList) + else: + self.session.open(ServiceScan, scanList = scanList) else: - self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + if self.finished_cb: + self.session.openWithCallback(self.finished_cb, MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) + else: + self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR) def setCableTransponderSearchResult(self, tlist): self.scanList.append({"transponders": tlist, "feid": self.feid, "flags": self.flags})