1 from GUIComponent import *
2 from VariableText import *
3 from VariableValue import *
5 from enigma import iPlayableService
6 from enigma import eLabel, eSlider, eTimer
8 class PerServiceDisplay(GUIComponent, VariableText):
9 """Mixin for building components which display something which changes on navigation events, for example "service name" """
11 def __init__(self, navcore, eventmap):
12 GUIComponent.__init__(self)
13 VariableText.__init__(self)
14 self.eventmap = eventmap
15 self.navcore = navcore
16 self.navcore.event.append(self.event)
17 self.poll_timer = eTimer()
18 self.poll_timer.timeout.get().append(self.poll)
20 # start with stopped state, so simulate that
21 self.event(iPlayableService.evEnd)
24 # loop up if we need to handle this event
25 if self.eventmap.has_key(ev):
29 def createWidget(self, parent):
30 # by default, we use a label to display our data.
34 def enablePolling(self, interval=60000):
36 self.poll_timer.start(interval)
38 self.poll_timer.stop()
40 def disablePolling(self):
41 self.enablePolling(interval=0)
46 class PerServiceDisplayProgress(GUIComponent, VariableValue, PerServiceDisplay):
47 def __init__(self, navcore, eventmap):
48 GUIComponent.__init__(self)
49 VariableValue.__init__(self)
50 self.eventmap = eventmap
51 self.navcore = navcore
52 self.navcore.event.append(self.event)
54 # start with stopped state, so simulate that
55 self.event(iPlayableService.evEnd)
58 def createWidget(self, parent):
59 # by default, we use a label to display our data.
60 self.g = eSlider(parent)