📄 ig_api.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 + -