Ticket #1043: dvdmenu_nav_improvements.patch

File dvdmenu_nav_improvements.patch, 2.7 KB (added by skamithi@…, 20 years ago)

dvd button navigation improvements + minor cleanup.

  • libs/libmythtv/tv_play.cpp

     
    22822282        {
    22832283            if (prbuffer->isDVD())
    22842284            {
    2285                 if (prbuffer->DVD()->NumPartsInTitle() < 2)
     2285                if (prbuffer->InDVDMenuOrStillFrame())
     2286                    UpdateOSDSeekMessage(tr("Skipping Back Not Allowed"),
     2287                            osd_general_timeout);
     2288                else if (prbuffer->DVD()->NumPartsInTitle() < 2)
    22862289                {
    22872290                    nvp->GoToDVDProgram(0);
    2288                     UpdateOSDSeekMessage(tr("Previous Title/Chapter"),
     2291                    UpdateOSDSeekMessage(tr("Previous Title"),
    22892292                            osd_general_timeout);
    22902293                }
    22912294                else
  • libs/libmythtv/DVDRingBuffer.cpp

     
    287287                if (IsInMenu() && NumMenuButtons() > 0 &&
    288288                        !buttonSelected)
    289289                {
    290                     int32_t button;
    291290                    pci_t *pci = dvdnav_get_current_nav_pci(dvdnav);
    292                     dvdnav_get_current_highlight(dvdnav, &button);
    293 
    294                     if (button > NumMenuButtons() || button < 1)
    295                         dvdnav_button_select(dvdnav, pci,1);
    296                     else
    297                         dvdnav_button_select(dvdnav, pci, button);
     291                    uint8_t button = pci->hli.hl_gi.fosl_btnn;
     292                    if (button > 0)
     293                        dvdnav_button_select(dvdnav,pci,button);
     294                    else                                                                                                                           dvdnav_button_select(dvdnav,pci,1);
    298295                    buttonSelected = true;
    299296                    spuchanged = false;
    300297                }
     
    345342                        .arg(hl->sx).arg(hl->sy)
    346343                        .arg(hl->ex).arg(hl->ey)
    347344                        .arg(hl->pts).arg(hl->buttonN));
     345               
     346                if (DVDButtonUpdate(false))
     347                    buttonExists = DrawMenuButton(menuSpuPkt,menuBuflength);
     348               
    348349                if (blockBuf != dvdBlockWriteBuf)
    349350                {
    350351                    dvdnav_free_cache_block(dvdnav, blockBuf);
    351352                }         
    352 
    353                 if (DVDButtonUpdate(false))
    354                     buttonExists = DrawMenuButton(menuSpuPkt,menuBuflength);
    355353            }
    356354            break;
    357355            case DVDNAV_STILL_FRAME: