retune previous running foreground service after leave satfinder
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 10 Jul 2006 12:18:01 +0000 (12:18 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Mon, 10 Jul 2006 12:18:01 +0000 (12:18 +0000)
lib/python/Components/TunerInfo.py
lib/python/Plugins/SystemPlugins/Satfinder/plugin.py

index a7e22fb1901e511a565cf97a9d2db56ecd626388..490b9bef7c33924ab798ffc536bc5969f9363d8f 100644 (file)
@@ -86,15 +86,15 @@ class TunerInfo(GUIComponent):
                                                return feinfo.getFrontendInfo(iFrontendInformation.lockState)
                elif self.frontendfkt is not None:
                        frontend = self.frontendfkt()
-                       if what == self.SNR:
-                               return frontend.readFrontendData(iFrontendInformation.signalPower)
-                       elif what == self.AGC:
-                               return frontend.readFrontendData(iFrontendInformation.signalQuality)
-                       elif what == self.BER:
-                               return frontend.readFrontendData(iFrontendInformation.bitErrorRate)
-                       elif what == self.LOCK:
-                               return frontend.readFrontendData(iFrontendInformation.lockState)
-               
+                       if frontend:
+                               if what == self.SNR:
+                                       return frontend.readFrontendData(iFrontendInformation.signalPower)
+                               elif what == self.AGC:
+                                       return frontend.readFrontendData(iFrontendInformation.signalQuality)
+                               elif what == self.BER:
+                                       return frontend.readFrontendData(iFrontendInformation.bitErrorRate)
+                               elif what == self.LOCK:
+                                       return frontend.readFrontendData(iFrontendInformation.lockState)
                return 0
                                
        def createWidget(self, parent):
index fceff4ce4452aabe4c0812696df09ca275cefb89..d915b91f6a71f5d1e658885e84d243f9733b638b 100644 (file)
@@ -77,8 +77,10 @@ class Satfinder(ScanSetup):
        def __init__(self, session, feid):
                self.initcomplete = False
                self.feid = feid
-
+               self.oldref = None
+               
                if not self.openFrontend():
+                       self.oldref = session.nav.getCurrentlyPlayingServiceReference()
                        session.nav.stopService() # try to disable foreground service
                        if not self.openFrontend():
                                if session.pipshown: # try to disable pip
@@ -110,6 +112,7 @@ class Satfinder(ScanSetup):
                self.statusTimer.start(50, False)
 
                self.initcomplete = True
+               self.session = session
                
        def updateStatus(self):
                self["snr_percentage"].update()
@@ -221,6 +224,11 @@ class Satfinder(ScanSetup):
                self.retune(config.tuning.type)
 
        def keyCancel(self):
+               if self.oldref:
+                       if self.frontend:
+                               self.frontend = None
+                               del self.raw_channel
+                       self.session.nav.playService(self.oldref)
                self.close(None)
                
        def tune(self, transponder):
@@ -269,5 +277,6 @@ def SatfinderMain(session, **kwargs):
                        else:
                                session.open(MessageBox, _("No tuner is configured for use with a diseqc positioner!"), MessageBox.TYPE_ERROR)
 
+
 def Plugins(**kwargs):
        return PluginDescriptor(name="Satfinder", description="Helps setting up your dish", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=SatfinderMain)