X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e69fde464582ffb74d03510f7ba45542af17d730..1c6adfdbe104773d7a98377de6951da02ae1aac0:/lib/python/Components/Sources/ServiceEvent.py diff --git a/lib/python/Components/Sources/ServiceEvent.py b/lib/python/Components/Sources/ServiceEvent.py index 8a1c7ffe..93c733bd 100644 --- a/lib/python/Components/Sources/ServiceEvent.py +++ b/lib/python/Components/Sources/ServiceEvent.py @@ -1,30 +1,31 @@ -from Components.VariableText import VariableText from Components.Element import cached -from Components.GUIComponent import GUIComponent -from enigma import eEPGCache, eServiceReference as Ref, eLabel +from enigma import eServiceCenter, eServiceReference as Ref from Source import Source -class ServiceEvent(VariableText, GUIComponent, Source, object): +class ServiceEvent(Source, object): def __init__(self): Source.__init__(self) - GUIComponent.__init__(self) - VariableText.__init__(self) - self.cur_ref = None + self.service = None - GUI_WIDGET = eLabel + @cached + def getCurrentService(self): + return self.service -#TODO Add a timer to get every minute the actual event.. -#but this just make sense when the Servicelist do the same thing.. @cached def getCurrentEvent(self): - epg = eEPGCache.getInstance() - return epg and self.cur_ref and epg.startTimeQuery(self.cur_ref) != -1 and epg.getNextTimeEntry() or None + return self.service and self.info and self.info.getEvent(self.service) + + @cached + def getInfo(self): + return self.service and eServiceCenter.getInstance().info(self.service) event = property(getCurrentEvent) + info = property(getInfo) def newService(self, ref): - self.cur_ref = ref - if not ref or (ref.flags & Ref.flagDirectory) == Ref.flagDirectory or ref.flags & Ref.isMarker: - self.changed((self.CHANGED_CLEAR,)) - else: - self.changed((self.CHANGED_ALL,)) + if not self.service or not ref or self.service != ref: + self.service = ref + if not ref or (ref.flags & Ref.flagDirectory) == Ref.flagDirectory or ref.flags & Ref.isMarker: + self.changed((self.CHANGED_CLEAR,)) + else: + self.changed((self.CHANGED_ALL,))