⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psl_process_key.cpp

📁 这是DVD中伺服部分的核心代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "PG-13") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 5:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "5") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 6:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "R") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 7:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "NC-17") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 8:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "8") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 0:
                case 15:
                default:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "Off") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                }
            }
            else
            {
                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[1], "Kids") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[2], "2") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[3], "3") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[4], "4") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[5], "5") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[6], "6") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[7], "7") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3].pSubButton[8], "Adults") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                /* Get parental level setting and set button text */
                ulSetting = PslDataGetParentalLevel(pPSL);

                switch (ulSetting)
                {
                case 1:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "Kids") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 2:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "2") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 3:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "3") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 4:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "4") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 5:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "5") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 6:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "6") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 7:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "7") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 8:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "Adults") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                case 0:
                case 15:
                default:
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pTab[3].pSubButton[3], "Off") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                    break;
                }
            }
        }

        /* redraw the menu */
        if (PslScreenLayoutDrawSetupMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw setup menu!\n"));
            return (PSL_FAILURE);
        }
    }
    else if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_EXIT)
    {   
        /* clear the setup menu */
        if (PslScreenLayoutClearSetupMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to clear setup menu!\n"));
            return (PSL_FAILURE);
        }
    }
    else if (pPSL->pSetupMenu->pActiveButton->tButtonType == PSL_BUTTON_PWD)
    {   
        if ( (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_LOCKED) ||
             (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_CONFIRM) )
        {
            ULONG ulTmp;

            if (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_LOCKED)
            {
                /* get parental password configuration setting */
                ulTmp = PslDataGetParentalPassword(pPSL);
            }
            else
            {   
                ulTmp = m_ulTempPassword;
            }

            if (pPSL->pSetupMenu->pActiveButton->ulInfo == ulTmp)
            {
                if (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_CONFIRM)
                {
                    /* set parental password configuration setting */
                    PslDataSetParentalPassword(pPSL, pPSL->pSetupMenu->pActiveButton->ulInfo);
                }

                /* clear any numbers that were entered */
                pPSL->pSetupMenu->pActiveButton->ulInfo = 0;

                /* reset password string */
                if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " _  _  _  _ ") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                /* change parental menu mapping so all buttons can be navigated */
                pPSL->pSetupMenu->pActiveButton->pBelowButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[3];
                pPSL->pSetupMenu->pActiveTab->pSubButton[6].pAboveButton = &pPSL->pSetupMenu->pActiveTab->pSubButton[5];

                /* change the password mode to allow user to reset the password */
                pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_RESET;

                /* redraw password label */
                if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Reset Password") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

                /* redraw the password label button */
                if (PslScreenLayoutDrawButton(&pPSL->pSetupMenu->pActiveTab->pSubButton[0]) != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
                    return (PSL_FAILURE);
                }

                /* navigate down a button */
                if (pPSL->pSetupMenu->pActiveButton->pBelowButton != NULL)
                {
                    /* unselect the currently active button */
                    pPSL->pSetupMenu->pActiveButton->fSelected = FALSE;

                    /* redraw the button */
                    if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
                        return (PSL_FAILURE);
                    }

                    /* change the active button and select it */
                    pPSL->pSetupMenu->pActiveButton = pPSL->pSetupMenu->pActiveButton->pBelowButton;
                    pPSL->pSetupMenu->pActiveButton->fSelected = TRUE;

                    /* redraw the button */
                    if (PslScreenLayoutDrawButton(pPSL->pSetupMenu->pActiveButton) != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
                        return (PSL_FAILURE);
                    }
                }
            }
            else
            {
                /* Check if parental password is set.  If it is not, allow user to set it */
                if (PslDataGetParentalPassword(pPSL) == 0xffffffff)
                {
                    pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_CREATE;
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Create Password") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                }
                else if (pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo == PSL_PWD_CONFIRM)
                {
                    pPSL->pSetupMenu->pActiveTab->pSubButton[0].ulInfo = PSL_PWD_RESET;
                    if (PslScreenLayoutSetButtonText(&pPSL->pSetupMenu->pActiveTab->pSubButton[0], "Reset Password") != PSL_SUCCESS)
                    {
                        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                        return (PSL_FAILURE);
                    }
                }

                /* redraw the password label button */
                if (PslScreenLayoutDrawButton(&pPSL->pSetupMenu->pActiveTab->pSubButton[0]) != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to draw button!\n"));
                    return (PSL_FAILURE);
                }

                /* clear any numbers that were entered */
                pPSL->pSetupMenu->pActiveButton->ulInfo = 0;

                /* reset password string */
                if (PslScreenLayoutSetButtonText(pPSL->pSetupMenu->pActiveButton, " _  _  _  _ ") != PSL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeySetupMenuSelect: Failed to set button text\n"));
                    return (PSL_FAILURE);
                }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -