X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/04f4636324ab06c5a3a4f618100048e159eaf6f9..2ec8de5ae8adc05f214b851adbb3529a6b65fd59:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index e7f71daf..f0130fc7 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -2,11 +2,9 @@ from ChannelSelection import ChannelSelection, BouquetSelector from Components.ActionMap import ActionMap, HelpableActionMap from Components.ActionMap import NumberActionMap -from Components.BlinkingPixmap import BlinkingPixmapConditional from Components.Harddisk import harddiskmanager from Components.Input import Input from Components.Label import Label -from Components.Pixmap import Pixmap from Components.PluginComponent import plugins from Components.ServiceEventTracker import ServiceEventTracker from Components.Sources.Boolean import Boolean @@ -31,10 +29,10 @@ from Screens.TimeDateInput import TimeDateInput from ServiceReference import ServiceReference from Tools import Notifications -from Tools.Directories import SCOPE_HDD, resolveFilename +from Tools.Directories import SCOPE_HDD, resolveFilename, pathExists from enigma import eTimer, eServiceCenter, eDVBServicePMTHandler, iServiceInformation, \ - iPlayableService, eServiceReference, eDVBResourceManager, iFrontendInformation, eEPGCache + iPlayableService, eServiceReference, eEPGCache from time import time, localtime, strftime from os import stat as os_stat @@ -730,14 +728,14 @@ class InfoBarSeek: return True def __seekableStatusChanged(self): - print "seekable status changed!" +# print "seekable status changed!" if not self.isSeekable(): self["SeekActions"].setEnabled(False) - print "not seekable, return to play" +# print "not seekable, return to play" self.setSeekState(self.SEEK_STATE_PLAY) else: self["SeekActions"].setEnabled(True) - print "seekable" +# print "seekable" def __serviceStarted(self): self.seekstate = self.SEEK_STATE_PLAY @@ -1014,7 +1012,7 @@ class InfoBarTimeshiftState(InfoBarPVRState): InfoBarPVRState.__init__(self, screen=TimeshiftState) def _mayShow(self): - if self.execing and self.timeshift_enabled: + if self.execing and self.timeshift_enabled and self.seekstate != self.SEEK_STATE_PLAY: self.pvrStateDialog.show() class InfoBarShowMovies: @@ -1170,8 +1168,8 @@ class InfoBarTimeshift: def __seekableStatusChanged(self): enabled = False - print "self.isSeekable", self.isSeekable() - print "self.timeshift_enabled", self.timeshift_enabled +# print "self.isSeekable", self.isSeekable() +# print "self.timeshift_enabled", self.timeshift_enabled # when this service is not seekable, but timeshift # is enabled, this means we can activate @@ -1179,7 +1177,7 @@ class InfoBarTimeshift: if not self.isSeekable() and self.timeshift_enabled: enabled = True - print "timeshift activate:", enabled +# print "timeshift activate:", enabled self["TimeshiftActivateActions"].setEnabled(enabled) def __serviceStarted(self): @@ -1487,9 +1485,13 @@ class InfoBarInstantRecord: self.session.nav.RecordTimer.timeChanged(self.recording[self.selectedEntry]) def instantRecord(self): + dir = config.movielist.last_videodir.value + if not pathExists(dir): + dir = resolveFilename(SCOPE_HDD) try: - stat = os_stat(resolveFilename(SCOPE_HDD)) + stat = os_stat(dir) except: + # XXX: this message is a little odd as we might be recording to a remote device self.session.open(MessageBox, _("No HDD found or HDD not initialized!"), MessageBox.TYPE_ERROR) return @@ -1619,16 +1621,18 @@ class InfoBarSubserviceSelection: }, -1) self["SubserviceQuickzapAction"].setEnabled(False) - self.session.nav.event.append(self.checkSubservicesAvail) # we like to get service events + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedEventInfo: self.checkSubservicesAvail + }) self.bsel = None - def checkSubservicesAvail(self, ev): - if ev == iPlayableService.evUpdatedEventInfo: - service = self.session.nav.getCurrentService() - subservices = service and service.subServices() - if not subservices or subservices.getNumberOfSubservices() == 0: - self["SubserviceQuickzapAction"].setEnabled(False) + def checkSubservicesAvail(self): + service = self.session.nav.getCurrentService() + subservices = service and service.subServices() + if not subservices or subservices.getNumberOfSubservices() == 0: + self["SubserviceQuickzapAction"].setEnabled(False) def nextSubservice(self): self.changeSubservice(+1) @@ -1727,8 +1731,11 @@ class InfoBarSubserviceSelection: class InfoBarAdditionalInfo: def __init__(self): - self["RecordingPossible"] = Boolean(fixed=harddiskmanager.HDDCount() > 0) + self["RecordingPossible"] = Boolean(fixed=harddiskmanager.HDDCount() > 0 and config.misc.rcused.value == 1) self["TimeshiftPossible"] = self["RecordingPossible"] + self["ShowTimeshiftOnYellow"] = Boolean(fixed=(not config.misc.rcused.value == 0)) + self["ShowAudioOnYellow"] = Boolean(fixed=config.misc.rcused.value == 0) + self["ShowRecordOnRed"] = Boolean(fixed=config.misc.rcused.value == 1) self["ExtensionsAvailable"] = Boolean(fixed=1) class InfoBarNotifications: