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

📄 psl_process_key.cpp

📁 这是DVD中伺服部分的核心代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeHour / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeHour % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][1], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][1]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_MIN)
    {
        /* Increment the minute number */
        if (pPSL->pStatusMenu->StatusInfo.usTimeMin >= 99)
        {
            pPSL->pStatusMenu->StatusInfo.usTimeMin = 0;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTimeMin++;
        }

        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeMin / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeMin % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][3], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][3]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_SEC)
    {
        /* Increment the second number */
        if (pPSL->pStatusMenu->StatusInfo.usTimeSec >= 99)
        {
            pPSL->pStatusMenu->StatusInfo.usTimeSec = 0;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTimeSec++;
        }

        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeSec / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeSec % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][5], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][5]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuUp: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessKeyStatusMenuDown -- Process the down command for status menu
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS  PslProcessKeyStatusMenuDown(PSL_HANDLE *pPSL)
{
    char cTmp[5];

    /* Check for a valid psl handle */
    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: NULL pointer!\n"));
        return (PSL_NULL_POINTER);
    }
    
    /* check for valid status menu data */
    if (pPSL->pStatusMenu == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: status menu not created!\n"));
        return (PSL_FAILURE);
    }
    
    /* Process the down command for any search modes */
    if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TITLE)
    {
        /* Decrement the title number */
        if (pPSL->pStatusMenu->StatusInfo.usTitle == 0)
        {
            pPSL->pStatusMenu->StatusInfo.usTitle = 99;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTitle--;
        }

        /* convert title number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTitle / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTitle % 10);
        cTmp[2] = '\0';
        
        /* set title setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[4][1], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the title number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[4][1]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_CHAPTER)
    {
        /* Decrement the chapter number */
        if (pPSL->pStatusMenu->StatusInfo.usChapter == 0)
        {
            pPSL->pStatusMenu->StatusInfo.usChapter = 99;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usChapter--;
        }

        /* convert chapter number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usChapter / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usChapter % 10);
        cTmp[2] = '\0';
        
        /* set chapter setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[5][1], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the chapter number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[5][1]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_HOUR)
    {
        /* Decrement the hour time number */
        if (pPSL->pStatusMenu->StatusInfo.usTimeHour == 0)
        {
            pPSL->pStatusMenu->StatusInfo.usTimeHour = 99;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTimeHour--;
        }

        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeHour / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeHour % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][1], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][1]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_MIN)
    {
        /* Decrement the minute number */
        if (pPSL->pStatusMenu->StatusInfo.usTimeMin == 0)
        {
            pPSL->pStatusMenu->StatusInfo.usTimeMin = 99;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTimeMin--;
        }

        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeMin / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeMin % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][3], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][3]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }
    else if (pPSL->pStatusMenu->tCurrentMode == PSL_STATUS_MODE_SEARCH_TIME_SEC)
    {
        /* Decrement the second number */
        if (pPSL->pStatusMenu->StatusInfo.usTimeSec == 0)
        {
            pPSL->pStatusMenu->StatusInfo.usTimeSec = 99;
        }
        else
        {
            pPSL->pStatusMenu->StatusInfo.usTimeSec--;
        }

        /* convert time number to string */
        cTmp[0] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeSec / 10);
        cTmp[1] = '0' + (pPSL->pStatusMenu->StatusInfo.usTimeSec % 10);
        cTmp[2] = '\0';
        
        /* set time setting text */
        if (PslScreenLayoutSetButtonText(&pPSL->pStatusMenu->pButton[6][5], cTmp) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure setting button text!\n"));
            return (PSL_FAILURE);
        }

        /* redraw the button with the time number */
        if (PslScreenLayoutDrawButton(&pPSL->pStatusMenu->pButton[6][5]) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessKeyStatusMenuDown: failure drawing button!\n"));
            return (PSL_FAILURE);
        }

        /* copy draw buffer to display buffer */
        DealCMBufferCopy(pPSL->pStatusMenu->hDeal, DEAL_BUFFER_DRAW, DEAL_BUFFER_DISPLAY);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessKeyStatusMenuLeft -- Process the left command for status menu
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *
 * @retval
 *    PSL_SUCCESS if 

⌨️ 快捷键说明

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