X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ebd1552cdd3e60d5eb21f97e46570de2e17ed19f..6eeefece35e4269e02fdb7abab4f79d8e7b8f98b:/lib/python/Components/ServicePosition.py diff --git a/lib/python/Components/ServicePosition.py b/lib/python/Components/ServicePosition.py index ba87e3ef..d34d81fb 100644 --- a/lib/python/Components/ServicePosition.py +++ b/lib/python/Components/ServicePosition.py @@ -1,14 +1,16 @@ from PerServiceDisplay import PerServiceDisplay, PerServiceBase +from Components.GUIComponent import GUIComponent from enigma import eTimer, iPlayableService, iSeekableServicePtr, ePositionGauge import time -class ServicePosition(PerServiceDisplay): +class ServicePosition(PerServiceDisplay, object): TYPE_LENGTH = 0, TYPE_POSITION = 1, TYPE_REMAINING = 2, TYPE_RELATIVE = 3 def __init__(self, navcore, type): + object.__init__(self) self.updateTimer = eTimer() self.updateTimer.timeout.get().append(self.update) PerServiceDisplay.__init__(self, navcore, @@ -84,8 +86,9 @@ class ServicePosition(PerServiceDisplay): self.updateTimer.stop() self.setText(""); -class ServicePositionGauge(PerServiceBase): +class ServicePositionGauge(PerServiceBase, GUIComponent): def __init__(self, navcore): + GUIComponent.__init__(self) PerServiceBase.__init__(self, navcore, { iPlayableService.evStart: self.newService, @@ -93,6 +96,7 @@ class ServicePositionGauge(PerServiceBase): iPlayableService.evCuesheetChanged: self.newCuesheet }) self.instance = None + self.__seek_position = 0 def newService(self): if self.get() is None: @@ -105,7 +109,7 @@ class ServicePositionGauge(PerServiceBase): service = self.navcore.getCurrentService() seek = service and service.seek() if seek is None: - return None + return (0, 0) len = seek.getLength() pos = seek.getPlayPosition() @@ -130,6 +134,7 @@ class ServicePositionGauge(PerServiceBase): def postWidgetCreate(self, instance): self.newService() + self.setSeekPosition(self.__seek_position) def newCuesheet(self): service = self.navcore.getCurrentService() @@ -137,3 +142,25 @@ class ServicePositionGauge(PerServiceBase): cutlist = (cue and cue.getCutList()) or [ ] if self.instance is not None: self.instance.setInOutList(cutlist) + + def getSeekEnable(self): + return self.__seek_enable + + def setSeekEnable(self, val): + self.__seek_enable = val + if self.instance is not None: + self.instance.enableSeekPointer(val) + + seek_pointer_enabled = property(getSeekEnable, setSeekEnable) + + def getSeekPosition(self): + return self.__seek_position + + def setSeekPosition(self, pos): + print "set seek position:", pos + self.__seek_position = pos + if self.instance is not None: + print "set instance." + self.instance.setSeekPosition(pos) + + seek_pointer_position = property(getSeekPosition, setSeekPosition)