X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FStandby.py;h=c598b5459b9209d7ca705ed5d0f93b5e170b740a;hb=15b64dc4fbead7b5c15cb309a82914f79ae78b0a;hp=4c3a17201a41f02fc774ca91f3c01214908250d5;hpb=0c2185a46606c2ac3e41205fe92e6d5ba4ead1b9;p=vuplus_dvbapp diff --git a/lib/python/Screens/Standby.py b/lib/python/Screens/Standby.py index 4c3a172..c598b54 100644 --- a/lib/python/Screens/Standby.py +++ b/lib/python/Screens/Standby.py @@ -2,6 +2,7 @@ from Screen import Screen from Components.ActionMap import ActionMap from Components.config import config from Components.AVSwitch import AVSwitch +from Components.SystemInfo import SystemInfo from enigma import eDVBVolumecontrol inStandby = None @@ -44,32 +45,46 @@ class Standby(Screen): #mute adc self.setMute() - #get currently playing service reference - self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceReference() - #stop actual played dvb-service - self.session.nav.stopService() + + self.paused_service = None + self.prev_running_service = None + if self.session.current_dialog: + if self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_STOPS: + #get currently playing service reference + self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceReference() + #stop actual played dvb-service + self.session.nav.stopService() + elif self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_PAUSES: + self.paused_service = self.session.current_dialog + self.paused_service.pauseService() + #set input to vcr scart - self.avswitch.setInput("SCART") + if SystemInfo["ScartSwitch"]: + self.avswitch.setInput("SCART") + else: + self.avswitch.setInput("AUX") #set lcd brightness to standby value config.lcd.standby.apply() - self.onShow.append(self.__onShow) - self.onHide.append(self.__onHide) + self.onFirstExecBegin.append(self.__onFirstExecBegin) self.onClose.append(self.__onClose) def __onClose(self): + global inStandby + inStandby = None if self.prev_running_service: self.session.nav.playService(self.prev_running_service) + elif self.paused_service: + self.paused_service.unPauseService() + self.session.screen["Standby"].boolean = False - def createSummary(self): - return StandbySummary - - def __onShow(self): + def __onFirstExecBegin(self): global inStandby inStandby = self + self.session.screen["Standby"].boolean = True + config.misc.standbyCounter.value += 1 - def __onHide(self): - global inStandby - inStandby = None + def createSummary(self): + return StandbySummary class StandbySummary(Screen): skin = """ @@ -83,9 +98,6 @@ class StandbySummary(Screen): """ - def __init__(self, session, parent): - Screen.__init__(self, session) - from enigma import quitMainloop, iRecordableService from Screens.MessageBox import MessageBox from time import time @@ -96,7 +108,7 @@ inTryQuitMainloop = False class TryQuitMainloop(MessageBox): def __init__(self, session, retvalue=1, timeout=-1, default_yes = True): self.retval=retvalue - recordings = len(session.nav.getRecordings()) + recordings = session.nav.getRecordings() jobs = len(job_manager.getPendingJobs()) self.connected = False reason = "" @@ -133,7 +145,7 @@ class TryQuitMainloop(MessageBox): def getRecordEvent(self, recservice, event): if event == iRecordableService.evEnd: recordings = self.session.nav.getRecordings() - if not len(recordings): # no more recordings exist + if not recordings: # no more recordings exist rec_time = self.session.nav.RecordTimer.getNextRecordingTime() if rec_time > 0 and (rec_time - time()) < 360: self.initTimeout(360) # wait for next starting timer @@ -148,9 +160,14 @@ class TryQuitMainloop(MessageBox): self.conntected=False self.session.nav.record_event.remove(self.getRecordEvent) if value: - quitMainloop(self.retval) - else: - MessageBox.close(self, True) + # hack .. we dont like to show any other screens when this screen has closed + self.onClose = [self.__closed] + self.session.dialog_stack = [] + self.session.summary_stack = [None] + MessageBox.close(self, True) + + def __closed(self): + quitMainloop(self.retval) def __onShow(self): global inTryQuitMainloop