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

📄 mixer_api.h

📁 SAMSUNG 5009的源代码
💻 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 + -