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()
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
66 return "%d:%02d" % (l/60, l%60)
68 position = property(getPosition)
69 length = property(getLength)
70 cutlist = property(getCutlist)
71 text = property(getText)
73 def changed(self, *args):
74 cutlist_refresh = len(args) and args[0] in [iPlayableService.evCuesheetChanged, iPlayableService.evStart, iPlayableService.evEnd]
75 time_refresh = not len(args) or args[0] in [iPlayableService.evStart, iPlayableService.evEnd]
78 if self.type == self.TYPE_GAUGE:
79 self.downstream_elements.cutlist_changed()
82 self.downstream_elements.changed()