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

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

?? psl_screen_layout.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_screen_layout.cpp
 *
 * $Revision: 1.14 $ 
 *
 * Screen Layout Module of the PSL.
 * 
 */

#include <string.h>
#include "vdvd_types.h"
#include "psl_screen_layout.h"
#include "psl_interface.h"
#include "psl_types.h"
#include "psl_data_bank.h"
#include "psl_external_interface.h"
#include "psl_bitmap_bank.h"
#include "psl_fonts.h"
#include "deal_general.h"
#include "deal_control.h"
#include "deal_draw.h"
#include "osapi.h"
#include "dbgprint.h"
#ifdef DMALLOC
#include "dmalloc.h"
#endif

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

/* ARGB colors */
#define ARGB_COLOR_CLEAR    0x00000000
#define ARGB_COLOR_WHITE    0xFFFFFFFF
#define ARGB_COLOR_LT_GRAY  0xFFD0D0D0
#define ARGB_COLOR_GRAY     0xFFA0A0A0
#define ARGB_COLOR_GRAY_T   0x60A0A0A0
#define ARGB_COLOR_DK_GRAY  0xFF707070
#define ARGB_COLOR_BLACK    0xFF000000
#define ARGB_COLOR_BLACK_T  0x80000000
#define ARGB_COLOR_YELLOW   0xFFFFFF00
#define ARGB_COLOR_GOLD     0xFFFFCC33
#define ARGB_COLOR_BLUE     0xFFA0D0FF
#define ARGB_COLOR_DK_BLUE  0xFF000080
#define ARGB_COLOR_CYAN     0xFF00FFFF
#define ARGB_COLOR_BROWN    0xFF800000
#define ARGB_COLOR_RED      0xFFFF0000
#define ARGB_COLOR_MAGENTA  0xFFFF00FF
#define ARGB_COLOR_GREEN    0xFF00FF00

/* Button drawing information */
typedef struct tagPSL_BUTTON_DRAW_INFO
{
    ULONG               ulWidth;
    ULONG               ulHeight;
    ULONG               ulColorU;
    ULONG               ulColorS;
    ULONG               ulTextColorU;
    ULONG               ulTextColorS;
    ULONG               ulBorderWidth;
    ULONG               ulBorderColor;
    char                cText[50];
    DEAL_HANDLE         *pDeal;
} PSL_BUTTON_DRAW_INFO;

/**
 * Local functions.
 */
static PSL_STATUS   InitializeSetupMenu(PSL_SETUP_MENU *pSetupMenu);
static void         UninitializeSetupMenu(PSL_SETUP_MENU *pSetupMenu);
static PSL_STATUS   InitializeStatusDisplay(PSL_STATUS_DISPLAY *pDisplay);
static void         UninitializeStatusDisplay(PSL_STATUS_DISPLAY *pDisplay);
static PSL_STATUS   InitializeIconData(PSL_ICON_DATA *pIconData);
static void         UninitializeIconData(PSL_ICON_DATA *pIconData);
static PSL_STATUS   InitializeStatusMenu(PSL_STATUS_MENU *pStatusMenu);
static void         UninitializeStatusMenu(PSL_STATUS_MENU *pStatusMenu);
static PSL_STATUS   InitializeParentalControl(PSL_HANDLE *pPSL);
static void         UninitializeParentalControl(PSL_HANDLE *pPSL);
static PSL_STATUS   InitializeCDDAGui(PSL_STATUS_DISPLAY *pCddaGui);
static void         UninitializeCDDAGui(PSL_STATUS_DISPLAY *pCddaGui);
static void         StatusDisplayTimerCallback(PVOID pvParam);
static void         IconTimerCallback(PVOID pvParam);
static void         StatusMenuTimerCallback(PVOID pvParam);
static void         GenericTimerCallback(PVOID pvParam);

/**
 * PslScreenLayoutInitialize -- Create all menus and define the layout of each menu.
 *
 * @param
 *      pPSL    - handle to internal PSL data
 *
 * @retval
 *    PSL_SUCCESS if successful
 *    PSL_FAILURE if not successful
 */
PSL_STATUS  PslScreenLayoutInitialize(PSL_HANDLE *pPSL)
{
    /* Check for a valid psl handle */
    if (pPSL == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: NULL handle!\n"));
        return (PSL_FAILURE);
    }

    /* Create DEAL for generic osd */
    pPSL->hDeal = DealCMCreate();
    if (pPSL->hDeal == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: failed to create deal!\n"));
        goto errout;
    }
    else
    {
        DEAL_SURFACE_SETTINGS surface_settings;

        /* Set the surface settings */
        surface_settings.usPlaneOrder = 1;
        surface_settings.ulX          = 0;
        surface_settings.ulY          = 0;
        surface_settings.ulWidth      = 720;
        surface_settings.ulHeight     = 576;
        surface_settings.ulColorKey   = 12;

        /* Initialize DEAL */
        if (DealCMInitialize(pPSL->hDeal, surface_settings, DEAL_PIXEL_FORMAT_PALETTE4) != DEAL_SUCCESS)
        {
            DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: failed to initialize deal!\n"));
            goto errout;
        }
        else
        {
            DEAL_PALETTE palette;
            palette.aPalette = NULL;

            /* Set the color palette */
            palette.ulLength = 16;
            palette.aPalette = (ULONG *)OS_MemAlloc(sizeof(ULONG) * palette.ulLength);
            if (palette.aPalette == NULL)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("%s: %u -- OS_MemAlloc Failed!\n", __FILE__, __LINE__));
                goto errout;
            }
            palette.aPalette[0]  = ARGB_COLOR_BLACK_T;
            palette.aPalette[1]  = ARGB_COLOR_GOLD;
            palette.aPalette[2]  = ARGB_COLOR_BLUE;
            palette.aPalette[3]  = ARGB_COLOR_BLACK;
            palette.aPalette[4]  = ARGB_COLOR_CYAN;
            palette.aPalette[5]  = ARGB_COLOR_WHITE;
            palette.aPalette[6]  = ARGB_COLOR_BLACK;
            palette.aPalette[7]  = ARGB_COLOR_YELLOW;
            palette.aPalette[8]  = ARGB_COLOR_YELLOW;
            palette.aPalette[9]  = ARGB_COLOR_BROWN;
            palette.aPalette[10] = ARGB_COLOR_RED;
            palette.aPalette[11] = ARGB_COLOR_MAGENTA;
            palette.aPalette[12] = ARGB_COLOR_CLEAR;
            palette.aPalette[13] = ARGB_COLOR_GREEN;
            palette.aPalette[14] = ARGB_COLOR_DK_GRAY;
            palette.aPalette[15] = ARGB_COLOR_GRAY;

            /* Load the color palette */
            if (DealCMSetPalette(pPSL->hDeal, palette) != DEAL_SUCCESS)
            {
                DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: failed to load color palette!\n"));
                OS_MemFree(palette.aPalette);
                goto errout;
            }
            else
            {
                /* Clean the buffer */
                if (DealCMBufferClean(pPSL->hDeal, DEAL_BUFFER_BOTH) != DEAL_SUCCESS)
                {
                    DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: failed to clean buffer!\n"));
                    OS_MemFree(palette.aPalette);
                    goto errout;
                }
            }
            OS_MemFree(palette.aPalette);
        }
    }

    /* create timer for generic osd */
    if (OS_TimerCreateParam(&pPSL->Timer, (OS_FUNCPTR_PARAM)GenericTimerCallback, NULL) != OS_OK)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure creating timer!\n"));
        goto errout;
    }

    /* Allocate the setup menu */
    pPSL->pSetupMenu = (PSL_SETUP_MENU *)OS_MemAlloc(sizeof(PSL_SETUP_MENU) );
    if (pPSL->pSetupMenu == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating setup menu!\n"));
        goto errout;
    }
    
    /* Initialize the setup menu */
    if (InitializeSetupMenu(pPSL->pSetupMenu) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing setup menu!\n"));
        goto errout;
    }

    /* Allocate the status display */
    pPSL->pStatusDisplay = (PSL_STATUS_DISPLAY *)OS_MemAlloc(sizeof(PSL_STATUS_DISPLAY) );
    if (pPSL->pStatusDisplay == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating status display!\n"));
        goto errout;
    }
    
    /* Initialize the status display */
    if (InitializeStatusDisplay(pPSL->pStatusDisplay) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing status display!\n"));
        goto errout;
    }

    /* Allocate the icon data */
    pPSL->pIconData = (PSL_ICON_DATA *)OS_MemAlloc(sizeof(PSL_ICON_DATA) );
    if (pPSL->pIconData == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating icon data!\n"));
        goto errout;
    }
    
    /* Initialize the icon data */
    if (InitializeIconData(pPSL->pIconData) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing icon data!\n"));
        goto errout;
    }

    /* Allocate the status menu */
    pPSL->pStatusMenu = (PSL_STATUS_MENU *)OS_MemAlloc(sizeof(PSL_STATUS_MENU) );
    if (pPSL->pStatusMenu == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating status menu!\n"));
        goto errout;
    }
    
    /* Initialize the status menu data */
    if (InitializeStatusMenu(pPSL->pStatusMenu) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing status menu data!\n"));
        goto errout;
    }

    /* Allocate the parental control */
    pPSL->pParentalControl = (PSL_PARENTAL_CONTROL *)OS_MemAlloc(sizeof(PSL_PARENTAL_CONTROL) );
    if (pPSL->pParentalControl == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating parental control!\n"));
        goto errout;
    }
    
    /* Initialize the parental control data */
    if (InitializeParentalControl(pPSL) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing parental control data!\n"));
        goto errout;
    }

    /* Allocate the cdda gui */
    pPSL->pCddaGui = (PSL_STATUS_DISPLAY *)OS_MemAlloc(sizeof(PSL_STATUS_DISPLAY) );
    if (pPSL->pCddaGui == NULL)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure allocating cdda gui!\n"));
        goto errout;
    }
    
    /* Initialize the cdd gui */
    if (InitializeCDDAGui(pPSL->pCddaGui) != PSL_SUCCESS)
    {
        DBGPRINT(DBG_ON(DBG_ERROR), ("PslScreenLayoutInitialize: Failure initializing cdda gui!\n"));
        goto errout;
    }

    return (PSL_SUCCESS);

errout:

    /* delete cdda gui */
    if (pPSL->pCddaGui != NULL)
    {
        /* uninitialize the cdda gui */
        UninitializeCDDAGui(pPSL->pCddaGui);

        /* de-allocate cdda gui */
        OS_MemFree(pPSL->pCddaGui);
        pPSL->pCddaGui = NULL;
    }

    /* delete parental control */
    if (pPSL->pParentalControl != NULL)
    {
        /* uninitialize the parental control */
        UninitializeParentalControl(pPSL);

        /* de-allocate parental control */
        OS_MemFree(pPSL->pParentalControl);
        pPSL->pParentalControl = NULL;
    }

    /* delete status menu */
    if (pPSL->pStatusMenu != NULL)
    {
        /* uninitialize the status menu */
        UninitializeStatusMenu(pPSL->pStatusMenu);

        /* de-allocate status menu */
        OS_MemFree(pPSL->pStatusMenu);
        pPSL->pStatusMenu = NULL;
    }

    /* delete icon data */
    if (pPSL->pIconData != NULL)
    {
        /* uninitialize the icon data */
        UninitializeIconData(pPSL->pIconData);

        /* de-allocate icon data */
        OS_MemFree(pPSL->pIconData);
        pPSL->pIconData = NULL;
    }

    /* delete status display */
    if (pPSL->pSetupMenu != NULL)
    {
        /* uninitialize the status display */
        UninitializeStatusDisplay(pPSL->pStatusDisplay);

        /* de-allocate status display */
        OS_MemFree(pPSL->pStatusDisplay);
        pPSL->pStatusDisplay = NULL;
    }

    /* delete setup menu */
    if (pPSL->pSetupMenu != NULL)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频mp4| 欧美成人aa大片| 91精品国产91久久综合桃花| 日韩免费高清av| 一区二区三区四区不卡在线| 美美哒免费高清在线观看视频一区二区 | 日韩美女在线视频| 亚洲欧洲av在线| 加勒比av一区二区| 欧美日韩一二三| 国产精品区一区二区三| 美女视频一区在线观看| 一本大道av一区二区在线播放| 精品国产乱码91久久久久久网站| 亚洲一区二区三区国产| 丁香亚洲综合激情啪啪综合| 日韩一区二区电影| 亚洲一区二区精品视频| 成人深夜福利app| 日韩欧美精品在线视频| 亚洲成人综合网站| 99久久777色| 国产精品色噜噜| 国模冰冰炮一区二区| 91精品国产一区二区三区蜜臀 | 精品国产亚洲在线| 琪琪一区二区三区| 欧美丰满嫩嫩电影| 亚洲一区成人在线| 欧美专区亚洲专区| 一区二区三区日韩欧美| 在线观看av一区| 一区二区三区四区视频精品免费 | 精品一区二区影视| 91精品国产欧美一区二区18 | 欧美色图免费看| 一区二区三区蜜桃| 欧美综合视频在线观看| 亚洲超丰满肉感bbw| 欧美日韩一区二区电影| 亚洲成人免费av| 欧美精品黑人性xxxx| 日本欧美肥老太交大片| 精品久久久久久久久久久久久久久久久 | 久草精品在线观看| 精品国产免费人成在线观看| 激情伊人五月天久久综合| 国产丝袜美腿一区二区三区| 99久久久无码国产精品| 亚洲色图在线看| 欧美性高清videossexo| 日韩电影网1区2区| 久久精品免视看| 日本久久一区二区| 日本不卡不码高清免费观看| 久久美女艺术照精彩视频福利播放| 国产成人在线视频网站| 亚洲私人影院在线观看| 欧美人与禽zozo性伦| 国内精品久久久久影院薰衣草| 国产精品乱子久久久久| 欧美日韩国产乱码电影| 久久精品二区亚洲w码| 日本一区二区成人在线| 国产精品三级视频| 欧美亚洲综合在线| 国产精品一区在线观看乱码 | 久久一二三国产| 91免费视频网址| 蜜桃av噜噜一区| 日本一区二区三区久久久久久久久不| 99热这里都是精品| 午夜视频一区二区| av在线这里只有精品| 色婷婷综合久久久久中文| 欧美精品一区二| 亚洲一区二区免费视频| 粉嫩一区二区三区在线看| 欧美专区在线观看一区| 亚洲四区在线观看| 国产一区二区三区四区在线观看| 欧美日韩成人一区二区| 亚洲精选视频免费看| 国产一区二区三区精品视频| 日韩三级免费观看| 久久精品99国产国产精| 日韩一区二区三| 日本va欧美va瓶| 精品国产乱码久久久久久久久| 奇米精品一区二区三区在线观看| 欧美精三区欧美精三区| 日韩中文字幕av电影| 精品人伦一区二区色婷婷| 日韩成人dvd| 亚洲欧美激情一区二区| 麻豆91精品视频| 久久99热这里只有精品| 欧美日韩高清一区| 久久er精品视频| 欧美日韩国产免费| 美女在线观看视频一区二区| 精品对白一区国产伦| 91一区二区三区在线观看| 色婷婷av一区| 色综合久久综合网欧美综合网| 精品成人免费观看| 欧美精品一卡二卡| 欧洲精品中文字幕| 色婷婷综合久久久中文字幕| 99久久综合国产精品| 大白屁股一区二区视频| 国产精品自产自拍| 国产91清纯白嫩初高中在线观看 | 欧美区视频在线观看| 欧美性猛片aaaaaaa做受| 在线免费精品视频| 欧日韩精品视频| 欧美色窝79yyyycom| 欧美日韩精品欧美日韩精品一 | 99视频在线精品| 色综合天天综合在线视频| 一本一道久久a久久精品| 色综合久久中文字幕| 色哟哟一区二区在线观看 | 国产精品丝袜黑色高跟| 欧美精品一区二区三区蜜桃视频| 精品久久久久久久久久久久久久久久久| 日韩一级片网址| 久久免费国产精品| 国产精品国产三级国产aⅴ原创 | 成人丝袜18视频在线观看| 不卡区在线中文字幕| 91网上在线视频| 欧美日本乱大交xxxxx| www激情久久| 国产精品成人免费| 亚洲综合在线五月| 久久精品国产99久久6| 成人三级在线视频| 欧美亚洲另类激情小说| 欧美一区欧美二区| 久久久99精品免费观看不卡| 亚洲视频网在线直播| 亚洲va欧美va国产va天堂影院| 免费观看成人鲁鲁鲁鲁鲁视频| 国产成人福利片| 欧美三级日韩三级国产三级| 亚洲精品一区在线观看| 亚洲人精品午夜| 日本中文一区二区三区| 懂色av中文字幕一区二区三区| 一本大道久久a久久精品综合| 日韩欧美不卡在线观看视频| 国产精品灌醉下药二区| 毛片不卡一区二区| 99re这里只有精品视频首页| 在线成人小视频| 国产精品久久三| 精品中文字幕一区二区| 欧美艳星brazzers| 久久久久久久一区| 日韩一区精品视频| 色欲综合视频天天天| 精品欧美一区二区在线观看| 亚洲欧美激情在线| 国产凹凸在线观看一区二区| 在线综合亚洲欧美在线视频| 最新国产の精品合集bt伙计| 精品无人码麻豆乱码1区2区| 精品污污网站免费看| 国产精品久久三| 狠狠色丁香婷婷综合久久片| 在线观看不卡一区| 国产精品网站在线| 国内成+人亚洲+欧美+综合在线| 在线观看日产精品| 中文字幕在线免费不卡| 国产剧情一区二区三区| 777色狠狠一区二区三区| 亚洲欧美日韩国产综合在线 | 国产一区在线不卡| 制服丝袜中文字幕一区| 亚洲综合成人在线视频| 99re热这里只有精品免费视频| 久久精品夜色噜噜亚洲aⅴ| 免费人成在线不卡| 欧美放荡的少妇| 性感美女极品91精品| 欧美性猛片xxxx免费看久爱| 亚洲男人的天堂一区二区| 成人国产一区二区三区精品| 久久久久久久久伊人| 国产精品一二三区在线| 欧美精品一区二区三区蜜桃视频| 久久精品国产免费| 欧美白人最猛性xxxxx69交| 日韩成人精品在线| 日韩一区二区不卡| 免费看黄色91| 一级日本不卡的影视|