X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5e942862b2017443ec34831f649f890f8215a534..cd7a034f124ebf050675246f1b3301d1221a3f0f:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 3bc8a419..28ccb99a 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -9,9 +9,9 @@ from Components.Label import Label from Components.Pixmap import Pixmap from Components.PluginComponent import plugins from Components.ServiceEventTracker import ServiceEventTracker -from Components.Sources.Source import ObsoleteSource from Components.Sources.Boolean import Boolean from Components.config import config, ConfigBoolean, ConfigClock +from Components.SystemInfo import SystemInfo from EpgSelection import EPGSelection from Plugins.Plugin import PluginDescriptor @@ -538,17 +538,6 @@ class InfoBarEPG: self.epglist[1]=tmp setEvent(self.epglist[0]) -class InfoBarTuner: - """provides a snr/agc/ber display""" - def __init__(self): - self["FrontendStatus"] = ObsoleteSource(new_source = "session.FrontendStatus", removal_date = "2008-01") - -class InfoBarEvent: - """provides a current/next event info display""" - def __init__(self): - self["Event_Now"] = ObsoleteSource(new_source = "session.Event_Now", removal_date = "2008-01") - self["Event_Next"] = ObsoleteSource(new_source = "session.Event_Next", removal_date = "2008-01") - class InfoBarRdsDecoder: """provides RDS and Rass support/display""" def __init__(self): @@ -597,10 +586,6 @@ class InfoBarRdsDecoder: self.RassSlidePicChanged() self.rds_display.show() -class InfoBarServiceName: - def __init__(self): - self["CurrentService"] = ObsoleteSource(new_source = "session.CurrentService", removal_date = "2008-01") - class InfoBarSeek: """handles actions like seeking, pause""" @@ -608,7 +593,7 @@ class InfoBarSeek: SEEK_STATE_PAUSE = (1, 0, 0, "||") SEEK_STATE_EOF = (1, 0, 0, "END") - def __init__(self, actionmap = "InfobarSeekActions"): + def __init__(self, actionmap = "InfobarSeekActions", useSeekBackHack=True): self.__event_tracker = ServiceEventTracker(screen=self, eventmap= { iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged, @@ -623,7 +608,7 @@ class InfoBarSeek: self.eofInhibitTimer = eTimer() self.eofInhibitTimer.timeout.get().append(self.inhibitEof) - self.minSpeedBackward = 16 + self.minSpeedBackward = useSeekBackHack and 16 or 0 class InfoBarSeekActionMap(HelpableActionMap): def __init__(self, screen, *args, **kwargs): @@ -681,7 +666,7 @@ class InfoBarSeek: def makeStateBackward(self, n): minspeed = config.seek.stepwise_minspeed.value repeat = int(config.seek.stepwise_repeat.value) - if n < self.minSpeedBackward: + if self.minSpeedBackward and n < self.minSpeedBackward: r = (self.minSpeedBackward - 1)/ n + 1 if minspeed != "Never" and n >= int(minspeed) and repeat > 1: r = max(r, repeat) @@ -855,7 +840,7 @@ class InfoBarSeek: if self.seekstate == self.SEEK_STATE_PLAY: self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value))) elif self.seekstate == self.SEEK_STATE_PAUSE: - if config.seek.speeds_slowmotion: + if len(config.seek.speeds_slowmotion.value): self.setSeekState(self.makeStateSlowMotion(config.seek.speeds_slowmotion.value[-1])) else: self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value))) @@ -1309,13 +1294,13 @@ class InfoBarSleepTimer: class InfoBarPiP: def __init__(self): self.session.pipshown = False - - self.addExtension((self.getShowHideName, self.showPiP, self.available), "blue") - self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green") - self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow") + if SystemInfo.get("NumVideoDecoders", 1) > 1: + self.addExtension((self.getShowHideName, self.showPiP, self.available), "blue") + self.addExtension((self.getMoveName, self.movePiP, self.pipShown), "green") + self.addExtension((self.getSwapName, self.swapPiP, self.pipShown), "yellow") def available(self): - return True + return SystemInfo.get("NumVideoDecoders", 1) > 1 def pipShown(self): return self.session.pipshown @@ -1388,13 +1373,6 @@ class InfoBarInstantRecord: "instantRecord": (self.instantRecord, _("Instant Record...")), }) self.recording = [] -#### DEPRECATED CODE #### - self["BlinkingPoint"] = BlinkingPixmapConditional() - self["BlinkingPoint"].setConnect(self.session.nav.RecordTimer.isRecording) - self["BlinkingPoint"].deprecationInfo = ( - "session.RecordState source, Pixmap renderer and " - "ConditionalShowHide/Blink Converter", "2008-02") -######################### def stopCurrentRecording(self, entry = -1): if entry is not None and entry != -1: @@ -1440,10 +1418,6 @@ class InfoBarInstantRecord: recording.dontSave = True self.recording.append(recording) -#### DEPRECATED CODE #### - self["BlinkingPoint"].setConnect(lambda: self.recording.isRunning()) -######################### - def isInstantRecordRunning(self): print "self.recording:", self.recording if len(self.recording) > 0: @@ -1662,7 +1636,7 @@ class InfoBarSubserviceSelection: if newservice.valid(): del subservices del service - self.session.nav.playService(newservice) + self.session.nav.playService(newservice, False) def subserviceSelection(self): service = self.session.nav.getCurrentService() @@ -1702,7 +1676,7 @@ class InfoBarSubserviceSelection: self.session.open(SubservicesQuickzap, service[2]) else: self["SubserviceQuickzapAction"].setEnabled(True) - self.session.nav.playService(service[1]) + self.session.nav.playService(service[1], False) def addSubserviceToBouquetCallback(self, service): if len(service) > 1 and isinstance(service[1], eServiceReference): @@ -1737,59 +1711,6 @@ class InfoBarAdditionalInfo: self["TimeshiftPossible"] = self["RecordingPossible"] self["ExtensionsAvailable"] = Boolean(fixed=1) -######### DEPRECATED CODE ########## - self["NimA"] = Pixmap() - self["NimA"].deprecationInfo = ( - "session.TunerInfo source, Pixmap renderer, TunerInfo/UseMask Converter" - ", ValueBitTest(1) Converter and ConditionalShowHide Converter", "2008-02") - self["NimB"] = Pixmap() - self["NimB"].deprecationInfo = ( - "session.TunerInfo source, Pixmap renderer, TunerInfo/UseMask Converter" - ", ValueBitTest(2) Converter and ConditionalShowHide Converter", "2008-02") - self["NimA_Active"] = Pixmap() - self["NimA_Active"].deprecationInfo = ( - "session.FrontendInfo source, Pixmap renderer, FrontendInfo/NUMBER Converter" - ", ValueRange(1,1) Converter and ConditionalShowHide Converter", "2008-02") - self["NimB_Active"] = Pixmap() - self["NimB_Active"].deprecationInfo = ( - "session.FrontendInfo source, Pixmap renderer, FrontendInfo/NUMBER Converter" - ", ValueRange(1,1) Converter and ConditionalShowHide Converter", "2008-02") - - res_mgr = eDVBResourceManager.getInstance() - if res_mgr: - res_mgr.frontendUseMaskChanged.get().append(self.tunerUseMaskChanged) - - self.session.nav.event.append(self.gotServiceEvent) # we like to get service events - - def tunerUseMaskChanged(self, mask): - if mask&1: - self["NimA_Active"].show() - else: - self["NimA_Active"].hide() - if mask&2: - self["NimB_Active"].show() - else: - self["NimB_Active"].hide() - - def checkTunerState(self, service): - info = service and service.frontendInfo() - feNumber = info and info.getFrontendInfo(iFrontendInformation.frontendNumber) - if feNumber is None: - self["NimA"].hide() - self["NimB"].hide() - elif feNumber == 0: - self["NimB"].hide() - self["NimA"].show() - elif feNumber == 1: - self["NimA"].hide() - self["NimB"].show() - - def gotServiceEvent(self, ev): - service = self.session.nav.getCurrentService() - if ev == iPlayableService.evUpdatedInfo or ev == iPlayableService.evEnd: - self.checkTunerState(service) -#################################### - class InfoBarNotifications: def __init__(self): self.onExecBegin.append(self.checkNotifications) @@ -1883,6 +1804,13 @@ class InfoBarCueSheetSupport: if config.usage.on_movie_start.value == "ask": Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Do you want to resume this playback?"), timeout=10) elif config.usage.on_movie_start.value == "resume": +# TRANSLATORS: The string "Resuming playback" flashes for a moment +# TRANSLATORS: at the start of a movie, when the user has selected +# TRANSLATORS: "Resume from last position" as start behavior. +# TRANSLATORS: The purpose is to notify the user that the movie starts +# TRANSLATORS: in the middle somewhere and not from the beginning. +# TRANSLATORS: (Some translators seem to have interpreted it as a +# TRANSLATORS: question or a choice, but it is a statement.) Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Resuming playback"), timeout=2, type=MessageBox.TYPE_INFO) def playLastCB(self, answer):