SEEK_STATE_EOF = (1, 0, 0, "END")
- def __init__(self):
+ def __init__(self, actionmap = "InfobarSeekActions"):
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
iPlayableService.evSeekableStatusChanged: self.__seekableStatusChanged,
if action[:5] == "seek:":
time = int(action[5:])
self.screen.seekRelative(time * 90000)
- self.screen.doShow()
+ if isinstance(self.screen, InfoBarShowHide):
+ self.screen.doShow()
return 1
else:
return HelpableActionMap.action(self, contexts, action)
- self["SeekActions"] = InfoBarSeekActionMap(self, "InfobarSeekActions",
+ self["SeekActions"] = InfoBarSeekActionMap(self, actionmap,
{
"playpauseService": (self.playpauseService, _("pause")),
"pauseService": (self.pauseService, _("pause")),
"unPauseService": (self.unPauseService, _("continue")),
"seekFwd": (self.seekFwd, _("skip forward")),
- "seekFwdDown": self.seekFwdDown,
- "seekFwdUp": self.seekFwdUp,
+ "seekFwdManual": (self.seekFwdManual, _("skip forward (enter time)")),
"seekBack": (self.seekBack, _("skip backward")),
- "seekBackDown": self.seekBackDown,
- "seekBackUp": self.seekBackUp,
+ "seekBackManual": (self.seekBackManual, _("skip backward (enter time)")),
}, prio=-1)
# give them a little more priority to win over color buttons
self["SeekActions"].setEnabled(False)
self.seekstate = self.SEEK_STATE_PLAY
- self.onClose.append(self.delTimer)
-
- self.fwdtimer = False
- self.fwdKeyTimer = eTimer()
- self.fwdKeyTimer.timeout.get().append(self.fwdTimerFire)
-
- self.rwdtimer = False
- self.rwdKeyTimer = eTimer()
- self.rwdKeyTimer.timeout.get().append(self.rwdTimerFire)
self.onPlayStateChanged = [ ]
self.lockedBecauseOfSkipping = False
+ self.__seekableStatusChanged()
+
def up(self):
pass
def down(self):
pass
- def delTimer(self):
- del self.fwdKeyTimer
- del self.rwdKeyTimer
-
def getSeek(self):
service = self.session.nav.getCurrentService()
if service is None:
seekable.seekTo(90 * seektime)
- def seekFwdDown(self):
- print "start fwd timer"
- self.fwdtimer = True
- self.fwdKeyTimer.start(1000)
-
- def seekBackDown(self):
- print "start rewind timer"
- self.rwdtimer = True
- self.rwdKeyTimer.start(1000)
-
- def seekFwdUp(self):
- print "seekFwdUp"
- if self.fwdtimer:
- self.fwdKeyTimer.stop()
- self.fwdtimer = False
- self.seekFwd()
-
def seekFwd(self):
lookup = {
self.SEEK_STATE_PLAY: self.SEEK_STATE_FF_2X,
}
self.setSeekState(lookup[self.seekstate])
- def seekBackUp(self):
- print "seekBackUp"
- if self.rwdtimer:
- self.rwdKeyTimer.stop()
- self.rwdtimer = False
- self.seekBack()
-
def seekBack(self):
lookup = {
self.SEEK_STATE_PLAY: self.SEEK_STATE_BACK_16X,
if seekable is not None:
seekable.seekRelative(-1, 3)
- def fwdTimerFire(self):
- print "Display seek fwd"
- self.fwdKeyTimer.stop()
- self.fwdtimer = False
+ def seekFwdManual(self):
self.session.openWithCallback(self.fwdSeekTo, MinuteInput)
def fwdSeekTo(self, minutes):
if seekable is not None:
seekable.seekRelative(1, minutes * 60 * 90000)
- def rwdTimerFire(self):
- print "rwdTimerFire"
- self.rwdKeyTimer.stop()
- self.rwdtimer = False
+ def seekBackManual(self):
self.session.openWithCallback(self.rwdSeekTo, MinuteInput)
def rwdSeekTo(self, minutes):
nearest = None
for cp in self.cut_list:
diff = cmp(cp[0] - pts)
- if diff >= 0 and (nearest is None or cmp(nearest[0] - pts) > diff):
+ if cp[1] == self.CUT_TYPE_MARK and diff >= 0 and (nearest is None or cmp(nearest[0] - pts) > diff):
nearest = cp
return nearest