From: Andreas Monzner Date: Tue, 22 Apr 2008 21:57:33 +0000 (+0000) Subject: disable cuesheet (resume) until in understand the libdvdnav :) X-Git-Tag: 2.6.0~1300 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/63ad55839aa3ab4902c4e62063259a49a17e7f49?ds=sidebyside disable cuesheet (resume) until in understand the libdvdnav :) --- diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py index a44d042b..45c5ddee 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py +++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py @@ -147,9 +147,10 @@ class ChapterZap(Screen): self.Timer.callback.append(self.keyOK) self.Timer.start(3000, True) -class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarCueSheetSupport, InfoBarPVRState, InfoBarShowHide, HelpableScreen): - ALLOW_SUSPEND = True - ENABLE_RESUME_SUPPORT = True +class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarPVRState, InfoBarShowHide, HelpableScreen): +#InfoBarCueSheetSupport, +# ALLOW_SUSPEND = True +# ENABLE_RESUME_SUPPORT = True skin = """ @@ -222,7 +223,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC Screen.__init__(self, session) InfoBarBase.__init__(self) InfoBarNotifications.__init__(self) - InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions") +# InfoBarCueSheetSupport.__init__(self, actionmap = "MediaPlayerCueSheetActions") InfoBarShowHide.__init__(self) HelpableScreen.__init__(self) self.save_infobar_seek_config() @@ -531,11 +532,25 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarC self.restore_infobar_seek_config() self.session.nav.playService(self.oldService) - def playLastCB(self, answer): # overwrite infobar cuesheet function - print "playLastCB", answer, self.resume_point -# if answer == True: -# self.doSeek(self.resume_point) - self.hideAfterResume() +# def playLastCB(self, answer): # overwrite infobar cuesheet function +# print "playLastCB", answer, self.resume_point +# pos = self.resume_point +# title = self.resume_point % 90000 +# pos -= title +# chapter = title % 256 +# title /= 256 +# print "pos", pos, "title", title, "chapter", chapter +# if self.service: +# seek = self.service.seek() +# if title != 1: +# seek.seekTitle(title) +# self.resume_state = 1 +# elif chapter != 1: +# seek.seekChapter(chapter) +# self.resume_state = 2 +# else: +# seek.seekTo(pos) +# self.hideAfterResume() def showAfterCuesheetOperation(self): if not self.in_menu: diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp index 12d14051..91b940a2 100644 --- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp +++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp @@ -205,20 +205,13 @@ void eServiceDVD::gotMessage(int what) { static struct ddvd_time last_info; struct ddvd_time info; - eDebug("DVD_SHOWOSD_TIME!"); +// eDebug("DVD_SHOWOSD_TIME!"); ddvd_get_last_time(m_ddvdconfig, &info); - int spu_id; - uint16_t spu_lang; - ddvd_get_last_spu(m_ddvdconfig, &spu_id, &spu_lang); if ( info.pos_chapter != last_info.pos_chapter ) - { m_event(this, evUser+8); // chapterUpdated - } if ( info.pos_title != last_info.pos_title ) - { m_event(this, evUser+9); // titleUpdated - } - ddvd_get_last_time(m_ddvdconfig, &last_info); + memcpy(&last_info, &info, sizeof(struct ddvd_time)); break; } case DDVD_SHOWOSD_TITLESTRING: @@ -286,7 +279,10 @@ RESULT eServiceDVD::stop() pos += info.pos_minutes * 60; pos += info.pos_seconds; pos *= 90000; + pos += info.pos_title * 256; + pos += info.pos_chapter; m_cue_pts = pos; + eDebug("POS %llu\n", m_cue_pts); } saveCuesheet(); return 0; @@ -566,8 +562,8 @@ RESULT eServiceDVD::seekTo(pts_t to) cur = info.pos_hours * 3600; cur += info.pos_minutes * 60; cur += info.pos_seconds; - eDebug("seekTo %lld, cur %d, diff %lld", to, cur, cur - to); - ddvd_skip_seconds(m_ddvdconfig, cur - to); + eDebug("seekTo %lld, cur %d, diff %lld", to, cur, to - cur); + ddvd_skip_seconds(m_ddvdconfig, to - cur); return 0; }