X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FSources%2FEventInfo.py;h=72d5f18d19eb4bd797426a35c0b503cab6a61f5f;hb=e03c732afb410b4d6b9f9540c36c33c941ee38f1;hp=724d9c1f0f93b9bc8c28e5086a1b9368c3e92c81;hpb=2e874fa14264bf37f17ae9b9375e26059e7f35ec;p=vuplus_dvbapp diff --git a/lib/python/Components/Sources/EventInfo.py b/lib/python/Components/Sources/EventInfo.py index 724d9c1..72d5f18 100644 --- a/lib/python/Components/Sources/EventInfo.py +++ b/lib/python/Components/Sources/EventInfo.py @@ -1,29 +1,36 @@ from Components.PerServiceDisplay import PerServiceBase +from Components.Element import cached from Tools.Event import Event from enigma import iPlayableService from Source import Source -class EventInfo(PerServiceBase, Source): +from time import time + +class EventInfo(PerServiceBase, Source, object): NOW = 0 NEXT = 1 def __init__(self, navcore, now_or_next): - self.changed = Event() + Source.__init__(self) PerServiceBase.__init__(self, navcore, { - iPlayableService.evUpdatedEventInfo: self.ourEvent, - iPlayableService.evEnd: self.stopEvent - }) + iPlayableService.evStart: self.gotEvent, + iPlayableService.evUpdatedEventInfo: self.gotEvent, + iPlayableService.evEnd: self.gotEvent + }, with_event=True) - self.event = None self.now_or_next = now_or_next - - def ourEvent(self): + + @cached + def getEvent(self): service = self.navcore.getCurrentService() info = service and service.info() - self.event = info and info.getEvent(self.now_or_next) - self.changed() + return info and info.getEvent(self.now_or_next) + + event = property(getEvent) - def stopEvent(self): - self.event = None - self.changed() + def gotEvent(self, what): + if what in [iPlayableService.evStart, iPlayableService.evEnd]: + self.changed((self.CHANGED_CLEAR,)) + else: + self.changed((self.CHANGED_ALL,))