/****************************************************************************** *_Copyright (c) 2009 Digital Stream Technology Inc. All Rights Reserved. * * Module: dsthaldisp.h * * Description * Display / Video output interface functions * * @author * @version $Revision: 1.1 $ * ******************************************************************************/ #if !defined (_DSTHAL_DISP_H_) #define _DSTHAL_DISP_H_ #include "dsthallocal.h" #include "dstoslayer.h" /****************************************************************************** * DHL VIDEO Output Format ******************************************************************************/ typedef enum { DHL_VIDEO_480i, /*720x480 interlaced */ DHL_VIDEO_480p, /*720x480 progressive */ DHL_VIDEO_540p, /*960X540*/ DHL_VIDEO_720p, /*1280x720 progressive */ DHL_VIDEO_1080i, /*1920x1080 interlaced */ DHL_VIDEO_1080p, /*1920x1080 progressive */ DHL_VIDEO_VGA, /*640x480 progressive */ DHL_VIDEO_NTSC_M, /*NTSC w/ 7.5 IRE */ DHL_VIDEO_WXGA, /*1366x768 progressive */ DHL_VIDEO_START = DHL_VIDEO_480i, DHL_VIDEO_END=DHL_VIDEO_NTSC_M } DHL_VIDEO_FORMAT; /****************************************************************************** * DHL DISPLAY Output Port ******************************************************************************/ typedef enum { DHL_DISP_OUTPUT_UNKNOWN, DHL_DISP_OUTPUT_PS2, /* PS/2 ("VGA") */ DHL_DISP_OUTPUT_DVI, /* DVI */ DHL_DISP_OUTPUT_656, /* ITU-R BT.656, 8-bit output */ DHL_DISP_OUTPUT_YPRPB, /* YPrPb (HDTV), tri-sync */ DHL_DISP_OUTPUT_COMPOSITE, /* SDTV composite */ DHL_DISP_OUTPUT_SVIDEO, /* SDTV S-Video */ DHL_DISP_OUTPUT_YPRPB_YSYNC, /* YPrPb (HDTV), sync on Y only */ DHL_DISP_OUTPUT_RGB, /* RGB component, tri-sync */ DHL_DISP_OUTPUT_RGB_GSYNC, /* RGB component, sync on green */ DHL_DISP_OUTPUT_PS2_YPRPB, /* PS/2 ("VGA") YPrPb output */ DHL_DISP_OUTPUT_LVDS } DHL_DISP_OUTPUT; /****************************************************************************** * DHL Display Aspect Ratio ******************************************************************************/ typedef enum { DHL_DISP_ASPECT_1_1, /* Display aspect ratio is 1:1 */ DHL_DISP_ASPECT_16_9, /* Display aspect ratio is 16:9 */ DHL_DISP_ASPECT_4_3, /* Display aspect ratio is 4:3 */ DHL_DISP_ASPECT_4_3_FULL, DHL_DISP_ASPECT_ZOOM1, /* Display aspect ratio is ZOOM1 (13%) */ DHL_DISP_ASPECT_ZOOM2, /* Display aspect ratio is ZOOM1 (13%) */ DHL_DISP_ASPECT_ZOOM3, /* Display aspect ratio is ZOOM3 (1.85 : 1 Crop) */ DHL_DISP_ASPECT_ZOOM4, /* Display aspect ratio is ZOOM4 (2.35 : 1 Crop) */ DHL_DISP_ASPECT_PANO, /* 4:3 Panorama */ DHL_DISP_ASPECT_PANO2, /* 16:9 Panorama */ DHL_DISP_EPG, DHL_DISP_ASPECT_ORIGIN, DHL_DISP_ASPECT_16_9_BOX_TOP, DHL_DISP_ASPECT_14_9_BOX_TOP, DHL_DISP_ASPECT_16_9_AFD_CENTRE, DHL_DISP_ASPECT_14_9_CENTRE, DHL_DISP_ASPECT_169_43_16x9 = 16, // 16:9 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 16:9 ¸ðµå (À§¾Æ·¡ ÀÚ¸§ : AFD 4,10,14,15) DHL_DISP_ASPECT_169_43_4x3, // (*)16:9 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 4:3 ¸ðµå (ÁÂ¿ì ¿©¹é : AFD 8,9) DHL_DISP_ASPECT_169_43_14x9, // 16:9 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 14:9 ¸ðµå (AFD 11,13) DHL_DISP_ASPECT_169_43_16x9_2, // 16:9 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 16:9 ¸ðµå (4:3 È­¸éÀ» 16:9 È­¸é¿¡ ²Ëä¿ò) ? AFD¿¡ Á¤ÀÇ ¾ÈµÈ ¸ðµå DHL_DISP_ASPECT_169_169_16x9 = 20, // (*)16:9 ÆÐ³Î 16:9 ¼Ò½ºÀÇ 16:9 ¸ðµå (¿øº» : AFD 4,8,9,10,11,14,15) DHL_DISP_ASPECT_169_169_4x3, // 16:9 ÆÐ³Î 16:9 ¼Ò½ºÀÇ 4:3 ¸ðµå (Á¿쿡 ¿©¹é) - AFD¿¡ Á¤ÀÇ ¾ÈµÈ ¸ðµå DHL_DISP_ASPECT_169_169_14x9, // 16:9 ÆÐ³Î 16:9 ¼Ò½ºÀÇ 14:9 ¸ðµå (AFD 13) DHL_DISP_ASPECT_169_169_ZOOM2, // 16:9 ÆÐ³Î 16:9 ¼Ò½ºÀÇ »óÇÏÁ¿ì 12.5$ ¸ðµå ~ AFD¿¡ Á¤ÀÇ ¾ÈµÈ ¸ðµå DHL_DISP_ASPECT_43_43_16x9 = 24, // 4:3 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 16:9 ¸ðµå (À§¾Æ·¡ ¹Ù³ÖÀ½) - AFD¿¡ Á¤ÀÇ ¾È µÈ ¸ðµå DHL_DISP_ASPECT_43_43_4x3, // (*)4:3 ÆÐ³Î 4:3 ¼Ò½ºÀÇ 4:3 ¸ðµå (¿øº» : AFD 4,8,9,10,11,13) DHL_DISP_ASPECT_43_43_ZOOM1, // 4:3 ÆÐ³Î 4:3 ¼Ò½ºÀÇ Zoom1 ¸ðµå (µ¿±×¶ó¹Ì Çϳª »­ : AFD 14) DHL_DISP_ASPECT_43_43_ZOOM2, // 4:3 ÆÐ³Î 4:3 ¼Ò½ºÀÇ Zoom2 ¸ðµå (µ¿±×¶ó¹Ì µÑ »­ : AFD 15) DHL_DISP_ASPECT_43_169_16x9 = 28, // (*)4:3 ÆÐ³Î 16:9 ¼Ò½ºÀÇ 16:9 ¸ðµå (À§¾Æ·¡ ¹Ù³ÖÀ½ : AFD 4,8,10) DHL_DISP_ASPECT_43_169_4x3, // 4:3 ÆÐ³Î 16:9 ¼Ò½ºÀÇ 4:3 ¸ðµå (µ¿±×¶ó¹Ì µÎ°³ Àß¶ó³¿ : AFD 9,13,15) DHL_DISP_ASPECT_43_169_ZOOM1 // 4:3 ÆÐ³Î 16:9 ¼Ò½ºÀÇ ZOOM1 ¸ðµå (µ¿±×¶ó¹Ì ÇѰ³ Àß¶ó³¿ : AFD 11,14) } DHL_DISP_ASPECTRATIO; /****************************************************************************** * DHL DISPLAY Configuration ******************************************************************************/ typedef struct tag_DHL_DISP_CONFIG { DHL_DISP_ASPECTRATIO AspectRatio; //display aspect ration DHL_VIDEO_FORMAT VidOutFormat; //video output format DHL_DISP_OUTPUT VideoOutput; //video output DS_BOOL bVideoMute[2]; DS_BOOL bVideoMuteCVBS; DS_U16 PanelId; DS_U8 bPanelInit; DS_U16 bDimm; } DHL_DISP_CONFIG, *P_DHL_DISP_CONFIG; typedef enum { DHL_DISP_SRC_ASPECT_NO_DATA, DHL_DISP_SRC_ASPECT_SQUARE, DHL_DISP_SRC_ASPECT_4_3, DHL_DISP_SRC_ASPECT_16_9, DHL_DISP_SRC_ASPECT_UNKNOWN, } DHL_DISP_SRCASPECTRATIO; #if defined __cplusplus extern "C" { #endif /****************************************************************************** * DHL DISPLAY Common APIs ******************************************************************************/ DHL_RESULT DHL_DISP_Init(void); DHL_RESULT DHL_DISP_PresetDispConfig( DHL_DISP_ASPECTRATIO AspectRatio, DHL_DISP_OUTPUT DispOutPort, DHL_VIDEO_FORMAT DispFmt ); void DHL_DISP_PresetVideoOutputFormat(DHL_VIDEO_FORMAT vidFmt); DHL_RESULT DHL_DISP_ChangeDispOutput(DHL_DISP_OUTPUT UserDispOut); DHL_RESULT DHL_DISP_ChangeVideoOutputFormat(DHL_VIDEO_FORMAT UserVidFormat); DHL_VIDEO_FORMAT DHL_DISP_GetVideoOutputFormat(void); DHL_RESULT DHL_DISP_ChangeDispAspect(DHL_DISP_ASPECTRATIO UserAspectRatio); DHL_DISP_ASPECTRATIO DHL_DISP_GetDispAspect(void); /****************************************************************************** * DHL DISPLAY Video-Mute APIs ******************************************************************************/ void DHL_DISP_SetVideoMuteColor(DS_U8 Red, DS_U8 Green, DS_U8 Blue); DHL_RESULT DHL_DISP_MuteMain(DS_BOOL uMute); DHL_RESULT DHL_DISP_MutePIP(DS_BOOL uMute); DHL_RESULT DHL_DISP_MuteCVBS(DS_BOOL uMute); DS_BOOL DHL_DISP_IsVideoMuted(void); DS_BOOL DHL_DISP_IsVideoMutedPIP(void); /****************************************************************************** * DHL DISPLAY Panel/LVDS output APIs ******************************************************************************/ DHL_RESULT DHL_DISP_SetLCDBacklight(DS_U16 uiDeg); DHL_RESULT DHL_DISP_SetPanelPower( DS_BOOL OnOff ); DHL_RESULT DHL_DISP_GetPanelPowerStatus(void); DHL_RESULT DHL_DISP_GetBacklightOnOffStatus(void); DHL_RESULT DHL_DISP_GetDimmingDelay( DS_BOOL onoff, DS_S32 *Delay, DS_S32 *Delay2); DHL_RESULT DHL_DISP_PresetPanel(DS_U16 PanelData); void DHL_DISP_SetLVDSClockFreq(int Offset); void DHL_DISP_SetLVDSClockPhase(int Offset); int DHL_DISP_GetLVDSClockFreq(void); int DHL_DISP_GetLVDSClockPhase(void); /****************************************************************************** * DHL DISPLAY Side Color APIs ******************************************************************************/ DHL_RESULT DHL_DISP_SetSideColorEnable(int En); DHL_RESULT DHL_DISP_GetSideColorEnable(int *pEn); DHL_RESULT DHL_DISP_SetSideColor(DS_U8 R, DS_U8 G, DS_U8 B); DHL_RESULT DHL_DISP_GetSideColor(DS_U8 *pR, DS_U8 *pG, DS_U8 *pB); /****************************************************************************** * DHL CVBS Output CC Embedding APIs ******************************************************************************/ DHL_RESULT DHL_DISP_EmbedCC(DS_U16 *pBuffer, DS_U32 uCount); DHL_RESULT DHL_DISP_EmbedXDS(DS_U16 *pBuffer, DS_U32 uCount); #if defined __cplusplus } #endif #endif /* _DSTHAL_DISP_H_ */