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

📄 ig_api.h

📁 这是DVD中伺服部分的核心代码
💻 H
字号:
/*****************************************************************************
******************************************************************************
**                                                                          **
**  Copyright (c) 2005-2006 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 ig_api.h
 *
 * $Revision: 1.4 $ 
 *
 * extern function calls into the IG module
 *
 */

#ifndef IG_API
#define IG_API

#ifdef __cplusplus
extern "C" {
#endif

#include <directfb.h>
#include "vcitypes.h"
#include "ig_structs.h"

#define IG_HANDLE                       PVOID
#define IG_STATUS                       ULONG
#define IG_STATUS_SUCCESS               0x00070000
#define IG_STATUS_ERROR                 0x00070001
#define IG_STATUS_NOT_INITIALIZED       0x00070002
#define IG_STATUS_ALREADY_INITIALIZED   0x00070003
#define IG_STATUS_ALREADY_RUNNING       0x00070004
#define IG_STATUS_ALREADY_STOPPED       0x00070005
#define IG_STATUS_NOT_RUNNING           0x00070006
#define IG_STATUS_NOT_STOPPED           0x00070007
#define IG_STATUS_INVALID_HANDLE        0x00070008
#define IG_STATUS_ICS_VALID_ERROR       0x00070009
#define IG_STATUS_ERROR_NULL_PTR        0x0007000A
#define IG_STATUS_BUTTONS_DISABLED      0x0007000B

/* set ig_profile as defined for graphics timeing info */
#define ALLOW_IG_PROFILING

typedef enum tag_IG_STATE
{
    IG_STATE_UNINITIALIZED = 0,
    IG_STATE_INITIALIZED,
    IG_STATE_RUNNING,
    IG_STATE_STOPPED
} IG_STATE;

/* event codes for events going out of the IG module */
typedef enum tag_IG_EVENT_CODE
{
    IG_EVENT_ICS_VALID,
    IG_EVENT_ICS_INVALID,
    IG_EVENT_SELECT_PAGE,
    IG_EVENT_SELECT_BUTTON,
    IG_EVENT_ACTIVATE_BUTTON,
    IG_EVENT_PROCESS_BOBJ
} IG_EVENT_CODE;

/* player status registers for ICS Valid events */
typedef struct tag_IG_ICSVALID_EVENT_INFO
{
    uint32 PSR10;
    uint32 PSR11;
} IG_ICSVALID_EVENT_INFO;

/* player status registers for Page Select events */
typedef struct tag_IG_PAGE_SELECT_EVENT_INFO
{
    PAGE   *pPage;
    uint32 PSR10;
} IG_PAGE_SELECT_EVENT_INFO;

typedef BUTTON IG_BUTTON_SELECT_EVENT_INFO;

typedef struct tagIG_BUTTON_ACTIVATE_EVENT_INFO
{
    BUTTON* pButton;
    PVOID   pContext;
} IG_BUTTON_ACTIVATE_EVENT_INFO;

typedef enum tag_IG_BUTTON_SELECTION_TYPE
{
    IG_BUTTON_ID,
    IG_BUTTON_NUMBER,
    IG_BUTTON_MAX
} IG_BUTTON_SELECTION_TYPE;

typedef enum tag_IG_SHOW_HIDE
{
    IG_SHOW_GRAPHICS = 0,
    IG_HIDE_GRAPHICS
} IG_SHOW_HIDE;

typedef enum tag_IG_SYNC_TYPE
{
    IG_DECODE_SYNC = 0,
    IG_DECODE_ASYNC
} IG_SYNC_TYPE;

/* function pointer declaration for IG_EVENT_CALLBACK */
typedef IG_STATUS(*IG_EVENT_CALLBACK)(PVOID pContext, IG_EVENT_CODE IGEventCode, PVOID pEventinfo);

/* External module calls */
IG_STATUS IGCreate(IG_HANDLE *handle, int screen_width, int screen_height,
                   IDirectFB *dfb, IDirectFBDisplayLayer *disp_layer);
IG_STATUS IGDelete(IG_HANDLE handle);
IG_STATUS IGAttachEvent(IG_HANDLE handle, PVOID Context, IG_EVENT_CALLBACK IGEvent);
IG_STATUS IGDetachEvent(IG_HANDLE handle);
IG_STATUS IGRun(IG_HANDLE handle);
IG_STATUS IGStop(IG_HANDLE handle);
IG_STATUS IGAddData(IG_HANDLE handle, BYTE *Buffer, ULONG Size);
IG_STATUS IGUpdateTimeStamp(IG_HANDLE handle, ULONG PTS, ULONG SCR);
IG_STATUS IGSetButtonPage(IG_HANDLE handle, ULONG ButtonVal, ULONG PageInfo, BYTE Flags);
IG_STATUS IGButtonDisable(IG_HANDLE handle, USHORT ButtonID);
IG_STATUS IGButtonEnable(IG_HANDLE handle, USHORT ButtonID);
IG_STATUS IGButtonUp(IG_HANDLE handle);
IG_STATUS IGButtonDown(IG_HANDLE handle);
IG_STATUS IGButtonLeft(IG_HANDLE handle);
IG_STATUS IGButtonRight(IG_HANDLE handle);
IG_STATUS IGButtonSelect(IG_HANDLE handle, USHORT ButtonVal, IG_BUTTON_SELECTION_TYPE Type);
IG_STATUS IGButtonSelectAndActivate(IG_HANDLE handle, USHORT ButtonVal, IG_BUTTON_SELECTION_TYPE Type);
IG_STATUS IGButtonActivate(IG_HANDLE handle);
IG_STATUS IGButtonActivateComplete(IG_HANDLE handle, PVOID pContext);
IG_STATUS IGPopupOn(IG_HANDLE handle);
IG_STATUS IGPopupOff(IG_HANDLE handle);
BOOLEAN   IGIsPopupOn(IG_HANDLE handle);
BOOLEAN   IGIsButtonSelected(IG_HANDLE handle);
IG_STATUS IGGetStreamAndUIModel(IG_HANDLE handle, BYTE *pStreamAndUIModel);
IG_STATUS IGResetUserTimeout(IG_HANDLE handle);
IG_STATUS IGShowHide(IG_HANDLE handle, IG_SHOW_HIDE value);
IG_STATUS IGSynchronize(IG_HANDLE handle, IG_SYNC_TYPE value);
IG_STATUS IGSetColorSpace(IG_HANDLE handle, int ColorSpace);

#ifdef __cplusplus
}
#endif

#endif /* IG_API */

⌨️ 快捷键说明

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