亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? psl_process_status.cpp

?? 這是DVD中伺服部分的核心代碼
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*****************************************************************************
******************************************************************************
**                                                                          **
**  Copyright (c) 2002 Videon Central, Inc.                                 **
**  All rights reserved.                                                    **
**                                                                          **
**  The computer program contained herein contains proprietary information  **
**  which is the property of Videon Central, Inc.  The program may be used  **
**  and/or copied only with the written permission of Videon Central, Inc.  **
**  or in accordance with the terms and conditions stipulated in the        **
**  agreement/contract under which the programs have been supplied.         **
**                                                                          **
******************************************************************************
*****************************************************************************/
/**
 * @file psl_process_status.cpp
 *
 * $Revision: 1.7 $ 
 *
 * Process Status Module of the PSL.
 * 
 */

#include "vdvd_types.h"
#include "psl_process_status.h"
#include "psl_interface.h"
#include "psl_screen_layout.h"
#include "psl_external_interface.h"
#include "psl_bitmap_bank.h"
#include "psl_general.h"
#include "psl_types.h"
#include "deal_control.h"
#include "deal_general.h"
#include "dbgprint.h"
#include <string.h>

/* Debug macros */
#define DBG_PSL_STATUS  DBG_ERROR
#define DBG_ON(x)       (DBG_PSL_STATUS >= x)

/**
 * Local variables
 */
static BOOLEAN m_fNoResume = FALSE;

/**
 * PslProcessStatusProhibited -- Process the prohibited 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 PslProcessStatusProhibited(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 3000;

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

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

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

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

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

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

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusPause -- Process the pause 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 PslProcessStatusPause(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

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

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

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

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

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

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

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

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusPlay -- Process the play 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 PslProcessStatusPlay(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

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

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

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

    /* If generic osd is active, clear it */
    if (PslScreenLayoutIsGenericActive(pPSL) == TRUE)
    {
        if (PslScreenLayoutClearGeneric(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusPlay: failed to clear generic osd!\n"));
            return (PSL_FAILURE);
        }
    }

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

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

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

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

    /* Unset flag */
    m_fNoResume = FALSE;

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusStop -- Process the stop 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 PslProcessStatusStop(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    ULONG ulTimeout = 0;

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

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

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

    /* 
     * 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), ("PslProcessStatusStop: Failure clearing setup menu!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If time display is active, draw the stop icon */
    if ( (PslScreenLayoutIsStatusDisplayActive(pPSL) == TRUE) ||
         (PslScreenLayoutIsCDDAActive(pPSL) == TRUE) ) 
    {
        /* Get the stop icon */
        pPSL->pIconData->pActiveIcon = PslBitmapGetStopIcon();
        if (pPSL->pIconData->pActiveIcon == NULL)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusStop: failed to get icon!\n"));
            return (PSL_FAILURE);
        }

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

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

    /* If we are in hold mode and not full stop, then draw stop message */
    if (PslExternalGetNavStatus() == (ULONG)PSL_STATUS_STOP)
    {
        /* Set the osd timer */
        if (OS_TimerSetMsec(pPSL->Timer, ulTimeout) != OS_OK)
        {
            DbgPrint(("PslProcessStatusStop: Timer set FAILED\n"));
            return (PSL_FAILURE);
        }

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

    return (PSL_SUCCESS);
}

/**
 * PslProcessStatusFullStop -- Process the fullstop 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 PslProcessStatusFullStop(PSL_HANDLE *pPSL, ULONG ulData1, ULONG ulData2, PVOID pvBuffer, ULONG ulBufferSize)
{
    DBGPRINT(DBG_ON(DBG_TRACE), ("PslProcessStatusFullStop: ENTER\n"));

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

    /* If generic osd is active, clear it */
    if ( (PslScreenLayoutIsGenericActive(pPSL) == TRUE) && (m_fNoResume == FALSE) )
    {
        if (PslScreenLayoutClearGeneric(pPSL) != PSL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslProcessStatusFullStop: failed to clear generic osd!\n"));
            return (PSL_FAILURE);
        }
    }

    /* 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), ("PslProcessStatusFullStop: Failure clearing setup menu!\n"));
            return (PSL_FAILURE);
        } 
    }

    /* If status menu is active, then clear it */
    if (PslScreenLayoutIsStatusMenuActive(pPSL) == TRUE)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美电影院| 26uuu成人网一区二区三区| 国产精品视频免费看| 国产一区二区0| 亚洲一区二区中文在线| 亚洲欧美电影一区二区| 国产女主播一区| 亚洲婷婷在线视频| 亚洲精品亚洲人成人网在线播放| 国产亚洲精品超碰| **欧美大码日韩| 国产精品久久久久久一区二区三区 | 国产欧美综合在线观看第十页| 日韩一区二区电影在线| 精品国产三级电影在线观看| 国产精品视频在线看| 亚洲午夜在线视频| 久久99久久精品| 成人午夜av电影| 日本精品一级二级| 日韩精品一区二区三区在线 | 欧美怡红院视频| 樱桃视频在线观看一区| 欧美一区二区三区电影| 精品福利一区二区三区| 99久久99久久免费精品蜜臀| 在线看日本不卡| 日韩亚洲欧美在线观看| 国产白丝精品91爽爽久久| 一区二区三区在线视频免费| 在线91免费看| 成人妖精视频yjsp地址| 亚洲国产一区二区在线播放| 亚洲精品在线网站| 91激情在线视频| 久久99国产精品久久99| 中国色在线观看另类| 亚洲国产日韩在线一区模特| 国产福利一区二区| 欧美日韩国产美女| 国产欧美精品在线观看| 欧美a级理论片| 在线看日韩精品电影| 国产精品久久久久9999吃药| 国产一区91精品张津瑜| 精品粉嫩超白一线天av| 亚洲成人免费观看| 91看片淫黄大片一级在线观看| 69p69国产精品| 日本一区中文字幕| 91精品麻豆日日躁夜夜躁| 亚洲高清免费视频| 欧美性xxxxxx少妇| 一区二区三区 在线观看视频| 91视频在线观看免费| 亚洲欧美色一区| 欧美性猛片xxxx免费看久爱| 洋洋成人永久网站入口| 欧美日韩三级一区二区| 日韩精品一区第一页| 国产成人99久久亚洲综合精品| 国产精品二区一区二区aⅴ污介绍| 亚洲卡通欧美制服中文| 亚洲高清三级视频| 成人污污视频在线观看| 亚洲愉拍自拍另类高清精品| 首页亚洲欧美制服丝腿| 国产欧美日韩精品在线| 国产福利精品导航| 久久99日本精品| 日韩va欧美va亚洲va久久| 亚洲一区二区影院| 亚洲色图清纯唯美| 中文字幕一区免费在线观看| 久久蜜臀精品av| 欧美大尺度电影在线| 欧美一区二区黄色| 7777精品伊人久久久大香线蕉| 久久精品一区二区| 91麻豆高清视频| 久久国产生活片100| 亚洲狼人国产精品| 国产午夜精品福利| 久久久久久久一区| 91亚洲资源网| 久久精品999| 日韩一区日韩二区| 日韩精品一区二区三区四区视频 | 91精品国产综合久久精品图片 | 久久日韩粉嫩一区二区三区| 91美女片黄在线观看91美女| 懂色av中文一区二区三区| 日韩黄色片在线观看| 亚洲女爱视频在线| 国产精品毛片高清在线完整版| 欧美一级二级在线观看| 在线观看视频一区二区欧美日韩| 国产精品一区专区| 美女www一区二区| 亚洲午夜电影网| 奇米影视一区二区三区小说| 亚洲狼人国产精品| 欧美美女bb生活片| 国产成人综合亚洲91猫咪| 亚洲欧洲另类国产综合| 欧美激情一区二区三区全黄| 久久亚洲影视婷婷| 免费在线欧美视频| 久久久久一区二区三区四区| 欧美精品tushy高清| 99精品久久只有精品| 欧美亚洲另类激情小说| 欧美一级黄色大片| 欧美精彩视频一区二区三区| 一级日本不卡的影视| 久久国产三级精品| 99久久99久久精品免费看蜜桃| 欧美三级日韩三级国产三级| 精品国产免费人成在线观看| 色播五月激情综合网| 6080yy午夜一二三区久久| 精品盗摄一区二区三区| 中文字幕av一区二区三区高 | 国内精品久久久久影院薰衣草| 免费高清不卡av| 国产高清久久久| 这里是久久伊人| 国产精品超碰97尤物18| 日韩成人免费电影| 91伊人久久大香线蕉| 欧美一二三四区在线| 一区二区三区在线观看国产| 国产又黄又大久久| 在线观看91av| 中文字幕中文字幕在线一区 | 亚洲激情成人在线| 国产一区二区电影| 欧美日韩1234| 亚洲国产精品自拍| 久久99国产精品久久99 | 91麻豆精品秘密| 亚洲欧美日本在线| 奇米综合一区二区三区精品视频| 99久久777色| 自拍偷拍国产精品| 欧美日韩一区二区不卡| 欧美精品一卡两卡| 精品欧美久久久| 天堂va蜜桃一区二区三区漫画版| 国产精品久99| 亚洲色图欧洲色图婷婷| 五月天网站亚洲| 国产东北露脸精品视频| 日韩一区二区在线观看视频| 午夜久久久久久久久| 欧美激情一区不卡| 久久99热这里只有精品| 5566中文字幕一区二区电影| 亚洲激情一二三区| 91影视在线播放| 国产精品精品国产色婷婷| 国产麻豆视频一区二区| 欧美日韩一区二区欧美激情| 久久99国产精品免费| 久久久久国色av免费看影院| 国产成人在线视频网站| 中文字幕一区二区三区四区| 色女孩综合影院| 亚洲国产精品一区二区www| 在线播放日韩导航| 国产sm精品调教视频网站| 亚洲视频一区二区免费在线观看| 欧美狂野另类xxxxoooo| 国产a级毛片一区| 亚洲自拍偷拍九九九| 国产欧美一区二区精品久导航 | 婷婷夜色潮精品综合在线| 欧美二区乱c少妇| 国产精品一区二区在线观看网站 | 欧美午夜一区二区三区免费大片| 午夜精品久久久久久久久| www国产精品av| 欧美午夜宅男影院| 成人激情电影免费在线观看| 午夜视频一区在线观看| 在线成人免费视频| 国产白丝精品91爽爽久久| 男女性色大片免费观看一区二区| 中文字幕免费观看一区| 精品成人a区在线观看| av在线播放一区二区三区| 国精产品一区一区三区mba桃花 | 麻豆成人91精品二区三区| 国产69精品久久777的优势| 日韩视频免费观看高清完整版| 国产精品自拍毛片| 国产网站一区二区| 91欧美一区二区| 蜜臀91精品一区二区三区| 国产欧美精品一区aⅴ影院|