1 from Components.PerServiceDisplay import PerServiceBase
2 from Tools.Event import Event
3 from enigma import iPlayableService
4 from Source import Source
8 class EventInfo(PerServiceBase, Source, object):
12 def __init__(self, navcore, now_or_next):
14 PerServiceBase.__init__(self, navcore,
16 iPlayableService.evStart: self.gotEvent,
17 iPlayableService.evUpdatedEventInfo: self.gotEvent,
18 iPlayableService.evEnd: self.gotEvent
21 self.now_or_next = now_or_next
24 if self.cache is None:
25 service = self.navcore.getCurrentService()
26 info = service and service.info()
27 self.cache = (True, info and info.getEvent(self.now_or_next)) # we always store a tuple for negative caching
31 event = property(getEvent)
33 def gotEvent(self, what):
34 if what in [iPlayableService.evStart, iPlayableService.evEnd]:
35 self.changed((self.CHANGED_CLEAR,))
37 self.changed((self.CHANGED_ALL,))