X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/952b92e60a529fc711bf419def94091a494ec03e..efa41fe76ddfee368009a914bc9b4bff54dee8ce:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 26bc0d41..57194791 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -36,14 +36,14 @@ from Screens.SleepTimerEdit import SleepTimerEdit from ServiceReference import ServiceReference from Tools import Notifications -from Tools.Directories import * +from Tools.Directories import SCOPE_HDD, resolveFilename -#from enigma import eTimer, eDVBVolumecontrol, quitMainloop -from enigma import * +from enigma import eTimer, eServiceCenter, eDVBServicePMTHandler, iServiceInformation, \ + iPlayableService, eServiceReference, eDVBResourceManager, iFrontendInformation, eEPGCache -import time -import os -import bisect +from time import time +from os import stat as os_stat +from bisect import insort # hack alert! from Menu import MainMenu, mdom @@ -596,6 +596,7 @@ class InfoBarSeek: self["SeekActions"] = InfoBarSeekActionMap(self, "InfobarSeekActions", { + "playpauseService": (self.playpauseService, _("pause")), "pauseService": (self.pauseService, _("pause")), "unPauseService": (self.unPauseService, _("continue")), @@ -692,6 +693,12 @@ class InfoBarSeek: self.checkSkipShowHideLock() return True + + def playpauseService(self): + if self.seekstate != self.SEEK_STATE_PLAY: + self.unPauseService() + else: + self.pauseService() def pauseService(self): if self.seekstate == self.SEEK_STATE_PAUSE: @@ -853,14 +860,15 @@ class InfoBarSeek: from Screens.PVRState import PVRState, TimeshiftState class InfoBarPVRState: - def __init__(self, screen=PVRState): + def __init__(self, screen=PVRState, show_always=False): + self.show_always = show_always self.onPlayStateChanged.append(self.__playStateChanged) self.pvrStateDialog = self.session.instantiateDialog(screen) self.onShow.append(self.__mayShow) self.onHide.append(self.pvrStateDialog.hide) def __mayShow(self): - if self.seekstate != self.SEEK_STATE_PLAY and self.execing: + if self.execing and (self.show_always or self.seekstate != self.SEEK_STATE_PLAY): self.pvrStateDialog.show() def __playStateChanged(self, state): @@ -870,7 +878,7 @@ class InfoBarPVRState: class InfoBarTimeshiftState(InfoBarPVRState): def __init__(self): - InfoBarPVRState.__init__(self, screen=TimeshiftState) + InfoBarPVRState.__init__(self, screen=TimeshiftState, show_always=True) class InfoBarShowMovies: @@ -953,7 +961,6 @@ class InfoBarTimeshift: print "hu, timeshift already enabled?" else: if not ts.startTimeshift(): - import time self.timeshift_enabled = 1 # we remove the "relative time" for now. @@ -1240,8 +1247,8 @@ class InfoBarInstantRecord: except: pass - begin = time.time() - end = time.time() + 3600 * 10 + begin = time() + end = time() + 3600 * 10 name = "instant record" description = "" eventid = None @@ -1315,12 +1322,12 @@ class InfoBarInstantRecord: def inputCallback(self, value): if value is not None: print "stopping recording after", int(value), "minutes." - self.recording[self.selectedEntry].end = time.time() + 60 * int(value) + self.recording[self.selectedEntry].end = time() + 60 * int(value) self.session.nav.RecordTimer.timeChanged(self.recording[self.selectedEntry]) def instantRecord(self): try: - stat = os.stat(resolveFilename(SCOPE_HDD)) + stat = os_stat(resolveFilename(SCOPE_HDD)) except: self.session.open(MessageBox, _("No HDD found or HDD not initialized!"), MessageBox.TYPE_ERROR) return @@ -1536,8 +1543,8 @@ class InfoBarAdditionalInfo: self["ExtensionsAvailable"] = Boolean(fixed=1) self.session.nav.event.append(self.gotServiceEvent) # we like to get service events - res_mgr = eDVBResourceManagerPtr() - if eDVBResourceManager.getInstance(res_mgr) == 0: + res_mgr = eDVBResourceManager.getInstance() + if res_mgr: res_mgr.frontendUseMaskChanged.get().append(self.tunerUseMaskChanged) def tunerUseMaskChanged(self, mask): @@ -1729,7 +1736,7 @@ class InfoBarCueSheetSupport: return None def addMark(self, point): - bisect.insort(self.cut_list, point) + insort(self.cut_list, point) self.uploadCuesheet() def removeMark(self, point): @@ -1885,12 +1892,12 @@ class InfoBarServiceErrorPopupSupport: eDVBServicePMTHandler.eventSOF: None, eDVBServicePMTHandler.eventEOF: None } - + if error not in errors: error = None - error = error and errors[error] - + error = error is not None and errors[error] + if error is not None: Notifications.AddPopup(text = error, type = MessageBox.TYPE_ERROR, timeout = 5, id = "ZapError") else: