1 from Converter import Converter
3 from enigma import iPlayableService
5 class ServicePosition(Converter, Poll, object):
11 def __init__(self, type, *args, **kwargs):
13 Converter.__init__(self)
15 self.type = self.TYPE_LENGTH
16 elif type == "Position":
17 self.type = self.TYPE_POSITION
18 elif type == "Remaining":
19 self.type = self.TYPE_REMAINING
21 self.type = self.TYPE_GAUGE
23 self.poll_interval = 500
24 self.poll_enabled = self.type != self.TYPE_LENGTH
27 s = self.source.service
30 def getPosition(self):
34 pos = seek.getPlayPosition()
43 length = seek.getLength()
46 return length[1] / 90000
49 service = self.source.service
50 cue = service and service.cueSheet()
51 return cue and cue.getCutList()
58 if self.type == self.TYPE_LENGTH:
60 elif self.type == self.TYPE_POSITION:
62 elif self.type == self.TYPE_REMAINING:
63 l = self.length - self.position
64 return "%d:%02d" % (l/60, l%60)
66 position = property(getPosition)
67 length = property(getLength)
68 cutlist = property(getCutlist)
69 text = property(getText)
71 def changed(self, *args):
72 cutlist_refresh = len(args) and args[0] in [iPlayableService.evCuesheetChanged, iPlayableService.evStart, iPlayableService.evEnd]
73 time_refresh = not len(args) or args[0] in [iPlayableService.evStart, iPlayableService.evEnd]
76 if self.type == self.TYPE_GAUGE:
77 self.downstream_elements.cutlist_changed()
80 self.downstream_elements.changed()