aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-01-18 02:07:58 +0000
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2006-01-18 02:07:58 +0000
commite41bc43a71848704ead6e9595924fe3542435f5d (patch)
tree2a15aefbaa0655cb91cbb782a64807fd910d8f8c /lib/python/Components
parent868ce0acf9b570870c4d24bc0b7e21f018f185a7 (diff)
downloadenigma2-e41bc43a71848704ead6e9595924fe3542435f5d.tar.gz
enigma2-e41bc43a71848704ead6e9595924fe3542435f5d.zip
use progressbar in InfoBar to display the progress of the "now" event
Diffstat (limited to 'lib/python/Components')
-rw-r--r--lib/python/Components/EventInfo.py35
-rw-r--r--lib/python/Components/PerServiceDisplay.py21
2 files changed, 48 insertions, 8 deletions
diff --git a/lib/python/Components/EventInfo.py b/lib/python/Components/EventInfo.py
index f295281a..ce13ba85 100644
--- a/lib/python/Components/EventInfo.py
+++ b/lib/python/Components/EventInfo.py
@@ -1,6 +1,6 @@
from PerServiceDisplay import *
from time import strftime
-from time import localtime
+from time import localtime, time
from enigma import iServiceInformationPtr, eServiceEventPtr
@@ -31,15 +31,36 @@ class EventInfo(PerServiceDisplay):
if info is not None:
ev = info.getEvent(self.now_or_next & 1)
if ev is not None:
- if (self.Now_Duration <= self.now_or_next <= self.Next_Duration):
- self.setText("%d min" % (ev.getDuration() / 60))
- if (self.Now_StartTime <= self.now_or_next <= self.Next_StartTime):
- self.setText(strftime("%H:%M", localtime(ev.getBeginTime())))
- if (self.Now <= self.now_or_next <= self.Next):
- self.setText(ev.getEventName())
+ self.update(ev)
+
+
+ def update(self, ev):
+ if (self.Now_Duration <= self.now_or_next <= self.Next_Duration):
+ self.setText("%d min" % (ev.getDuration() / 60))
+ if (self.Now_StartTime <= self.now_or_next <= self.Next_StartTime):
+ self.setText(strftime("%H:%M", localtime(ev.getBeginTime())))
+ if (self.Now <= self.now_or_next <= self.Next):
+ self.setText(ev.getEventName())
def stopEvent(self):
self.setText(
#(_("waiting for event data..."), "", "--:--", "--:--", "--:--", "--:--")[self.now_or_next]);
("", "", "--:--", "--:--", "--:--", "--:--")[self.now_or_next]);
+
+class EventInfoProgress(PerServiceDisplayProgress, EventInfo):
+ def __init__(self, navcore, now_or_next):
+ self.now_or_next = now_or_next
+ PerServiceDisplayProgress.__init__(self, navcore,
+ {
+ pNavigation.evUpdatedEventInfo: self.ourEvent,
+ pNavigation.evStopService: self.stopEvent
+ })
+
+ def update(self, ev):
+ self.g.setRange(0, ev.getDuration())
+ progress = int(time() - ev.getBeginTime())
+
+ self.setValue(progress)
+
+ \ No newline at end of file
diff --git a/lib/python/Components/PerServiceDisplay.py b/lib/python/Components/PerServiceDisplay.py
index eab1e086..01e5cc82 100644
--- a/lib/python/Components/PerServiceDisplay.py
+++ b/lib/python/Components/PerServiceDisplay.py
@@ -1,8 +1,9 @@
from GUIComponent import *
from VariableText import *
+from VariableValue import *
from enigma import pNavigation
-from enigma import eLabel
+from enigma import eLabel, eSlider
class PerServiceDisplay(GUIComponent, VariableText):
"""Mixin for building components which display something which changes on navigation events, for example "service name" """
@@ -28,3 +29,21 @@ class PerServiceDisplay(GUIComponent, VariableText):
g = eLabel(parent)
return g
+
+class PerServiceDisplayProgress(GUIComponent, VariableValue, PerServiceDisplay):
+ 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(pNavigation.evStopService)
+
+
+ def createWidget(self, parent):
+ # by default, we use a label to display our data.
+ self.g = eSlider(parent)
+ return self.g
+ \ No newline at end of file