X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/98c4b5bb004e9297bffa8e1c3572572741fda933..36bc1fa5226f5c1942f68b0afb485441e437be8a:/lib/python/Components/PerServiceDisplay.py diff --git a/lib/python/Components/PerServiceDisplay.py b/lib/python/Components/PerServiceDisplay.py index eab1e086..55ef3d18 100644 --- a/lib/python/Components/PerServiceDisplay.py +++ b/lib/python/Components/PerServiceDisplay.py @@ -1,21 +1,21 @@ from GUIComponent import * from VariableText import * +from VariableValue import * -from enigma import pNavigation -from enigma import eLabel +from enigma import iPlayableService +from enigma import eLabel, eSlider, eTimer -class PerServiceDisplay(GUIComponent, VariableText): - """Mixin for building components which display something which changes on navigation events, for example "service name" """ - +class PerServiceBase(GUIComponent): def __init__(self, navcore, eventmap): GUIComponent.__init__(self) - VariableText.__init__(self) self.eventmap = eventmap self.navcore = navcore self.navcore.event.append(self.event) - + self.poll_timer = eTimer() + self.poll_timer.timeout.get().append(self.poll) + # start with stopped state, so simulate that - self.event(pNavigation.evStopService) + self.event(iPlayableService.evEnd) def event(self, ev): # loop up if we need to handle this event @@ -23,8 +23,41 @@ class PerServiceDisplay(GUIComponent, VariableText): # call handler self.eventmap[ev]() + def enablePolling(self, interval=60000): + if interval: + self.poll_timer.start(interval) + else: + self.poll_timer.stop() + + def disablePolling(self): + self.enablePolling(interval=0) + + def poll(self): + pass + +class PerServiceDisplay(PerServiceBase, VariableText): + """Mixin for building components which display something which changes on navigation events, for example "service name" """ + def __init__(self, navcore, eventmap): + VariableText.__init__(self) + PerServiceBase.__init__(self, navcore, eventmap) + def createWidget(self, parent): # by default, we use a label to display our data. g = eLabel(parent) return g +class PerServiceDisplayProgress(GUIComponent, VariableValue, PerServiceBase): + def __init__(self, navcore, eventmap): + GUIComponent.__init__(self) + VariableValue.__init__(self) + self.eventmap = eventmap + self.navcore = navcore + self.navcore.event.append(self.event) + + # start with stopped state, so simulate that + self.event(iPlayableService.evEnd) + + def createWidget(self, parent): + # by default, we use a label to display our data. + self.g = eSlider(parent) + return self.g