print "unpause"
if self.seekstate == self.SEEK_STATE_PLAY:
return 0
- self.setSeekState(self.SEEK_STATE_PLAY);
+ self.setSeekState(self.SEEK_STATE_PLAY)
def doSeek(self, seektime):
print "doseek", seektime
from Screens.PiPSetup import PiPSetup
class InfoBarExtensions:
- def __init__(self):
+ def __init__(self, useServicePath = True):
self.session.pipshown = False
+ self.useServicePath = useServicePath
self["InstantExtensionsActions"] = HelpableActionMap(self, "InfobarExtensions",
{
newservice = self.session.nav.getCurrentlyPlayingServiceReference()
if self.session.pip.playService(newservice):
self.session.pipshown = True
- self.session.pip.servicePath = self.servicelist.getCurrentServicePath()
+ if self.useServicePath:
+ self.session.pip.servicePath = self.servicelist.getCurrentServicePath()
else:
self.session.pipshown = False
del self.session.pip
self.session.pipshown = False
elif answer[1] == self.PIPSWAP:
swapservice = self.session.nav.getCurrentlyPlayingServiceReference()
- if self.session.pip.servicePath:
- servicepath = self.servicelist.getCurrentServicePath()
- ref=servicepath[len(servicepath)-1]
- pipref=self.session.pip.getCurrentService()
- self.session.pip.playService(swapservice)
- self.servicelist.setCurrentServicePath(self.session.pip.servicePath)
- if pipref.toString() != ref.toString(): # is a subservice ?
- self.session.nav.stopService() # stop portal
- self.session.nav.playService(pipref) # start subservice
- self.session.pip.servicePath=servicepath
+ if self.useServicePath:
+ if self.session.pip.servicePath:
+ servicepath = self.servicelist.getCurrentServicePath()
+ ref=servicepath[len(servicepath)-1]
+ pipref=self.session.pip.getCurrentService()
+ self.session.pip.playService(swapservice)
+ self.servicelist.setCurrentServicePath(self.session.pip.servicePath)
+ if pipref.toString() != ref.toString(): # is a subservice ?
+ self.session.nav.stopService() # stop portal
+ self.session.nav.playService(pipref) # start subservice
+ self.session.pip.servicePath=servicepath
elif answer[1] == self.MOVEPIP:
self.session.open(PiPSetup, pip = self.session.pip)
elif answer[1] == self.ENABLE_SUBTITLE:
service = self.session.nav.getCurrentService()
audio = service and service.audioTracks()
self.audioTracks = audio
- n = audio and audio.getNumberOfTracks()
+ n = audio and audio.getNumberOfTracks() or 0
keys = [ "red", "", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"] + [""]*n
tlist = []
print "tlist:", tlist
- if n and n > 0:
+ if n > 0:
self.audioChannel = service.audioChannel()
for x in range(n):
self.audioChannel.selectChannel(mode[1])
del self.audioChannel
+
class InfoBarSubserviceSelection:
def __init__(self):
self["SubserviceSelectionAction"] = HelpableActionMap(self, "InfobarSubserviceSelectionActions",
selection = x
tlist.append((i.getName(), i))
- self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = selection)
+ tlist = [(_("Quickzap"), "quickzap", service.subServices()), ("--", "")] + tlist
+
+ keys = ["red", "", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] + [""] * n
+
+ self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = selection + 2, keys = keys)
def subserviceSelected(self, service):
if not service is None:
- self["SubserviceQuickzapAction"].setEnabled(True)
- self.session.nav.playService(service[1])
+ if isinstance(service[1], str):
+ if service[1] == "quickzap":
+ from Screens.SubservicesQuickzap import SubservicesQuickzap
+ self.session.open(SubservicesQuickzap, service[2])
+ else:
+ self["SubserviceQuickzapAction"].setEnabled(True)
+ self.session.nav.playService(service[1])
class InfoBarAdditionalInfo:
def __init__(self):
CUT_TYPE_IN = 0
CUT_TYPE_OUT = 1
CUT_TYPE_MARK = 2
+ CUT_TYPE_LAST = 3
+
+ ENABLE_RESUME_SUPPORT = False
def __init__(self):
self["CueSheetActions"] = HelpableActionMap(self, "InfobarCueSheetActions",
}, prio=1)
self.cut_list = [ ]
+ self.is_closing = False
self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
{
iPlayableService.evStart: self.__serviceStarted,
})
def __serviceStarted(self):
+ if self.is_closing:
+ return
print "new service started! trying to download cuts!"
self.downloadCuesheet()
+
+ if self.ENABLE_RESUME_SUPPORT:
+ last = None
+
+ for (pts, what) in self.cut_list:
+ if what == self.CUT_TYPE_LAST:
+ last = pts
+
+ if last is not None:
+ self.resume_point = last
+ Notifications.AddNotificationWithCallback(self.playLastCB, MessageBox, _("Do you want to resume this playback?"), timeout=10)
+
+ def playLastCB(self, answer):
+ if answer == True:
+ seekable = self.__getSeekable()
+ if seekable is not None:
+ seekable.seekTo(self.resume_point)
def __getSeekable(self):
service = self.session.nav.getCurrentService()