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,
l = self.get(self.TYPE_POSITION)
if l != -1:
l += self.relative_base
- t = time.localtime(l)
- timestr = "%2d:%02d:%02d" % (t.tm_hour, t.tm_min, t.tm_sec)
+ try:
+ t = time.localtime(l)
+ timestr = "%2d:%02d:%02d" % (t.tm_hour, t.tm_min, t.tm_sec)
+ except ValueError:
+ timestr = ""
else:
timestr = ""
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,
iPlayableService.evCuesheetChanged: self.newCuesheet
})
self.instance = None
+ self.__seek_position = 0
def newService(self):
if self.get() is None:
service = self.navcore.getCurrentService()
seek = service and service.seek()
if seek is None:
- return None
+ return (0, 0)
len = seek.getLength()
pos = seek.getPlayPosition()
def stopEvent(self):
self.disablePolling()
- def GUIcreate(self, parent):
- self.instance = ePositionGauge(parent)
+ GUI_WIDGET = ePositionGauge
+
+ def postWidgetCreate(self, instance):
self.newService()
+ self.setSeekPosition(self.__seek_position)
- def GUIdelete(self):
- self.instance = None
-
def newCuesheet(self):
service = self.navcore.getCurrentService()
cue = service and service.cueSheet()
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)