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

📄 psl_process_user_input.cpp

📁 这是DVD中伺服部分的核心代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        if (PslScreenLayoutClearGeneric(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: failed to clear generic osd!\n"));
            return (PSL_FAILURE);
        }
    }

    /* If parental control is active, clear it */
    if (PslScreenLayoutIsParentalControlActive(pPSL) == TRUE)
    {
        if (PslScreenLayoutClearParentalControl(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: failed to clear parental control!\n"));
            return (PSL_FAILURE);
        }
    }

    /* If setup menu is active, clear it */
    if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
    {
        /* clear setup menu */ 
        if (PslScreenLayoutClearSetupMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: Failure clearing setup menu!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If status display is active, clear it */
    if (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE)
    {
        /* clear status display */ 
        if (PslScreenLayoutClearStatusDisplay(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: Failure clearing status display!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If status menu is active, clear it */
    if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
    {
        /* clear status menu */ 
        if (PslScreenLayoutClearStatusMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: Failure clearing status menu!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If cdda gui is active, clear it */
    if (PslScreenLayoutIsCDDAActive(pPSL) == TRUE)
    {
        /* clear cdda gui */ 
        if (PslScreenLayoutClearCDDAInterface(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: Failure clearing cdda gui!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* Send command to the nav to be processed */
    if (PslExternalSendNavCommand(PSL_USER_CMD_EJECT, ulInfo) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputEject: Failure sending command to nav\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessUserInputDigit -- Process a number command
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *      ulInfo  - info param with the command
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessUserInputDigit(PSL_HANDLE *pPSL, ULONG ulInfo)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessUserInputDigit: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Invalid psl handle\n"));
        return (PSL_NULL_POINTER);
    }

    /* If standby is on, do not process the user input */
    if (PslExternalGetNavStatus() != (ULONG)PSL_STATUS_STANDBY)
    {
        /* 
         * If an OSD menu is active, send command to process key module.
         * Otherwise send it to the navigator.
         */
        if (PslScreenLayoutIsParentalControlActive(pPSL) == TRUE)
        {
            /* Send command to parental control to be processed */
            if (PslProcessKeyParentalControlDigit(pPSL, (UBYTE)(ulInfo) ) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to parental control\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
        {
            /* Send command to setup menu to be processed */
            if (PslProcessKeySetupMenuDigit(pPSL, (UBYTE)(ulInfo) ) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to setup menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusMenuDigit(pPSL, (UBYTE)(ulInfo) ) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to status menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusDisplayDigit(pPSL, (UBYTE)(ulInfo) ) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to status display\n"));
                return (PSL_FAILURE);
            }
        }
        else
        {
            /* Send command to the nav to be processed */
            if (PslExternalSendNavCommand(PSL_USER_CMD_DIGIT, ulInfo) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to nav\n"));
                return (PSL_FAILURE);
            }
        }
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessUserInputUp -- Process the up command
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *      ulInfo  - info param with the command
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessUserInputUp(PSL_HANDLE *pPSL, ULONG ulInfo)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessUserInputUp: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputUp: Invalid psl handle\n"));
        return (PSL_NULL_POINTER);
    }

    /* If standby is on, do not process the user input */
    if (PslExternalGetNavStatus() != (ULONG)PSL_STATUS_STANDBY)
    {
        /* 
         * If an OSD menu is active, send command to process key module.
         * Otherwise send it to the navigator.
         */
        if (PslScreenLayoutIsParentalControlActive(pPSL) == TRUE)
        {
            /* Send command to parental control to be processed */
            if (PslProcessKeyParentalControlUp(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to parental control\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
        {
            /* Send command to setup menu to be processed */
            if (PslProcessKeySetupMenuUp(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputUp: Failure sending command to setup menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusMenuUp(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputUp: Failure sending command to status menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusDisplayUp(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputUp: Failure sending command to status display\n"));
                return (PSL_FAILURE);
            }
        }
        else
        {
            /* Send command to the nav to be processed */
            if (PslExternalSendNavCommand(PSL_USER_CMD_UP, ulInfo) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputUp: Failure sending command to nav\n"));
                return (PSL_FAILURE);
            }
        }
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessUserInputDown -- Process the down command
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *      ulInfo  - info param with the command
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessUserInputDown(PSL_HANDLE *pPSL, ULONG ulInfo)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessUserInputDown: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDown: Invalid psl handle\n"));
        return (PSL_NULL_POINTER);
    }

    /* If standby is on, do not process the user input */
    if (PslExternalGetNavStatus() != (ULONG)PSL_STATUS_STANDBY)
    {
        /* 
         * If an OSD menu is active, send command to process key module.
         * Otherwise send it to the navigator.
         */
        if (PslScreenLayoutIsParentalControlActive(pPSL) == TRUE)
        {
            /* Send command to parental control to be processed */
            if (PslProcessKeyParentalControlDown(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to parental control\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
        {
            /* Send command to setup menu to be processed */
            if (PslProcessKeySetupMenuDown(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDown: Failure sending command to setup menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusMenuDown(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDown: Failure sending command to status menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusDisplayDown(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDown: Failure sending command to status display\n"));
                return (PSL_FAILURE);
            }
        }
        else
        {
            /* Send command to the nav to be processed */
            if (PslExternalSendNavCommand(PSL_USER_CMD_DOWN, ulInfo) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDown: Failure sending command to nav\n"));
                return (PSL_FAILURE);
            }
        }
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessUserInputLeft -- Process the left command
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *      ulInfo  - info param with the command
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessUserInputLeft(PSL_HANDLE *pPSL, ULONG ulInfo)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessUserInputLeft: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputLeft: Invalid psl handle\n"));
        return (PSL_NULL_POINTER);
    }

    /* If standby is on, do not process the user input */
    if (PslExternalGetNavStatus() != (ULONG)PSL_STATUS_STANDBY)
    {
        /* 
         * If an OSD menu is active, send command to process key module.
         * Otherwise send it to the navigator.
         */
        if (PslScreenLayoutIsParentalControlActive(pPSL) == TRUE)
        {
            /* Send command to parental control to be processed */
            if (PslProcessKeyParentalControlLeft(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputDigit: Failure sending command to parental control\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsSetupMenuActive(pPSL) == TRUE)
        {
            /* Send command to setup menu to be processed */
            if (PslProcessKeySetupMenuLeft(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputLeft: Failure sending command to setup menu\n"));
                return (PSL_FAILURE);
            }
        }
        else if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
        {
            /* Send command to status display to be processed */
            if (PslProcessKeyStatusMenuLeft(pPSL) != PSL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessUserInputLeft: Failure sending command to status menu\n"));
                return (PSL_FAILURE);
            }
        }

⌨️ 快捷键说明

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