ask to resume on playback
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 24 Jul 2006 13:50:08 +0000 (13:50 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 24 Jul 2006 13:50:08 +0000 (13:50 +0000)
lib/python/Screens/InfoBar.py
lib/python/Screens/InfoBarGenerics.py

index 9d3e327..ff8e73d 100644 (file)
@@ -86,6 +86,8 @@ class MoviePlayer(InfoBarShowHide, \
        def __init__(self, session, service):
                Screen.__init__(self, session)
                
+               self.is_closing = False
+               
                self["actions"] = HelpableActionMap(self, "MoviePlayerActions",
                        {
                                "leavePlayer": (self.leavePlayer, _("leave movie player..."))
@@ -102,6 +104,7 @@ class MoviePlayer(InfoBarShowHide, \
                self.session.nav.playService(service)
 
        def leavePlayer(self):
+               self.is_closing = True
                self.session.openWithCallback(self.leavePlayerConfirmed, MessageBox, _("Stop playing this movie?"))
        
        def leavePlayerConfirmed(self, answer):
index 9b6712e..42a7eb8 100644 (file)
@@ -1443,6 +1443,7 @@ class InfoBarCueSheetSupport:
        CUT_TYPE_IN = 0
        CUT_TYPE_OUT = 1
        CUT_TYPE_MARK = 2
+       CUT_TYPE_LAST = 3
        
        def __init__(self):
                self["CueSheetActions"] = HelpableActionMap(self, "InfobarCueSheetActions", 
@@ -1459,8 +1460,26 @@ class InfoBarCueSheetSupport:
                        })
 
        def __serviceStarted(self):
+               if self.is_closing:
+                       return
                print "new service started! trying to download cuts!"
                self.downloadCuesheet()
+               
+               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()