Ticket #3711: mythvideo-bookmark.patch
File mythvideo-bookmark.patch, 3.6 KB (added by , 17 years ago) |
---|
-
programs/mythfrontend/main.cpp
old new int internal_play_media(const QString &m 585 585 586 586 pginfo->title = title; 587 587 588 long long pos = 0; 589 588 590 if (pginfo->pathname.startsWith("dvd:")) 589 591 { 590 592 bool allowdvdbookmark = gContext->GetNumSetting("EnableDVDBookmark", 0); 591 593 pginfo->setIgnoreBookmark(!allowdvdbookmark); 592 if (allowdvdbookmark && 593 gContext->GetNumSetting("DVDBookmarkPrompt", 0)) 594 if (allowdvdbookmark && gContext->GetNumSetting("DVDBookmarkPrompt", 0)) 594 595 { 595 596 RingBuffer *tmprbuf = new RingBuffer(pginfo->pathname, false); 597 598 if (!tmprbuf) 599 { 600 delete pginfo; 601 return res; 602 } 603 596 604 QString name; 597 605 QString serialid; 598 if (tmprbuf->isDVD() && 599 tmprbuf->DVD()->GetNameAndSerialNum(name, serialid)) 606 if (tmprbuf->isDVD() && tmprbuf->DVD()->GetNameAndSerialNum(name, serialid)) 600 607 { 601 608 QStringList fields = pginfo->GetDVDBookmark(serialid, false); 602 609 if (!fields.empty()) 603 610 { 604 611 QStringList::Iterator it = fields.begin(); 605 long long pos = (long long)(atoi((*++it).ascii()) & 0xffffffffLL); 606 if (pos > 0) 607 { 608 QString msg = QString("DVD contains a bookmark"); 609 QString button1msg = QString("Play from bookmark"); 610 QString button2msg = QString("Play from beginning"); 611 612 int ret = MythPopupBox::show2ButtonPopup(gContext->GetMainWindow(), 613 "", msg, 614 button1msg, 615 button2msg, 616 1); 617 if (ret == 1) 618 pginfo->setIgnoreBookmark(true); 619 else if (ret == -1) 620 { 621 delete tmprbuf; 622 delete pginfo; 623 return res; 624 } 625 } 612 pos = (long long)(atoi((*++it).ascii()) & 0xffffffffLL); 626 613 } 627 614 } 628 615 delete tmprbuf; 629 616 } 630 617 } 618 else 619 { 620 bool allowdvdbookmark = gContext->GetNumSetting("EnableDVDBookmark", 0); 621 pginfo->setIgnoreBookmark(!allowdvdbookmark); 622 if (allowdvdbookmark && gContext->GetNumSetting("DVDBookmarkPrompt", 0)) 623 pos = pginfo->GetBookmark(); 624 } 625 626 if (pos > 0) 627 { 628 QString msg; 629 QString button1msg = QString("Play from bookmark"); 630 QString button2msg = QString("Play from beginning"); 631 632 if (pginfo->pathname.startsWith("dvd:")) 633 msg = QString("DVD contains a bookmark"); 634 else 635 msg = QString("Video contains a bookmark"); 636 637 int ret = MythPopupBox::show2ButtonPopup(gContext->GetMainWindow(), 638 "", msg, button1msg, button2msg, 1); 639 if (ret == 1) 640 pginfo->setIgnoreBookmark(true); 641 else if (ret == -1) 642 { 643 delete pginfo; 644 return res; 645 } 646 } 631 647 632 648 TV::StartTV(pginfo); 633 649