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

📄 psl_process_status.cpp

📁 这是DVD中伺服部分的核心代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        /* clear status menu */ 
        if (PslScreenLayoutClearStatusMenu(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFullStop: Failure clearing status menu!\n"));
            return (PSL_FAILURE);
        } 
    }

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

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusNoResume -- Process the no resume status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusNoResume(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusNoResume: ENTER\n"));

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

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

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

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

    /* Set the osd timer */
    if (OS_TimerSetMsec(pPSL->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusNoResume: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw no resume message on generic osd */
    if (PslScreenLayoutDrawGeneric(pPSL, PSL_STATUS_NO_RESUME, ulData1) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusNoResume: failed to draw message!\n"));
        return (PSL_FAILURE);
    }

    /* Set flag */
    m_fNoResume = TRUE;

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusOpen -- Process the tray open status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusOpen(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 3000;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusOpen: ENTER\n"));

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

    /* check that icon data is valid */
    if (pPSL->pIconData == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusOpen: NULL handle!\n"));
        return (PSL_FAILURE);
    }

    /* Get the eject icon */
    pPSL->pIconData->pActiveIcon = PslBitmapGetEjectIcon();
    if (pPSL->pIconData->pActiveIcon == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusOpen: failed to get icon!\n"));
        return (PSL_FAILURE);
    }

    /* Set the Icon timer */
    if (OS_TimerSetMsec(pPSL->pIconData->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusOpen: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw the icon */
    if (PslScreenLayoutDrawIcon(pPSL, pPSL->pIconData->pActiveIcon) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusOpen: failed to draw icon!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusClose -- Process the tray close status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusClose(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 3000;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusClose: ENTER\n"));

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

    /* check that icon data is valid */
    if (pPSL->pIconData == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusClose: NULL handle!\n"));
        return (PSL_FAILURE);
    }

    /* Get the eject icon */
    pPSL->pIconData->pActiveIcon = PslBitmapGetEjectIcon();
    if (pPSL->pIconData->pActiveIcon == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusClose: failed to get icon!\n"));
        return (PSL_FAILURE);
    }

    /* Set the Icon timer */
    if (OS_TimerSetMsec(pPSL->pIconData->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusClose: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw the icon */
    if (PslScreenLayoutDrawIcon(pPSL, pPSL->pIconData->pActiveIcon) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusClose: failed to draw icon!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusSlowFwd -- Process the slow fwd status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusSlowFwd(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusSlowFwd: ENTER\n"));

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

    /* check that icon data is valid */
    if (pPSL->pIconData == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSlowFwd: NULL handle!\n"));
        return (PSL_FAILURE);
    }

    /* Get the slow forward icon */
    pPSL->pIconData->pActiveIcon = PslBitmapGetSlowFIcon();
    if (pPSL->pIconData->pActiveIcon == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSlowFwd: failed to get icon!\n"));
        return (PSL_FAILURE);
    }

    /* If time display is not active, icon should timeout */
    if (PslScreenLayoutIsStatusDisplayActive(pPSL) == FALSE)
    {
        ulTimeout = 3000;
    }

    /* Set the Icon timer */
    if (OS_TimerSetMsec(pPSL->pIconData->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusSlowFwd: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw the icon */
    if (PslScreenLayoutDrawIcon(pPSL, pPSL->pIconData->pActiveIcon) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSlowFwd: failed to draw icon!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusSlowRwd -- Process the slow rwd status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusSlowRwd(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusSlowRwd: stubbed\n"));
    return (PSL_FAILURE);
}

/**
 * PslProcessStatusFastFwd -- Process the fast fwd status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusFastFwd(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusFastFwd: ENTER\n"));

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

    /* check that icon data is valid */
    if (pPSL->pIconData == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFastFwd: NULL handle!\n"));
        return (PSL_FAILURE);
    }

    /* Get the fast forward icon */
    pPSL->pIconData->pActiveIcon = PslBitmapGetFFIcon();
    if (pPSL->pIconData->pActiveIcon == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFastFwd: failed to get icon!\n"));
        return (PSL_FAILURE);
    }

    /* If time display is not active, icon should timeout */
    if (PslScreenLayoutIsStatusDisplayActive(pPSL) == FALSE)
    {
        ulTimeout = 3000;
    }

    /* Set the Icon timer */
    if (OS_TimerSetMsec(pPSL->pIconData->Timer, ulTimeout) != OS_OK)
    {
        DbgPrint(("PslProcessStatusFastFwd: Timer set FAILED\n"));
        return (PSL_FAILURE);
    }

    /* Draw the icon */
    if (PslScreenLayoutDrawIcon(pPSL, pPSL->pIconData->pActiveIcon) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFastFwd: failed to draw icon!\n"));
        return (PSL_FAILURE);
    }

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusFastRwd -- Process the fast rwd status event
 *
 * @param
 *      pPSL         - handle to internal PSL data
 *      ulData1      - data parameter associated with status event
 *      ulData2      - data parameter associated with status event
 *      pvBuffer     - buffer containing data associated with status event
 *      ulBufferSize - size of buffer pointed to by pvBuffer
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS PslProcessStatusFastRwd(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusFastRwd: ENTER\n"));

    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFastRwd: NULL handle!\n"));

⌨️ 快捷键说明

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