speed up resume (allows skipping into titles) *remember to update libdreamdvd0 -...
authorAndreas Frisch <andreas.frisch@multimedia-labs.de>
Mon, 18 Aug 2008 10:22:45 +0000 (10:22 +0000)
committerAndreas Frisch <andreas.frisch@multimedia-labs.de>
Mon, 18 Aug 2008 10:22:45 +0000 (10:22 +0000)
lib/python/Plugins/Extensions/DVDPlayer/plugin.py
lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp

index 79a13e6..03f1ccc 100644 (file)
@@ -587,9 +587,12 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
 
        def playLastCB(self, answer): # overwrite infobar cuesheet function
                print "playLastCB", answer, self.resume_point
 
        def playLastCB(self, answer): # overwrite infobar cuesheet function
                print "playLastCB", answer, self.resume_point
-               if self.service and answer == True:
+               if self.service:
                        seek = self.service.seek()
                        seek = self.service.seek()
-                       seek.seekTo(self.resume_point)
+                       if answer == True:
+                               seek.seekTo(self.resume_point)
+                       pause = self.service.pause()
+                       pause.unpause()
                self.hideAfterResume()
 
        def showAfterCuesheetOperation(self):
                self.hideAfterResume()
 
        def showAfterCuesheetOperation(self):
index cdb01d3..7a73119 100644 (file)
@@ -115,6 +115,7 @@ eServiceDVD::eServiceDVD(const char *filename):
        CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage);
        strcpy(m_ddvd_titlestring,"");
        m_cue_pts = 0;
        CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage);
        strcpy(m_ddvd_titlestring,"");
        m_cue_pts = 0;
+       pause();
 }
 
 void eServiceDVD::gotThreadMessage(const int &msg)
 }
 
 void eServiceDVD::gotThreadMessage(const int &msg)
@@ -733,6 +734,8 @@ void eServiceDVD::loadCuesheet()
                m_event((iPlayableService*)this, evCuesheetChanged);
                eDebug("eServiceDVD::loadCuesheet() pts=%lld",m_cue_pts);
        }
                m_event((iPlayableService*)this, evCuesheetChanged);
                eDebug("eServiceDVD::loadCuesheet() pts=%lld",m_cue_pts);
        }
+       else
+               unpause();
 }
 
 void eServiceDVD::saveCuesheet()
 }
 
 void eServiceDVD::saveCuesheet()