1 from PerServiceDisplay import *
2 from enigma import eTimer
5 from enigma import pNavigation, iSeekableServicePtr
7 class ServicePosition(PerServiceDisplay):
12 def __init__(self, navcore, type):
13 self.updateTimer = eTimer()
14 self.updateTimer.timeout.get().append(self.update)
15 PerServiceDisplay.__init__(self, navcore,
17 pNavigation.evNewService: self.newService,
18 pNavigation.evStopService: self.stopEvent
24 self.setType(self.type)
26 def setType(self, type):
29 seek = iSeekableServicePtr()
30 service = self.navcore.getCurrentService()
32 self.updateTimer.stop()
36 if not service.seek(seek):
37 if self.type != self.TYPE_LENGTH:
38 self.updateTimer.start(500)
40 self.length = self.get(self.TYPE_LENGTH)
46 seek = iSeekableServicePtr()
47 service = self.navcore.getCurrentService()
50 if not service.seek(seek):
51 if what == self.TYPE_LENGTH:
53 elif what == self.TYPE_POSITION:
54 r = seek.getPlayPosition()
62 if self.type == self.TYPE_LENGTH:
64 elif self.type == self.TYPE_POSITION:
65 l = self.get(self.TYPE_POSITION)
66 elif self.type == self.TYPE_REMAINING:
67 l = self.length - self.get(self.TYPE_POSITION)
69 self.setText("%d:%02d" % (l/60, l%60))
74 self.updateTimer.stop()