X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/779cb6e326391280631d0b486957d5e576eb23ea..17647e30993cc20d8f94f2de4a0bc78ce6b593cb:/lib/python/Components/ServicePosition.py diff --git a/lib/python/Components/ServicePosition.py b/lib/python/Components/ServicePosition.py new file mode 100644 index 00000000..1795637e --- /dev/null +++ b/lib/python/Components/ServicePosition.py @@ -0,0 +1,48 @@ +from PerServiceDisplay import * +from enigma import eTimer + + +from enigma import pNavigation, iSeekableServicePtr + +class ServicePosition(PerServiceDisplay): + def __init__(self, navcore): + self.updateTimer = eTimer() + self.updateTimer.timeout.get().append(self.update) + PerServiceDisplay.__init__(self, navcore, + { + pNavigation.evNewService: self.newService, + pNavigation.evStopService: self.stopEvent + }) + + def newService(self): + seek = iSeekableServicePtr() + service = self.navcore.getCurrentService() + + self.updateTimer.stop() + + if service != None: + if not service.seek(seek): + self.updateTimer.start(500) + + + def update(self): + seek = iSeekableServicePtr() + 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 + + if l != -1: + self.setText("%d:%02d" % (l/60, l%60)) + else: + self.setText("-:--") + + def stopEvent(self): + self.updateTimer.stop() + self.setText("");