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

📄 sh_pp_handler.h

📁 SAMSUNG 5009的源代码
💻 H
字号:
#ifndef _SH_PP_HANDLER_H_
#define _SH_PP_HANDLER_H_

/*
 * Print Option
 */
#define SH_PP_PRINT_ERROR						1
#define SH_PP_PRINT_INFO						0
#define SH_PP_PRINT_BUFFERING					0


/*
 *	To support Zoom to full display
 *	Some picture size is not enuogh to show on TV, such as low resolution
 *  pictures. In that case post handler can support zoom using VP block.
 *  But this functionality can be changed by customer's request.
 *
 * TJ
 */
#if _USE_5009 
//gaoping 20060403
#define SH_PP_SUPPORT_ZOOM_FULL					1//!_APP_CAP_JPG_ASV//xh 20060424
#define SH_PP_SUPPORT_OWN_ZOOM					0
#else
#define SH_PP_SUPPORT_ZOOM_FULL					1
#define SH_PP_SUPPORT_OWN_ZOOM					0
#endif

/*
 * To add low pass filter for full display
 *
 * TJ
 */
#define SH_PP_SUPPORT_FULL_LOW_FILTER			0

/*
 *	To screen low pass filter for thumbnail display
 *
 * 	TJ
 */
#define SH_PP_SUPPORT_THUMB_LOW_FILTER			1

/*	
 *	To test all thumbnail view using full image scale down, set "0" 
 *
 *	TJ
 */
#define SH_PP_SUPPORT_THUMBNAIL_DATA_HANDLE	1


#define ZERO										(0x00)
#define TEN											(0x0A)
#define DISP_NO_SCALE_PP							(0x00)
#define DISP_HEIGHT_WIDTH_BY2_PP					(0x03)

#define JPP_DEF_IMAGE_WIDTH							(720)
#define JPP_DEF_IMAGE_HEIGHT(X)						(( X == OUTPUT_625_50 )?576:480)	
#define JPP_DEF_CHUNK_SIZE							(16)


/*
 * JPP handler state
 */
/* State Mask 
 *	: To categorize each state in some state
 */
#define JPP_STATE_STATIONARY_MASK					0x1000
#define JPP_STATE_RUN_MASK							0x0100


/* Read States
 *	: After some check state for stream service.
 */
typedef enum {
	JPP_STATE_RUN_HEADER	= 0x0100,
	JPP_STATE_RUN_START		= 0x0101,
	JPP_STATE_RUN_ERROR		= 0x0102,

/* Stationary States
 *	: During Wait or Stop state, Navigation Task will wait request or System
 *	 Callback about progress 
 */
	JPP_STATE_WAIT			= 0x1001,
	JPP_STATE_STOP			= 0x1002,
	JPP_STATE_ABORT			= 0x1003
} JppState_et;


#define IS_JPP_STATIONARY_STATE(x)			((x) & JPP_STATE_STATIONARY_MASK)
#define IS_JPP_RUN_STATE(x)					((x) & JPP_STATE_RUN_MASK)


typedef enum 
{
	JPP_DISP_TOP2BOTTOM,	
	JPP_DISP_BOTTOM2TOP,			
	JPP_DISP_LEFT2RIGHT,		
	JPP_DISP_RIGHT2LEFT	
}JPP_DisplayStyle_et;

typedef VOID ( * PARTIALDISPLAYPROC_PP) ( UCHAR ui8DispMode, UCHAR *pui8PartData);

typedef struct __Jpp_DisplayParam {
	SSHORT				i16ImgHeight;					/* Image Height  	*/
	SSHORT				i16ImgWidth;					/* Image Width 	*/
	SSHORT				i16XOffset;						/* Start X Offset 	*/
	SSHORT				i16YOffset;						/* Start Y Offset 	*/
	
	/* Block Start and End in the LUT array */
	SSHORT 				i16YStartBlock;					/* Index of Y __gpbJpp_vp_lut to start Y line	*/
	SSHORT				i16YEndBlock;					/* Index of Y __gpbJpp_vp_lut to end Y line	*/
	SSHORT				i16CStartBlock;					/* Index of C __gpbJpp_vp_lut to start C line */
	SSHORT				i16CEndBlock;					/* Index of C __gpbJpp_vp_lut to end C line	*/

#if 	1//FB_VERTICAL_SPLIT		/* KBA #143@123# : Let me look this latter ! */
	/* Offsets calculated from the display Input */
	SSHORT				i16LeftStartOffset;				/* X Start Offset in the Left Field */
	SSHORT				i16LeftEndOffset;				/* X End Offset in the Left Field */
	SSHORT				i16RightStartOffset;				/* X Start Offset in the Right Field */
	SSHORT				i16RightEndOffset;				/* X End Offset in the Right Field */
#endif	

	/* Current status fields */
	ULONG				ui32PartDataSize;				/* Total size of Each Chunk (Y+C) */
	ULONG				ui32PartYDataSize;				/* Size of Each Y Chunk in ui32PartDataSize */
	ULONG				ui32PartCbCrDataSize;			/* Size of Each C Chunk in ui32PartDataSize */
	SSHORT 				i16CurrPartDataCount;			/* Current Chunk Displayed # Changes during Display */
	SSHORT 				i16TotalPartDataCount;			/* Total number of Chunks that will be available from the Decoder */

	SSHORT				i16YCurrStartBlock;				/* Current start index of __gpbJpp_vp_lut to start the Y # Changes during Display */
	SSHORT				i16YCurrEndBlock;				/* Current end index of __gpbJpp_vp_lut to start the Y # Changes during Display */
	SSHORT				i16CCurrStartBlock;				/* Current start index of __gpbJpp_vp_lut to start the C # Changes during Display */
	SSHORT				i16CCurrEndBlock;				/* Current end index of __gpbJpp_vp_lut to start the C # Changes during Display */

	SSHORT				i16YCurrStartXOffset;			/* Current Y Start Offset # Changes during Display */
	SSHORT				i16YCurrEndXOffset;				/* Current Y End Offset # Changes during Display */
	SSHORT				i16CCurrStartXOffset;			/* Current C Start Offset # Changes during Display */
	SSHORT				i16CCurrEndXOffset;				/* Current C End Offset # Changes during Display */

	/* Display style that has to be followed */
	UCHAR				ui8DispStyle;					/* Style of Display Up->Down, Down->Up, Left->Right, Right->Left */
	UCHAR				ui8ScaleMode;					/* Display as such or Downscale by 2 */
	BOOL				bReverseWrite;					/* Write mode A->B or B->A */
	PARTIALDISPLAYPROC_PP	pfnDoPartialDisplay;			/* Proc to use for display. Selected according to ui8DispStyle or default NullProc */

	/* Misc Flag */
	BOOL				bIncFlag;						/* Tail chunk available */
	SSHORT				i16Remain;						/* Remaining Chunk size */
	SSHORT				i16ChunkHeight;					/* Tail Chunk Height */
}JPP_DISPLAY_PARAM;

typedef enum {
	JPP_SYS_MSG_NULL,
	JPP_SYS_MSG_STOP,
	JPP_SYS_MSG_READY,
	JPP_SYS_MSG_DONE,
	JPP_SYS_MSG_DATA_ERR,
	JPP_SYS_MSG_READY_JD	/* for arm jpeg decoder */
} JppSysMsgId_et;

typedef struct {
	JppSysMsgId_et	eId;
	BM_NODE			*node;
} JPP_SysMsg_st;

typedef struct
{
	UCHAR	Yvalue;
	UCHAR	Cbvalue;	
	UCHAR	Crvalue;		
}JPP_YcbCr_st;
#if _APP_CAP_JPG_ASV//xh 20060424
VOID iJPP_ClearFrameArea( VOID );
#endif

VOID iJPP_InitDispLUT( VOID );
BOOL iJPP_InitPPResource( VOID );
BOOL iJPP_DeInitPPResource( VOID );
VOID iJPP_ClearDisplay (SH_ColorValue_et color);
BOOL iJPP_SendSysMsg( JppSysMsgId_et id, BM_NODE *node );
VOID iJPP_ClearRectangle( SH_Display_st display, SH_ColorValue_et colour );
VOID iJPP_ClearBlockBlack(VOID);
UINT iJPP_checkThumbNail(BM_NODE *first_node);
BYTE1 iJPP_getScanCount( VOID );
BYTE1 iJPP_releaseInputNodes( VOID );
VOID iJPP_ChangeFrameBufferMode( S5H_OutputTvMode_t out );

#endif /* _SH_PP_HANDLER_H_*/

⌨️ 快捷键说明

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