/*! \addtogroup display_mid Display Middleware * @{ */ /******************************************************************************/ /** * * @file mid_display.h * * @brief This file specifies the APIs provided to control display middleware * * @note Copyright (c) 2009 Sunplus Technology Co., Ltd. \n * All rights reserved. * * @author * ******************************************************************************/ #ifndef __MID_DTV_DISPLAY_H #define __MID_DTV_DISPLAY_H /******************************************************************************* * Header include ******************************************************************************/ #include "types.h" #include "plf_timing_id.h" #include "mid_display.h" #include "umf_ioctl.h" #include "drv_scart.h" #include "kmf_ioctl.h" #include "vip2_ioctl.h" #include "adc_ioctl.h" #include "pq_ioctl.h" #include #include "drv_kmf_interface.h" /******************************************************************************* * Enumerator ******************************************************************************/ /** *@brief Display output format select */ #define MID_PEAKING_MAX_LEVEL 20 #define MID_DEINTERLACE_MAX_REGPATCH_NUM 30 #define MID_GAMMA_TABLE_SIZE 1280 typedef enum { MID_DISP_HDMI_PC, MID_DISP_HDMI_VIDEO, MID_DISP_HDMI_AUTO_SELECT, } MID_DISP_HDMIInputType_e; typedef enum { MID_IMG_SRC_TUNER, MID_IMG_SRC_CVBS, MID_IMG_SRC_SVIDEO, MID_IMG_SRC_YPBPR_SD, MID_IMG_SRC_YPBPR_HD, MID_IMG_SRC_RGB, MID_IMG_SRC_HDMI_SD, MID_IMG_SRC_HDMI_HD, MID_IMG_SRC_HDMI_DVI, MID_IMG_SRC_DTV_SD, MID_IMG_SRC_DTV_HD, MID_IMG_SRC_MPEG, MID_IMG_SRC_SCART_AV, MID_IMG_SRC_SCART_SV, MID_IMG_SRC_SCART_RGB, MID_IMG_SRC_MAX, } MID_DISP_ImgSrcType_e; typedef enum { MID_COLORTEMP_STD, MID_COLORTEMP_COOL, MID_COLORTEMP_WARM, MID_COLORTEMP_sRGB, MID_COLORTEMP_USER, MID_COLORTEMP_MAX } MID_DISP_ColorTempType_e; typedef enum { MID_OFF, MID_ON, MID_MAX } MID_DISP_OFFON_e; typedef enum { MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_NTSC = 0, MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_PAL, MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_SECAM, MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_NTSC, MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_PAL, MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_SECAM, MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_NTSC, MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_PAL, MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_SECAM, MID_VIDEO_PQ_STORE_SOURCE_TYPE_YPBPR_SD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_YPBPR_HD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_PC, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_SD_16_235, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_SD_0_255, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_HD_16_235, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_HD_0_255, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_DVI_16_235, MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_DVI_0_255, MID_VIDEO_PQ_STORE_SOURCE_TYPE_DTV_SD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_DTV_HD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_MULTIMEDIA_SD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_MULTIMEDIA_HD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_NTSC, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_PAL, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_SECAM, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_NTSC, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_PAL, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_SECAM, MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_RGB, MID_VIDEO_PQ_STORE_SOURCE_TYPE_DVD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_DVD_HD, MID_VIDEO_PQ_STORE_SOURCE_TYPE_MAX, } MID_Video_PQ_Store_SourceType_t; typedef enum { MID_BL_OFF, MID_BL_50, MID_BL_60, MID_BL_70, MID_BL_80, MID_BL_MAX, } MID_DISP_BL_e; typedef enum { MID_NR_OFF, MID_NR_LOW, MID_NR_MIDDLE, MID_NR_HIGH, MID_NR_MAX, } MID_DISP_NR_e; typedef enum { MID_DynamicBL_OFF, MID_DynamicBL_ON, MID_DynamicBL_MAX, } MID_DISP_DynamicBL_e; typedef enum { MID_TPISNR_REGION_1, MID_TPISNR_REGION_2, MID_TPISNR_REGION_3, MID_TPISNR_REGION_MAX, } MID_TPISNR_Region_e; typedef enum { MID_DISP_MAIN_WINDOW_BORDER, MID_DISP_MULTI_WINDOW_BORDER, } MID_DISP_BorderWindow_t; typedef enum { MID_DISP_FLIP_TYPE_NO_FLIP = 0, MID_DISP_FLIP_TYPE_BOTH_H_V, MID_DISP_FLIP_TYPE_ONLY_H, MID_DISP_FLIP_TYPE_ONLY_V, MID_DISP_FLIP_TYPE_MAX, } MID_DISP_FlipType_t; typedef enum { MID_DISP_MUTE = 0, MID_DISP_UNMUTE, MID_DISP_MUTE_BY_APP, MID_DISP_MUTE_BY_TVFE, MID_DISP_MUTE_BY_VIP, }MID_DISP_MUTE_ST; typedef enum { MID_DISP_ScartOutput_FORMAT_NTSC, MID_DISP_ScartOutput_FORMAT_PAL, } MID_DISP_MointerOutputFormat_t; typedef enum { MID_DISP_CVBSOutput_SOURCE_TYPE_NULL = DRV_TvDecOUTPUT_SOURCE_TYPE_NULL, MID_DISP_CVBSOutput_SOURCE_TYPE_CVBS = DRV_TvDecOUTPUT_SOURCE_TYPE_CVBS, MID_DISP_CVBSOutput_SOURCE_TYPE_SVIDEO = DRV_TvDecOUTPUT_SOURCE_TYPE_SVIDEO, MID_DISP_CVBSOutput_SOURCE_TYPE_DTV = DRV_TvDecOUTPUT_SOURCE_TYPE_DTV, MID_DISP_CVBSOutput_SOURCE_TYPE_ATV = DRV_TvDecOUTPUT_SOURCE_TYPE_DVIF, MID_DISP_CVBSOutput_SOURCE_TYPE_CHROMA = DRV_TvDecOUTPUT_SOURCE_TYPE_CHROMA, } MID_DISP_CVBSOutputSrcType_t; typedef enum { MID_PQ_CURVE_0 = 0, MID_PQ_CURVE_25, MID_PQ_CURVE_50, MID_PQ_CURVE_75, MID_PQ_CURVE_100, }MID_PQ_CURVE_ST; /******************************************************************************* * Structure ******************************************************************************/ typedef struct { MID_DISP_ImgSrcType_e eImgSrc; UINT8 bCSCLevel; UINT8 bMatrixLevel; UINT8 bColorTempLevel; UINT8 bFCLevel; UINT8 bDCLevel; UINT8 bDeRingLevel; UINT8 bDeBlockingLevel; UINT8 bTPISNRLevel; UINT8 b2DNRLevel; UINT8 b3DNRLevel; UINT8 bHPeakingLevel; UINT8 bVPeakingLevel; UINT8 bDLTILevel; UINT8 bDCTILevel; UINT8 bUVExLevel; UINT8 bUVOffSetLevel; UINT8 bSoftClipLevel; UINT8 bDeintLevel; } MID_DISP_ImgPQFunction_t; typedef enum { DISP_ASPECT_RATIO_FULL, DISP_ASPECT_RATIO_4X3, DISP_ASPECT_RATIO_16X9, DISP_ASPECT_RATIO_14X9, DISP_ASPECT_RATIO_NATIVE, DISP_ASPECT_RATIO_NATIVE_ENLARGE, DISP_ASPECT_RATIO_NONLINEAR, DISP_ASPECT_RATIO_ZOOM1, DISP_ASPECT_RATIO_ZOOM2, DISP_ASPECT_RATIO_ZOOM3, DISP_ASPECT_RATIO_ZOOM4, DISP_ASPECT_RATIO_ZOOM5, DISP_ASPECT_RATIO_ZOOM6, DISP_ASPECT_RATIO_ZOOM7, DISP_ASPECT_RATIO_ZOOM8, DISP_ASPECT_RATIO_CINEMA, DISP_ASPECT_RATIO_WIDE, DISP_ASPECT_RATIO_AUTO, #ifdef CONFIG_SUPPORT_DIVXDRM DISP_ASPECT_RATIO_DIVX, #endif DISP_ASPECT_RATIO_MAX, } DISP_Aspect_Ratio_e; typedef enum { MID_HDMIRGBDefault, //Depend on video format, check CEA-861D SPEC MID_HDMIRGBLimit, MID_HDMIRGBFull, MID_HDMIRGBReserved, } MID_HDMIRGBRange_t; typedef enum { MID_TvDecPQ_SIGNAL_STABLE, MID_TvDecPQ_SIGNAL_UNSTABLE, MID_TvDecPQ_NO_SIGNAL_IN } MID_TvDecPQSignalStatus_t; typedef enum { MID_TvDecPQFORMAT_NTSC = TVFE_TvDecFORMAT_NTSC, MID_TvDecPQFORMAT_PAL = TVFE_TvDecFORMAT_PAL, MID_TvDecPQFORMAT_PAL_M = TVFE_TvDecFORMAT_PAL_M, MID_TvDecPQFORMAT_PAL_N = TVFE_TvDecFORMAT_PAL_N, MID_TvDecPQFORMAT_SECAM = TVFE_TvDecFORMAT_SECAM, MID_TvDecPQFORMAT_NTSC_443 = TVFE_TvDecFORMAT_NTSC_443, MID_TvDecPQFORMAT_PAL_60 = TVFE_TvDecFORMAT_PAL_60, MID_TvDecPQFORMAT_AUTO = TVFE_TvDecFORMAT_AUTO, MID_TvDecPQFORMAT_UNKNOW, } MID_TvDecPQFormatType_t; typedef enum { MID_TvDecPQ_TV = 0, MID_TvDecPQ_AV, MID_TvDecPQ_SV, MID_TvDecPQ_SCART, } MID_TvDecPQSrcType_t; typedef struct { UINT16 wRGain; UINT16 wGGain; UINT16 wBGain; INT16 wROffset; INT16 wGOffset; INT16 wBOffset; } MID_DISP_ColorTemp_Set_t; typedef struct { UINT16 wVTop; //! Specify how many lines of source can be dropped from top line. UINT16 wVBottom; //! Specify how many lines of source can be dropped from bottom line. UINT16 wHLeft; //! Specify how many pixels of source can be dropped from left pixel. UINT16 wHRight; //! Specify how many pixels of source can be dropped from right pixel. } MID_Disp_overscan_st; typedef struct { PLF_VideoID_t eModeID; char *name; MID_Disp_overscan_st ratio_43; MID_Disp_overscan_st ratio_169; MID_Disp_overscan_st ratio_149; MID_Disp_overscan_st ratio_full; MID_Disp_overscan_st ratio_nonlinear; MID_Disp_overscan_st ratio_native; MID_Disp_overscan_st ratio_native_enlarge; MID_Disp_overscan_st ratio_zoom1; MID_Disp_overscan_st ratio_zoom2; MID_Disp_overscan_st ratio_cinema; void *customer_data; } MID_Disp_HDMIPCTimingTableInfo_st; typedef struct { PLF_VideoID_t eModeID; char *name; MID_Disp_overscan_st ratio_43; MID_Disp_overscan_st ratio_169; MID_Disp_overscan_st ratio_149; MID_Disp_overscan_st ratio_full; MID_Disp_overscan_st ratio_nonlinear; MID_Disp_overscan_st ratio_native; MID_Disp_overscan_st ratio_native_enlarge; MID_Disp_overscan_st ratio_zoom1; MID_Disp_overscan_st ratio_zoom2; MID_Disp_overscan_st ratio_cinema; void *customer_data; } MID_Disp_TimingTableInfo_st; typedef struct { PLF_VideoID_t eModeID; char *name; void *customer_data; } MID_Disp_PCTimingTableInfo_st; typedef enum{ DISP_WINDOW1, }DISP_VomWindow_t; typedef struct { UINT8 bEn; UINT8 bCtrl; UINT8 bHGain_BP_EP; UINT8 bHGain_HP_NG; UINT8 bVGain_3T_5T; UINT8 b2DGain_BP1_BP2; UINT8 bHCoring; UINT8 bVCoring; UINT8 b2DCoring; UINT8 bXP0; UINT8 bXP1; UINT8 bXP2; UINT8 bXP3; UINT8 bYP0; UINT8 bYP1; UINT8 bYP2; UINT8 bMP1; UINT8 bMP2; UINT8 bMP12; UINT8 bPostCoring; UINT8 bPeakingStop; UINT8 b13TapGain; UINT8 b13TapFilter0; UINT8 b13TapFilter1; UINT8 b13TapFilter2; UINT8 b13TapFilter3; UINT8 b13TapFilter4; UINT8 b13TapFilter5; UINT8 b13TapFilter6; UINT8 b2DGain_HP1_HP2; } MID_DISP_ImgPeaking_t; typedef struct { UINT8 bEn; UINT8 bCtrl1; UINT8 bCtrl2; UINT8 bWeightGain; UINT8 bCoring; UINT8 bClipping; UINT8 bCbCrOffset; } MID_DISP_ImgDCTI_t; typedef struct { UINT16 wContrast; UINT16 wSaturation; UINT16 wHue; UINT16 wYBri; UINT16 wUBri; UINT16 wVBri; } MID_DISP_ColorMatrix_t; typedef enum { DISP_3D_STATUS_RESET, // Reset the 3D setting after mode change DISP_3D_STATUS_ALWAYS_ON, // Keeps the 3D setting after mode change DISP_3D_STATUS_ONLY_2D3D_ALWAYS_ON, // Only keep 2D3D on and reset the others 3D ready when mode change } DISP_3D_ModeChange_Status_t; typedef enum { DISP_3D_FORMAT_L_EYE, DISP_3D_FORMAT_R_EYE, //Force 2D mode - R Image }DISP_3D_Format_t; typedef enum { /* common status values */ DISP_SUCCESS, /* successful outcome */ DISP_ERR_INVALID_PARAM, /* invalid parameter */ DISP_ERR_INVALID_OP, /* requested operation is invalid */ DISP_ERR_MEMORY_ALLOC, /* problem allocating memory */ DISP_ERR_BUFFER_UNDERFLOW, /* not enough stream data is available to decode the next video frame */ DISP_ERR_RESOURCE_UNAVAILABLE, /* hardware resource is in use or otherwise unavailable */ DISP_ERR_FAILURE, DISP_WARN_NO_ACTION, /* the function completed successfully, but no action was taken */ DISP_WARN_PARAM_CLIPPED, /* the function completed successfully, though a parameter was clipped to within a valid range.*/ DISP_WARN_BUFFER_EMPTY, /* buffer became empty before the requested amount of data could be read */ DISP_WARN_BUFFER_FULL, /* buffer became full before the requested amount of data could be written */ } DISP_Status_t; enum { DISP_ColorLUT_R, DISP_ColorLUT_G, DISP_ColorLUT_B, DISP_ColorLUT_Y, DISP_ColorLUT_M, DISP_ColorLUT_C, DISP_ColorLUT_FL, DISP_ColorLUT_NUM // 7 }; typedef struct _ColorLUTAxisMID_t { UINT8 bEnable[DISP_ColorLUT_NUM]; UINT8 SatGain[DISP_ColorLUT_NUM]; UINT8 YGain[DISP_ColorLUT_NUM]; UINT8 RotGain[DISP_ColorLUT_NUM]; UINT16 RotAngle[DISP_ColorLUT_NUM]; UINT16 Reserved; }ColorLUTAxisDISP_t; typedef struct { INT16 wHStartOffset; INT16 wVStartOffset; } MID_Disp_HVStartOffset_t; enum { DISP_DYNAMIC_BL_FORMAL, DISP_DYNAMIC_BL_ENERGY_EFFICIENCY, DISP_DYNAMIC_BL_T_P, }; /******************************************************************************* * vairable ******************************************************************************/ /******************************************************************************* * Program ******************************************************************************/ MID_DISP_Status_e MID_DISP_DTVDisplayInit(void); MID_DISP_Status_e MID_DISP_DTVGetDispAspect(DISP_Aspect_Ratio_e *eAspect, Boolean *fRefOverscan); MID_DISP_Status_e MID_DISP_DTVSetDispAspect(DISP_Aspect_Ratio_e eAspect, Boolean fRefOverscan); MID_DISP_Status_e MID_DISP_DTVSetWSSInfo(UINT8 bWSSInfo); #ifdef CONFIG_SUPPORT_3D_EN MID_DISP_Status_e MID_DISP_DTVSetInput3DStructure(VIP_InputStruct_3D_t e3DInputStrc); MID_DISP_Status_e MID_DISP_DTVSetOutput3DStructure(VIP_OutputStruct_3D_t e3DOutputStrc); MID_DISP_Status_e MID_DISP_DTVSet3DSwap(DISP_3D_Format_t e3DFormat); MID_DISP_Status_e MID_DISP_DTVSet3DDepth(INT16 e3DDepth); MID_DISP_Status_e MID_DISP_DTVSet3DModeChangeSt(DISP_3D_ModeChange_Status_t e3DModeChangeSt); MID_DISP_Status_e MID_DISP_DTVGet3DModeChangeSt(DISP_3D_ModeChange_Status_t* e3DModeChangeSt); #endif BOOL MID_DISP_DTVIsSupport3D(VIP_InputStruct_3D_t); MID_DISP_Status_e MID_DISP_DTVSetPQCurve(UINT8 CurveType, UINT8 CurvePointIdx, INT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetHue(INT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetSaturation(INT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetContrast(INT16 wValue);; MID_DISP_Status_e MID_DISP_DTVSetBrightness(INT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetSharpness(UINT8 bLevel); MID_DISP_Status_e MID_DISP_DTVSetColorTemp(MID_DISP_ColorTemp_Set_t wValue); MID_DISP_Status_e MID_DISP_DTVSetColorTempALL(MID_DISP_ColorTemp_Set_t wValue,UINT8 bGammaswitch,UINT8 bGammaIndex); MID_DISP_Status_e MID_DISP_DTVSetNR(INT8 eLevel); MID_DISP_Status_e MID_DISP_DTVSetGamma(INT8 eLevel); MID_DISP_Status_e MID_DISP_DTVSetBacklightLevel(Backlight_t BacklightSetting); void MID_DISP_DTVPrintMuteStatus(); MID_DISP_Status_e MID_DISP_DTVSetVideoMute(UINT8 bR, UINT8 bG, UINT8 bB); MID_DISP_Status_e MID_DISP_DTVSetVideoUnmute(void); void MID_DISP_DTVSetMuteColor(UINT8 bR, UINT8 bG, UINT8 bB); void MID_DISP_DTVSetTVFEMuteColorByAPP(BOOL fEn); #ifdef CONFIG_QSD MID_DISP_Status_e MID_DISP_DTVSetMTMute(UINT8 bR, UINT8 bG, UINT8 bB); void MID_DISP_DTVSetMTMuteColor(UINT8 bR, UINT8 bG, UINT8 bB); MID_DISP_Status_e MID_DISP_DTVSetMTUnmute(void); #endif MID_DISP_Status_e MID_DISP_DTVSetMointerMode(BOOL fMirEn, MID_DISP_MointerOutputFormat_t bFormat, BOOL fOSDEn); /******************************************************************************/ /** * @brief Select CVBS Output source * * @param eChannel Specify the path of source * @param *peType Specify the source of type * @param *pConfig Specify the source of pin configuration * * @return MID_DISP_Status_e Middwares Standard Return * @retval MIDDISP_SUCCESS if successful * @retval MIDDISP_ERR_FAILURE if eChannel is not available in this chip or handler isn't registered * ******************************************************************************/ MID_DISP_Status_e MID_DISP_DTVSetCVBSOutputSource(MID_DISP_CVBSOutputSrcType_t pCurrSrc, Boolean bMute); /***************************************************************************** ** FUNCTION : MID_DISP_DTVBlankingCVBSOutput ** ** DESCRIPTION : Blanking CVBS signal on DTV source ** PARAMETERS : ** TRUE for masking displayed picture(by setting mask window to show background color); ** FALSE for normal display(by setting mask window to show normal display). ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_ERR_INVALID_PARAM *****************************************************************************/ MID_DISP_Status_e MID_DISP_DTVBlankingCVBSOutput(Boolean bBlanking); MID_DISP_Status_e MID_DISP_DTVSetPause(Boolean bEnable); MID_DISP_Status_e MID_DISP_DTVGetPause(Boolean* pbEnable); MID_DISP_Status_e MID_DISP_DTVGetTimingInfo(PMID_InputInfo_t peRetTimingInfo); MID_DISP_Status_e MID_DISP_DTVSetCropWindowHStartOffset(INT16 wHStartPosition, INT16 sbOffset); MID_DISP_Status_e MID_DISP_DTVSetCropWindowVStartOffset(INT16 wVStartPosition, INT16 sbOffset); MID_DISP_Status_e MID_DISP_DTVSetCVD2HActiveStart(UINT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetCVD2VActiveStart(UINT8 wValue); MID_DISP_Status_e MID_DISP_DTVSetOverscan(Boolean fOverscanEn, UINT16 wVTop, UINT16 wVBottom, UINT16 wHLeft, UINT16 wHRight); MID_DISP_Status_e MID_DISP_DTVGetOverscan(UINT8 *fOverscanEn, UINT16 *wVTop, UINT16 *wVBottom, UINT16 *wHLeft, UINT16 *wHRight, BOOL *fUnitByRatio); MID_DISP_Status_e MID_DISP_DTVSetExtsInpuwWin(UINT16 usHStart, UINT16 usHEnd, UINT16 usVStart, UINT16 usVEnd); MID_DISP_Status_e MID_DISP_DTVGetExtsInpuwWin(UINT16* usHStart, UINT16* usHEnd, UINT16* usVStart, UINT16* usVEnd); MID_DISP_Status_e MID_DISP_DTVSetHDMIScreenMode(VIP_HDMI_ScreenMode eMode); MID_DISP_Status_e MID_DISP_DTVGetPanelResolution(UINT32 *dWidth, UINT32 *dHeight); MID_DISP_Status_e MID_DISP_Zoom_GetSrcOriResolution(UINT16 *dWidth, UINT16 *dHeight); MID_DISP_Status_e MID_DISP_Zoom_SetSrcResolution(BOOL en, UINT16 x, UINT16 y, UINT16 dWidth, UINT16 dHeight); MID_DISP_Status_e MID_DISP_Zoom_SetDispResolution(BOOL en, UINT16 x, UINT16 y, UINT16 dWidth, UINT16 dHeight); MID_DISP_Status_e MID_DISP_DTVGetYAvg(UINT32* YAvg); /***************************************************************************** ** FUNCTION : MID_DISP_DTVSetFlip ** ** DESCRIPTION : ** Set H/V flip (Used in system initialize). Flip will happen when source change ** ** PARAMETERS : ** eFlipType MID_DISP_FLIP_TYPE_ONLY_H H flip ** MID_DISP_FLIP_TYPE_ONLY_V V flip ** MID_DISP_FLIP_TYPE_BOTH_H_V H and V flip ** MID_DISP_FLIP_TYPE_NO_FLIP Do not flip ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_FAILURE *****************************************************************************/ MID_DISP_Status_e MID_DISP_DTVSetFlip(MID_DISP_FlipType_t eFlipType); MID_DISP_Status_e MID_DISP_DTVGetFlip(MID_DISP_FlipType_t *eFlipType); /***************************************************************************** ** FUNCTION : MID_DISP_GetSource ** ** DESCRIPTION : ** Changing source. ** ** PARAMETERS : ** TblIdx -Src table index ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_FAILURE *****************************************************************************/ MID_DISP_Status_e MID_DISP_DTVGetSource(SRCTYPE_t *pSrc); /***************************************************************************** ** FUNCTION : MID_DISP_SetSourceEx ** ** DESCRIPTION : ** Changing source with aspect ratio and callback function. ** ** PARAMETERS : ** pCurrSrc -Src table ptr ** pFunc PCB AV routing ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_FAILURE *****************************************************************************/ #ifdef CONFIG_SCART_SUPPORT MID_DISP_Status_e MID_DISP_DTVSetSourceEx(InputSrc_t CurrSrc, DRV_ScartSrcType_t ScartIn, InputVideoConf_st CurrSrcPin); #else MID_DISP_Status_e MID_DISP_DTVSetSourceEx(InputSrc_t CurrSrc, InputVideoConf_st CurrSrcPin); #endif MID_DISP_Status_e MID_DISP_CheckTiming(UINT8 *pflag); MID_DISP_Status_e MID_DISP_DTVUpdateScalingSilence(Boolean bSilence); /***************************************************************************** ** FUNCTION : MID_DISP_Img_GetColorTemp ** ** DESCRIPTION : Chage the getting method of color temp ** ** PARAMETERS : ** ptr, bLevel,bSource ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_ERR_INVALID_PARAM *****************************************************************************/ MID_DISP_Status_e MID_DISP_Img_GetColorTemp(MID_DISP_ColorTemp_Set_t *ptr,UINT8 bLevel,UINT8 bSource); /***************************************************************************** ** FUNCTION : MID_DISP_DTVIsFieldType ** ** DESCRIPTION : ** ** PARAMETERS : ** ** ** RETURN VALUES: ** TRUE : interlace source ** FALSE: progressive source *****************************************************************************/ bool MID_DISP_DTVIsFieldType(void); MID_DISP_Status_e MID_DISP_DTVGetVideoMute(MID_DISP_MUTE_ST *eMuteSt); /***************************************************************************** ** FUNCTION : MID_TvDecPQ_GetStatus ** ** DESCRIPTION : ** Get TV decoder format ** ** PARAMETERS : peRetStatus, peRetFromat, peRetSource ** ** RETURN VALUES: ** MID_DTV_SUCCESS *****************************************************************************/ MID_DISP_Status_e MID_DISP_TvDecPQ_GetStatus(MID_TvDecPQFormatType_t* peRetFromat); /***************************************************************************** ** FUNCTION : MID_DISP_HDMIGetRGBRange ** ** DESCRIPTION : ** Get HDMI input Range ** ** PARAMETERS : pRange ** ** RETURN VALUES: ** MID_DTV_SUCCESS *****************************************************************************/ MID_DISP_Status_e MID_DISP_HDMIGetRGBRange(MID_HDMIRGBRange_t* pRange); #endif //__MID_ATV_DISPLAY_H MID_DISP_Status_e MID_DISP_MediaSetSource(input_type_t MediaSrc); /***************************************************************************** ** FUNCTION : MID_DISP_DTVGetInputType ** ** DESCRIPTION : ** Get current Input Type. ** ** PARAMETERS : ** *pInputType -Input Type pointer ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_FAILURE *****************************************************************************/ MID_DISP_Status_e MID_DISP_DTVGetInputType(input_type_t *pInputType); /***************************************************************************** ** FUNCTION : MID_DISP_DTVSetInputType ** ** DESCRIPTION : ** Set current Input Type. ** ** PARAMETERS : ** eInputType -Input Type value ** ** RETURN VALUES: ** MID_DTV_SUCCESS ** MID_DTV_FAILURE *****************************************************************************/ MID_DISP_Status_e MID_DISP_DTVSetInputType(input_type_t eInputType); MID_DISP_Status_e MID_DISP_DTVSetDVDSourceIndex(UINT8 bIsDVDSource); MID_DISP_Status_e MID_DISP_DTVSetNetorkSourceIndex(UINT8 bIsNetworkSource); void MID_DISP_DTVGetISRMuteStatus(VIP_VideoMuteStatus_e *peRetISRStatus); MID_DISP_Status_e MID_DISP_DTVSetHdmiRGBRange(INT16 wValue); MID_DISP_Status_e MID_DISP_DTVSetPQ_CONTRAST_LEVEL(UINT16 bLevel); MID_DISP_Status_e MID_DISP_DTVSePQ_CHROMA_LEVEL(UINT16 bLevel); MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE1(UINT8 bValue); MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE2(UINT8 bValue); MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE3(UINT8 bValue); MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE4(UINT8 bValue); MID_DISP_Status_e MID_DISP_DTVSetMonflg(UINT32 dMonflg); MID_DISP_Status_e MID_DISP_DTVSetDynamicBLType(UINT8 bLevel); #ifdef CONFIG_SUPPORT_USB_MCAST MID_DISP_Status_e MID_DISP_NetSetSource(input_type_t SrcType); #endif MID_DISP_Status_e MID_DISP_SetWindowSize(UINT8 bFullScreen, UINT32 XStart, UINT32 YStart, UINT32 XEnd, UINT32 YEnd); #ifdef CONFIG_PROJECTOR_ASPECT void MID_SetZoomPercent(INT32 HPercent, INT32 VPercent); void MID_SetZoomAspect(INT32 HPercent, INT32 VPercent); #endif #ifdef CONFIG_SUPPORT_MONITOR_POWERSAVE UINT8 MID_DISP_DTV_Get_Wakeup_Status(void); void MID_DISP_DTV_Set_Wakeup_Status(UINT8 status); #endif MID_DISP_Status_e MID_DISP_DTVGetRGBMaxMin(INT32* iRMax, INT32* iGMax, INT32* iBMax, INT32* iRMin, INT32* iGMin, INT32* iBMin); MID_DISP_Status_e MID_DISP_DTVGetYHistOverValCnt(INT32 OverValue, INT32* iConut);