X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/17647e30993cc20d8f94f2de4a0bc78ce6b593cb..525a8afd5b9ef35328f44236f5861f88746ce414:/lib/python/Components/ServicePosition.py diff --git a/lib/python/Components/ServicePosition.py b/lib/python/Components/ServicePosition.py index 1795637e..80e5e3db 100644 --- a/lib/python/Components/ServicePosition.py +++ b/lib/python/Components/ServicePosition.py @@ -2,45 +2,66 @@ from PerServiceDisplay import * from enigma import eTimer -from enigma import pNavigation, iSeekableServicePtr +from enigma import iPlayableService, iSeekableServicePtr class ServicePosition(PerServiceDisplay): - def __init__(self, navcore): + TYPE_LENGTH = 0, + TYPE_POSITION = 1, + TYPE_REMAINING = 2 + + def __init__(self, navcore, type): self.updateTimer = eTimer() self.updateTimer.timeout.get().append(self.update) PerServiceDisplay.__init__(self, navcore, { - pNavigation.evNewService: self.newService, - pNavigation.evStopService: self.stopEvent + iPlayableService.evStart: self.newService, + iPlayableService.evEnd: self.stopEvent }) + self.type = type +# self.setType(type) def newService(self): - seek = iSeekableServicePtr() - service = self.navcore.getCurrentService() + self.setType(self.type) + + def setType(self, type): + self.type = type - self.updateTimer.stop() + self.updateTimer.start(500) + self.update() + + def get(self, what): + service = self.navcore.getCurrentService() if service != None: - if not service.seek(seek): - self.updateTimer.start(500) + seek = service.seek() + if seek != None: + if what == self.TYPE_LENGTH: + r = seek.getLength() + elif what == self.TYPE_POSITION: + r = seek.getPlayPosition() + if not r[0]: + return r[1] / 90000 + return -1 def update(self): - seek = iSeekableServicePtr() + seek = None service = self.navcore.getCurrentService() - - l = -1 - if service != None: - if not service.seek(seek): - # r = seek.getLength() - r = seek.getPlayPosition() - if not r[0]: - l = r[1] / 90000 + seek = service.seek() - if l != -1: + if seek is not None: + if self.type == self.TYPE_LENGTH: + l = self.get(self.TYPE_LENGTH) + elif self.type == self.TYPE_POSITION: + l = self.get(self.TYPE_POSITION) + elif self.type == self.TYPE_REMAINING: + l = self.get(self.TYPE_LENGTH) - self.get(self.TYPE_POSITION) + self.setText("%d:%02d" % (l/60, l%60)) + self.updateTimer.start(500) else: + self.updateTimer.start(10000) self.setText("-:--") def stopEvent(self):