📄 mixer_api.h
字号:
/******************************************************************************/
/* File name : MIX_api.h */
/* Start date : 2002.12.16 */
/* By : KIM DO YEON */
/* Contact : */
/* Description: S5H5002 MIX Definition Header file */
/* $Log:$ */
/******************************************************************************/
#ifndef _MIX_API_H
#define _MIX_API_H
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************
* INCLUDES *
*************************************************************************/
/* Graphic Object Priority Values */
// Qian liping 060404 //(weilf)20060408
#define GFX_OBJ1_LAYER 2/* the graphic object */
#define GFX_OBJ2_LAYER 4/* the cursor object */
#define GFX_OBJ3_LAYER 1/* the subtitle object */
#define GFX_OBJ4_LAYER 3 /* the digist object */
/************************************************************************
* MACRO FUNCTION DEFINITION *
*************************************************************************/
#define WRITE_REG(reg,val) (reg) = (val)
#define SETBIT_REG(reg,val) (reg) |= (val)
#define RESETBIT_REG(reg,val) (reg) &= ~(val)
#define READ_REG(reg) (reg)
/************************************************************************
* MIXER STRUCTURE DEFINITIONS *
*************************************************************************/
typedef SH_ColorFormat_t MIX_GfxColorFormat_t;
typedef enum {
MIX_INTERLACED = 0,
MIX_PROGRESSIVE
} MIX_ScanMode_t;
typedef enum {
MIX_NTSC = 0,
MIX_PAL
} MIX_DisplayMode_t;
typedef enum {
MIX_GFX_ON_VIDEO = 0,
MIX_VIDEO_ON_GFX
} MIX_LayerOrder_t;
typedef enum {
NO_BLEND = 0,
PIXEL_BLEND,
WINDOW_BLEND,
BLEND_ALL
} MIX_BlendEn_t;
typedef enum {
NO_DOUBLE = 0,
HOR_DOUBLE,
VER_DOUBLE,
BOTH_DOUBLE
} MIX_DoubleEn_t;
typedef struct {
USHORT coeff1; /* [29:20] */
USHORT coeff2; /* [19:10] */
USHORT coeff3; /* [ 9: 0] */
} MIX_Coeff_t;
typedef struct {
MIX_LayerOrder_t layer_order; /* 0: Graphic over video, 1: Video over graphic */
MIX_ScanMode_t scan_mode; /* 0: Interlaced mode, 1: Progressive mode */
MIX_DisplayMode_t ntsc_pal; /* 0: NTSC(720*480), 1: PAL(720*576) */
BOOL graphic_en; /* 0: Graphic hide, 1: Graphic show */
BOOL video_en; /* 0: Video hide, 1: Video show */
BOOL cursor_en; /* 0: Cursor hide, 1: Cursor show */
BOOL antiflicker_en; /* 0: Disable Antiflicker,1: Enable Antiflicker */
BOOL pip_en; /* 0: Disable PIP, 1: Enable PIP */
} MIX_Cfg_t;
/******************************************************************************
* DEFINES
*****************************************************************************/
BOOL MIX_Init(VOID);
BOOL MIX_ClearReg(VOID);
BOOL MIX_Start(VOID);
BOOL MIX_Stop(VOID);
BOOL MIX_SetBgColor(UINT bg_color);
BOOL MIX_SetCursorBase(UINT base_address);
BYTE4 MIX_GetCursorBase(VOID);
BOOL MIX_SetCursorPos(USHORT x_pos, USHORT y_pos);
BOOL MIX_SetCursorSize(USHORT cursor_width, USHORT cursor_height);
BOOL MIX_SetScanMode(MIX_ScanMode_t scan_mode);
BOOL MIX_SetNtscPal(MIX_DisplayMode_t ntsc_pal);
BOOL MIX_SetGraphicEn(BYTE1 gfx_obj, BOOL graphic_en);
BOOL MIX_SetVideoEn(BOOL video_en);
BOOL MIX_SetVideoLayer(BOOL up);
BOOL MIX_SetCursorEn(BOOL cursor_en);
BOOL MIX_SetGfxDoubleSizeEn( BOOL double_en ); // Qian liping 060926
BOOL MIX_GetVideoEn(VOID);
BOOL MIX_GetCursorEn(VOID);
BOOL MIX_GetGraphicEn(BYTE1 gfx_obj);
BOOL MIX_SetSpClut(UINT *MIX_clut);
BOOL MIX_SetGfxClutColor(BYTE1 index, UINT color);
BOOL MIX_SetGfxClut(UINT number, UINT *MIX_clut);
BOOL MIX_SetGraphicBase(BYTE1 gfx_obj, UINT base_address);
BYTE4 MIX_GetGraphicBase(BYTE1 gfx_obj);
BOOL MIX_SetGraphicPos(BYTE1 gfx_obj, USHORT x_pos, USHORT y_pos);
BOOL MIX_SetGraphicSize(BYTE1 gfx_obj, USHORT gfx_width, USHORT gfx_height);
BOOL MIX_SetGfxColorFormat(MIX_GfxColorFormat_t color_format);
BOOL MIX_GetCursorSize(BYTE2 *width, BYTE2 *height);
BOOL MIX_GetCursorPos(USHORT *x_pos, USHORT *y_pos);
BOOL MIX_GetGraphicSize(BYTE1 gfx_obj, BYTE2 *width, BYTE2 *height);
BOOL MIX_GetGraphicPos(BYTE1 gfx_obj, USHORT *x_pos, USHORT *y_pos);
#if (_USE_5008 || _USE_5010 || _USE_5005 || _USE_5009 || _USE_5015)
VOID MIX_SetSpScaler(BOOL SrcIsNtsc);
#endif /* _USE_5008 || _USE_5010 || _USE_5005 || _USE_5015 */
#if !(_USE_5005 || _USE_5009)
BOOL MIX_SetCursorClut(USHORT *MIX_clut);
#endif /* !(_USE_5005 || _USE_5009) */
#if (_USE_5005 || _USE_5009 || _USE_5015)
BOOL MIX_SetBlankPixel(UINT blank_color);
BOOL MIX_SetBrightnessPP(BYTE2 bright_factor);
BOOL MIX_SetContrastPP(BYTE2 contrast_factor);
BOOL MIX_SetSaturationtPP(BYTE2 saturation_factor);
BOOL MIX_SetPPDisable(BOOL pp_en);
#if _USE_5015
BOOL MIX_SetCursorClutColor(BYTE1 index, USHORT color);
#endif /* _USE_5015 */
#else /* (_USE_5005 || _USE_5009 || _USE_5015) */
BOOL MIX_SetCursorClutColor(BYTE1 index, USHORT color);
BOOL MIX_SetCmCoeff(VOID);
BOOL MIX_SetCmCoeffY(MIX_Coeff_t y);
BOOL MIX_SetCmCoeffCb(MIX_Coeff_t cb);
BOOL MIX_SetCmCoeffCr(MIX_Coeff_t cr);
VOID MIX_CheckCoeff(MIX_Coeff_t* coeff, UCHAR item);
UINT MIX_GetXPos(VOID);
#endif /* (_USE_5005 || _USE_5009 || _USE_5015) */
#ifdef __cplusplus
}
#endif
#endif /* _MIX_API_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -