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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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一区二区三区免费野_久草精品视频
不卡一区二区在线| 成人av网在线| 国产精品一区在线观看乱码| 成人在线综合网| 欧美亚洲综合色| 国产亚洲欧洲997久久综合| 中文字幕免费观看一区| 一区二区在线免费观看| 亚洲mv大片欧洲mv大片精品| 九九视频精品免费| 91在线观看污| 久久综合九色综合97婷婷女人| 亚洲欧洲综合另类在线| 日韩精品国产精品| 99精品在线观看视频| 日韩一区二区三区视频在线观看| 国产欧美日韩精品一区| 亚洲123区在线观看| 国产成人av在线影院| 欧美精品在线视频| 国产欧美日韩三级| 久久成人免费网站| 欧美色视频在线观看| 国产精品久久夜| 国产麻豆成人精品| 777午夜精品视频在线播放| 亚洲图片另类小说| 成人精品高清在线| 精品国产乱码久久久久久久| 亚洲成av人片在线观看| 日本精品视频一区二区三区| 国产日韩综合av| 国产精品伊人色| 欧美xxxx老人做受| 奇米精品一区二区三区在线观看一 | 成人免费看的视频| 欧美va亚洲va香蕉在线| 首页亚洲欧美制服丝腿| 色综合色综合色综合色综合色综合| 国产日韩视频一区二区三区| 黄色日韩网站视频| 538prom精品视频线放| 亚洲精品国产无天堂网2021| 555www色欧美视频| 亚洲男人的天堂av| 色美美综合视频| 亚洲人亚洲人成电影网站色| proumb性欧美在线观看| 亚洲国产高清不卡| av电影一区二区| 亚洲欧洲精品一区二区三区不卡| 国产ts人妖一区二区| 国产女主播视频一区二区| 国产一区二区0| 久久久久国产精品人| 国产福利一区二区三区视频 | 国产一区二区三区不卡在线观看| 欧美一区二区三区视频免费播放| 视频一区视频二区中文| 欧美精品日韩综合在线| 午夜免费久久看| 欧美一区三区四区| 美女尤物国产一区| 国产亚洲精品7777| 97se亚洲国产综合在线| 亚洲精品你懂的| 欧美日本韩国一区| 美美哒免费高清在线观看视频一区二区| 欧美一区二区三区影视| 韩国视频一区二区| 国产精品二区一区二区aⅴ污介绍| 99热精品一区二区| 亚洲成人黄色影院| 精品欧美黑人一区二区三区| 国产盗摄精品一区二区三区在线 | 成人午夜又粗又硬又大| 亚洲欧洲综合另类| 91精品视频网| 国产一区二区女| 亚洲色图视频网| 欧美一区二区二区| 成人午夜电影网站| 天天综合天天综合色| 2024国产精品| 一本色道久久综合亚洲91| 亚洲地区一二三色| 精品对白一区国产伦| 91超碰这里只有精品国产| 亚洲第四色夜色| 久久久久97国产精华液好用吗| 99久久久无码国产精品| 美腿丝袜亚洲一区| 亚洲色图色小说| 日韩一区二区免费在线观看| 国产91精品一区二区麻豆网站| 亚洲精品免费播放| 久久久久国产精品麻豆| 欧美日韩精品三区| 高清国产一区二区| 日韩avvvv在线播放| 国产精品天天摸av网| 欧美精品 日韩| heyzo一本久久综合| 免费人成精品欧美精品| 亚洲欧洲精品一区二区精品久久久 | 综合激情成人伊人| 日韩欧美中文字幕制服| 91网站最新网址| 久草中文综合在线| 亚洲风情在线资源站| 国产欧美精品一区二区色综合| 欧美一区二区三区四区五区| 色伊人久久综合中文字幕| 国产麻豆精品一区二区| 视频一区视频二区中文字幕| 亚洲欧美日韩一区二区| 久久嫩草精品久久久久| 91麻豆精品国产自产在线 | 国产老女人精品毛片久久| 亚洲一区中文日韩| 久久久99精品免费观看| 日韩色在线观看| 欧美美女一区二区三区| 91麻豆国产香蕉久久精品| 成人午夜av在线| 粉嫩aⅴ一区二区三区四区 | 欧美一级高清大全免费观看| 在线观看亚洲精品| 色婷婷狠狠综合| 91在线视频播放| 成人福利视频在线看| 国产成人在线免费观看| 国产麻豆精品一区二区| 国产在线麻豆精品观看| 激情小说欧美图片| 九九热在线视频观看这里只有精品| 日韩激情在线观看| 麻豆成人久久精品二区三区红| 日韩在线一区二区| 蜜桃av噜噜一区| 国内精品伊人久久久久av一坑 | 狠狠色2019综合网| 精品在线一区二区| 狠狠色狠狠色综合| 国产一区二区看久久| 国产乱码精品一区二区三区忘忧草 | 欧美丝袜丝nylons| 欧美日韩中文另类| 欧美私模裸体表演在线观看| 欧美日韩1区2区| 日韩欧美成人午夜| 久久综合九色综合97婷婷 | 中文字幕欧美区| 中文字幕中文字幕中文字幕亚洲无线| 国产精品福利在线播放| 亚洲欧美一区二区三区久本道91| 亚洲欧美成aⅴ人在线观看| 亚洲精品视频观看| 日韩成人精品在线| 久久99精品久久久| 国产老肥熟一区二区三区| 东方欧美亚洲色图在线| 91猫先生在线| 精品视频在线看| 欧美一区二区私人影院日本| 久久久久国产精品麻豆ai换脸| 欧美激情在线看| 亚洲一区二区三区美女| 青青青爽久久午夜综合久久午夜| 久久99久久久欧美国产| 成人高清av在线| 欧美精品777| 欧美激情在线看| 一二三四社区欧美黄| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产一级精品在线| 色吧成人激情小说| 日韩精品一区二区在线| 日本一区二区三区四区在线视频| 亚洲色图视频网站| 久久99久久99精品免视看婷婷 | 一卡二卡欧美日韩| 韩日精品视频一区| 欧美性一级生活| 久久综合久久鬼色中文字| 亚洲一区在线免费观看| 国产精品资源网站| 欧美日韩一区二区电影| 久久久精品免费免费| 亚洲一区二区三区免费视频| 国产精品99久| 91精品国产综合久久久久久 | 韩国午夜理伦三级不卡影院| 欧美自拍丝袜亚洲| 久久久久久久久岛国免费| 五月综合激情网| 99久久国产综合精品色伊| 久久综合九色综合97_久久久| 亚洲成人先锋电影| 色综合天天综合|