X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FServicePosition.py;h=b496425042ca2f97a5836a04cd48bc6c058fc34f;hp=ba87e3ef680df8438255f6a9a38352115d41a18b;hb=fe72b7929c2f0b5dbac3040b303d195923735fc8;hpb=ebd1552cdd3e60d5eb21f97e46570de2e17ed19f diff --git a/lib/python/Components/ServicePosition.py b/lib/python/Components/ServicePosition.py index ba87e3e..b496425 100644 --- a/lib/python/Components/ServicePosition.py +++ b/lib/python/Components/ServicePosition.py @@ -1,16 +1,18 @@ from PerServiceDisplay import PerServiceDisplay, PerServiceBase -from enigma import eTimer, iPlayableService, iSeekableServicePtr, ePositionGauge +from Components.GUIComponent import GUIComponent +from enigma import eTimer, iPlayableService, 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) + self.updateTimer.callback.append(self.update) PerServiceDisplay.__init__(self, navcore, { iPlayableService.evStart: self.newService, @@ -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,29 @@ 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) + + def destroy(self): + PerServiceBase.destroy(self) + GUIComponent.destroy(self)