mid_dtv_display.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. /*! \addtogroup display_mid Display Middleware
  2. * @{
  3. */
  4. /******************************************************************************/
  5. /**
  6. *
  7. * @file mid_display.h
  8. *
  9. * @brief This file specifies the APIs provided to control display middleware
  10. *
  11. * @note Copyright (c) 2009 Sunplus Technology Co., Ltd. \n
  12. * All rights reserved.
  13. *
  14. * @author
  15. *
  16. ******************************************************************************/
  17. #ifndef __MID_DTV_DISPLAY_H
  18. #define __MID_DTV_DISPLAY_H
  19. /*******************************************************************************
  20. * Header include
  21. ******************************************************************************/
  22. #include "types.h"
  23. #include "plf_timing_id.h"
  24. #include "mid_display.h"
  25. #include "umf_ioctl.h"
  26. #include "drv_scart.h"
  27. #include "kmf_ioctl.h"
  28. #include "vip2_ioctl.h"
  29. #include "adc_ioctl.h"
  30. #include "pq_ioctl.h"
  31. #include <drv_cvd2_external.h>
  32. #include "drv_kmf_interface.h"
  33. /*******************************************************************************
  34. * Enumerator
  35. ******************************************************************************/
  36. /**
  37. *@brief Display output format select
  38. */
  39. #define MID_PEAKING_MAX_LEVEL 20
  40. #define MID_DEINTERLACE_MAX_REGPATCH_NUM 30
  41. #define MID_GAMMA_TABLE_SIZE 1280
  42. typedef enum
  43. {
  44. MID_DISP_HDMI_PC,
  45. MID_DISP_HDMI_VIDEO,
  46. MID_DISP_HDMI_AUTO_SELECT,
  47. } MID_DISP_HDMIInputType_e;
  48. typedef enum
  49. {
  50. MID_IMG_SRC_TUNER,
  51. MID_IMG_SRC_CVBS,
  52. MID_IMG_SRC_SVIDEO,
  53. MID_IMG_SRC_YPBPR_SD,
  54. MID_IMG_SRC_YPBPR_HD,
  55. MID_IMG_SRC_RGB,
  56. MID_IMG_SRC_HDMI_SD,
  57. MID_IMG_SRC_HDMI_HD,
  58. MID_IMG_SRC_HDMI_DVI,
  59. MID_IMG_SRC_DTV_SD,
  60. MID_IMG_SRC_DTV_HD,
  61. MID_IMG_SRC_MPEG,
  62. MID_IMG_SRC_SCART_AV,
  63. MID_IMG_SRC_SCART_SV,
  64. MID_IMG_SRC_SCART_RGB,
  65. MID_IMG_SRC_MAX,
  66. } MID_DISP_ImgSrcType_e;
  67. typedef enum
  68. {
  69. MID_COLORTEMP_STD,
  70. MID_COLORTEMP_COOL,
  71. MID_COLORTEMP_WARM,
  72. MID_COLORTEMP_sRGB,
  73. MID_COLORTEMP_USER,
  74. MID_COLORTEMP_MAX
  75. } MID_DISP_ColorTempType_e;
  76. typedef enum
  77. {
  78. MID_OFF,
  79. MID_ON,
  80. MID_MAX
  81. } MID_DISP_OFFON_e;
  82. typedef enum
  83. {
  84. MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_NTSC = 0,
  85. MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_PAL,
  86. MID_VIDEO_PQ_STORE_SOURCE_TYPE_ATV_SECAM,
  87. MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_NTSC,
  88. MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_PAL,
  89. MID_VIDEO_PQ_STORE_SOURCE_TYPE_CVBS_SECAM,
  90. MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_NTSC,
  91. MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_PAL,
  92. MID_VIDEO_PQ_STORE_SOURCE_TYPE_YC_SECAM,
  93. MID_VIDEO_PQ_STORE_SOURCE_TYPE_YPBPR_SD,
  94. MID_VIDEO_PQ_STORE_SOURCE_TYPE_YPBPR_HD,
  95. MID_VIDEO_PQ_STORE_SOURCE_TYPE_PC,
  96. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_SD_16_235,
  97. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_SD_0_255,
  98. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_HD_16_235,
  99. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_HD_0_255,
  100. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_DVI_16_235,
  101. MID_VIDEO_PQ_STORE_SOURCE_TYPE_HDMI_DVI_0_255,
  102. MID_VIDEO_PQ_STORE_SOURCE_TYPE_DTV_SD,
  103. MID_VIDEO_PQ_STORE_SOURCE_TYPE_DTV_HD,
  104. MID_VIDEO_PQ_STORE_SOURCE_TYPE_MULTIMEDIA_SD,
  105. MID_VIDEO_PQ_STORE_SOURCE_TYPE_MULTIMEDIA_HD,
  106. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_NTSC,
  107. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_PAL,
  108. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_AV_SECAM,
  109. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_NTSC,
  110. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_PAL,
  111. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_SV_SECAM,
  112. MID_VIDEO_PQ_STORE_SOURCE_TYPE_SCART_RGB,
  113. MID_VIDEO_PQ_STORE_SOURCE_TYPE_DVD,
  114. MID_VIDEO_PQ_STORE_SOURCE_TYPE_DVD_HD,
  115. MID_VIDEO_PQ_STORE_SOURCE_TYPE_MAX,
  116. } MID_Video_PQ_Store_SourceType_t;
  117. typedef enum
  118. {
  119. MID_BL_OFF,
  120. MID_BL_50,
  121. MID_BL_60,
  122. MID_BL_70,
  123. MID_BL_80,
  124. MID_BL_MAX,
  125. } MID_DISP_BL_e;
  126. typedef enum
  127. {
  128. MID_NR_OFF,
  129. MID_NR_LOW,
  130. MID_NR_MIDDLE,
  131. MID_NR_HIGH,
  132. MID_NR_MAX,
  133. } MID_DISP_NR_e;
  134. typedef enum
  135. {
  136. MID_DynamicBL_OFF,
  137. MID_DynamicBL_ON,
  138. MID_DynamicBL_MAX,
  139. } MID_DISP_DynamicBL_e;
  140. typedef enum
  141. {
  142. MID_TPISNR_REGION_1,
  143. MID_TPISNR_REGION_2,
  144. MID_TPISNR_REGION_3,
  145. MID_TPISNR_REGION_MAX,
  146. } MID_TPISNR_Region_e;
  147. typedef enum
  148. {
  149. MID_DISP_MAIN_WINDOW_BORDER,
  150. MID_DISP_MULTI_WINDOW_BORDER,
  151. } MID_DISP_BorderWindow_t;
  152. typedef enum
  153. {
  154. MID_DISP_FLIP_TYPE_NO_FLIP = 0,
  155. MID_DISP_FLIP_TYPE_BOTH_H_V,
  156. MID_DISP_FLIP_TYPE_ONLY_H,
  157. MID_DISP_FLIP_TYPE_ONLY_V,
  158. MID_DISP_FLIP_TYPE_MAX,
  159. } MID_DISP_FlipType_t;
  160. typedef enum
  161. {
  162. MID_DISP_MUTE = 0,
  163. MID_DISP_UNMUTE,
  164. MID_DISP_MUTE_BY_APP,
  165. MID_DISP_MUTE_BY_TVFE,
  166. MID_DISP_MUTE_BY_VIP,
  167. }MID_DISP_MUTE_ST;
  168. typedef enum
  169. {
  170. MID_DISP_ScartOutput_FORMAT_NTSC,
  171. MID_DISP_ScartOutput_FORMAT_PAL,
  172. } MID_DISP_MointerOutputFormat_t;
  173. typedef enum
  174. {
  175. MID_DISP_CVBSOutput_SOURCE_TYPE_NULL = DRV_TvDecOUTPUT_SOURCE_TYPE_NULL,
  176. MID_DISP_CVBSOutput_SOURCE_TYPE_CVBS = DRV_TvDecOUTPUT_SOURCE_TYPE_CVBS,
  177. MID_DISP_CVBSOutput_SOURCE_TYPE_SVIDEO = DRV_TvDecOUTPUT_SOURCE_TYPE_SVIDEO,
  178. MID_DISP_CVBSOutput_SOURCE_TYPE_DTV = DRV_TvDecOUTPUT_SOURCE_TYPE_DTV,
  179. MID_DISP_CVBSOutput_SOURCE_TYPE_ATV = DRV_TvDecOUTPUT_SOURCE_TYPE_DVIF,
  180. MID_DISP_CVBSOutput_SOURCE_TYPE_CHROMA = DRV_TvDecOUTPUT_SOURCE_TYPE_CHROMA,
  181. } MID_DISP_CVBSOutputSrcType_t;
  182. typedef enum
  183. {
  184. MID_PQ_CURVE_0 = 0,
  185. MID_PQ_CURVE_25,
  186. MID_PQ_CURVE_50,
  187. MID_PQ_CURVE_75,
  188. MID_PQ_CURVE_100,
  189. }MID_PQ_CURVE_ST;
  190. /*******************************************************************************
  191. * Structure
  192. ******************************************************************************/
  193. typedef struct
  194. {
  195. MID_DISP_ImgSrcType_e eImgSrc;
  196. UINT8 bCSCLevel;
  197. UINT8 bMatrixLevel;
  198. UINT8 bColorTempLevel;
  199. UINT8 bFCLevel;
  200. UINT8 bDCLevel;
  201. UINT8 bDeRingLevel;
  202. UINT8 bDeBlockingLevel;
  203. UINT8 bTPISNRLevel;
  204. UINT8 b2DNRLevel;
  205. UINT8 b3DNRLevel;
  206. UINT8 bHPeakingLevel;
  207. UINT8 bVPeakingLevel;
  208. UINT8 bDLTILevel;
  209. UINT8 bDCTILevel;
  210. UINT8 bUVExLevel;
  211. UINT8 bUVOffSetLevel;
  212. UINT8 bSoftClipLevel;
  213. UINT8 bDeintLevel;
  214. } MID_DISP_ImgPQFunction_t;
  215. typedef enum
  216. {
  217. DISP_ASPECT_RATIO_FULL,
  218. DISP_ASPECT_RATIO_4X3,
  219. DISP_ASPECT_RATIO_16X9,
  220. DISP_ASPECT_RATIO_14X9,
  221. DISP_ASPECT_RATIO_NATIVE,
  222. DISP_ASPECT_RATIO_NATIVE_ENLARGE,
  223. DISP_ASPECT_RATIO_NONLINEAR,
  224. DISP_ASPECT_RATIO_ZOOM1,
  225. DISP_ASPECT_RATIO_ZOOM2,
  226. DISP_ASPECT_RATIO_ZOOM3,
  227. DISP_ASPECT_RATIO_ZOOM4,
  228. DISP_ASPECT_RATIO_ZOOM5,
  229. DISP_ASPECT_RATIO_ZOOM6,
  230. DISP_ASPECT_RATIO_ZOOM7,
  231. DISP_ASPECT_RATIO_ZOOM8,
  232. DISP_ASPECT_RATIO_CINEMA,
  233. DISP_ASPECT_RATIO_WIDE,
  234. DISP_ASPECT_RATIO_AUTO,
  235. #ifdef CONFIG_SUPPORT_DIVXDRM
  236. DISP_ASPECT_RATIO_DIVX,
  237. #endif
  238. DISP_ASPECT_RATIO_MAX,
  239. } DISP_Aspect_Ratio_e;
  240. typedef enum
  241. {
  242. MID_HDMIRGBDefault, //Depend on video format, check CEA-861D SPEC
  243. MID_HDMIRGBLimit,
  244. MID_HDMIRGBFull,
  245. MID_HDMIRGBReserved,
  246. } MID_HDMIRGBRange_t;
  247. typedef enum
  248. {
  249. MID_TvDecPQ_SIGNAL_STABLE,
  250. MID_TvDecPQ_SIGNAL_UNSTABLE,
  251. MID_TvDecPQ_NO_SIGNAL_IN
  252. } MID_TvDecPQSignalStatus_t;
  253. typedef enum
  254. {
  255. MID_TvDecPQFORMAT_NTSC = TVFE_TvDecFORMAT_NTSC,
  256. MID_TvDecPQFORMAT_PAL = TVFE_TvDecFORMAT_PAL,
  257. MID_TvDecPQFORMAT_PAL_M = TVFE_TvDecFORMAT_PAL_M,
  258. MID_TvDecPQFORMAT_PAL_N = TVFE_TvDecFORMAT_PAL_N,
  259. MID_TvDecPQFORMAT_SECAM = TVFE_TvDecFORMAT_SECAM,
  260. MID_TvDecPQFORMAT_NTSC_443 = TVFE_TvDecFORMAT_NTSC_443,
  261. MID_TvDecPQFORMAT_PAL_60 = TVFE_TvDecFORMAT_PAL_60,
  262. MID_TvDecPQFORMAT_AUTO = TVFE_TvDecFORMAT_AUTO,
  263. MID_TvDecPQFORMAT_UNKNOW,
  264. } MID_TvDecPQFormatType_t;
  265. typedef enum
  266. {
  267. MID_TvDecPQ_TV = 0,
  268. MID_TvDecPQ_AV,
  269. MID_TvDecPQ_SV,
  270. MID_TvDecPQ_SCART,
  271. } MID_TvDecPQSrcType_t;
  272. typedef struct
  273. {
  274. UINT16 wRGain;
  275. UINT16 wGGain;
  276. UINT16 wBGain;
  277. INT16 wROffset;
  278. INT16 wGOffset;
  279. INT16 wBOffset;
  280. } MID_DISP_ColorTemp_Set_t;
  281. typedef struct
  282. {
  283. UINT16 wVTop; //! Specify how many lines of source can be dropped from top line.
  284. UINT16 wVBottom; //! Specify how many lines of source can be dropped from bottom line.
  285. UINT16 wHLeft; //! Specify how many pixels of source can be dropped from left pixel.
  286. UINT16 wHRight; //! Specify how many pixels of source can be dropped from right pixel.
  287. } MID_Disp_overscan_st;
  288. typedef struct
  289. {
  290. PLF_VideoID_t eModeID;
  291. char *name;
  292. MID_Disp_overscan_st ratio_43;
  293. MID_Disp_overscan_st ratio_169;
  294. MID_Disp_overscan_st ratio_149;
  295. MID_Disp_overscan_st ratio_full;
  296. MID_Disp_overscan_st ratio_nonlinear;
  297. MID_Disp_overscan_st ratio_native;
  298. MID_Disp_overscan_st ratio_native_enlarge;
  299. MID_Disp_overscan_st ratio_zoom1;
  300. MID_Disp_overscan_st ratio_zoom2;
  301. MID_Disp_overscan_st ratio_cinema;
  302. void *customer_data;
  303. } MID_Disp_HDMIPCTimingTableInfo_st;
  304. typedef struct
  305. {
  306. PLF_VideoID_t eModeID;
  307. char *name;
  308. MID_Disp_overscan_st ratio_43;
  309. MID_Disp_overscan_st ratio_169;
  310. MID_Disp_overscan_st ratio_149;
  311. MID_Disp_overscan_st ratio_full;
  312. MID_Disp_overscan_st ratio_nonlinear;
  313. MID_Disp_overscan_st ratio_native;
  314. MID_Disp_overscan_st ratio_native_enlarge;
  315. MID_Disp_overscan_st ratio_zoom1;
  316. MID_Disp_overscan_st ratio_zoom2;
  317. MID_Disp_overscan_st ratio_cinema;
  318. void *customer_data;
  319. } MID_Disp_TimingTableInfo_st;
  320. typedef struct
  321. {
  322. PLF_VideoID_t eModeID;
  323. char *name;
  324. void *customer_data;
  325. } MID_Disp_PCTimingTableInfo_st;
  326. typedef enum{
  327. DISP_WINDOW1,
  328. }DISP_VomWindow_t;
  329. typedef struct
  330. {
  331. UINT8 bEn;
  332. UINT8 bCtrl;
  333. UINT8 bHGain_BP_EP;
  334. UINT8 bHGain_HP_NG;
  335. UINT8 bVGain_3T_5T;
  336. UINT8 b2DGain_BP1_BP2;
  337. UINT8 bHCoring;
  338. UINT8 bVCoring;
  339. UINT8 b2DCoring;
  340. UINT8 bXP0;
  341. UINT8 bXP1;
  342. UINT8 bXP2;
  343. UINT8 bXP3;
  344. UINT8 bYP0;
  345. UINT8 bYP1;
  346. UINT8 bYP2;
  347. UINT8 bMP1;
  348. UINT8 bMP2;
  349. UINT8 bMP12;
  350. UINT8 bPostCoring;
  351. UINT8 bPeakingStop;
  352. UINT8 b13TapGain;
  353. UINT8 b13TapFilter0;
  354. UINT8 b13TapFilter1;
  355. UINT8 b13TapFilter2;
  356. UINT8 b13TapFilter3;
  357. UINT8 b13TapFilter4;
  358. UINT8 b13TapFilter5;
  359. UINT8 b13TapFilter6;
  360. UINT8 b2DGain_HP1_HP2;
  361. } MID_DISP_ImgPeaking_t;
  362. typedef struct
  363. {
  364. UINT8 bEn;
  365. UINT8 bCtrl1;
  366. UINT8 bCtrl2;
  367. UINT8 bWeightGain;
  368. UINT8 bCoring;
  369. UINT8 bClipping;
  370. UINT8 bCbCrOffset;
  371. } MID_DISP_ImgDCTI_t;
  372. typedef struct
  373. {
  374. UINT16 wContrast;
  375. UINT16 wSaturation;
  376. UINT16 wHue;
  377. UINT16 wYBri;
  378. UINT16 wUBri;
  379. UINT16 wVBri;
  380. } MID_DISP_ColorMatrix_t;
  381. typedef enum
  382. {
  383. DISP_3D_STATUS_RESET, // Reset the 3D setting after mode change
  384. DISP_3D_STATUS_ALWAYS_ON, // Keeps the 3D setting after mode change
  385. DISP_3D_STATUS_ONLY_2D3D_ALWAYS_ON, // Only keep 2D3D on and reset the others 3D ready when mode change
  386. } DISP_3D_ModeChange_Status_t;
  387. typedef enum
  388. {
  389. DISP_3D_FORMAT_L_EYE,
  390. DISP_3D_FORMAT_R_EYE, //Force 2D mode - R Image
  391. }DISP_3D_Format_t;
  392. typedef enum
  393. {
  394. /* common status values */
  395. DISP_SUCCESS, /* successful outcome */
  396. DISP_ERR_INVALID_PARAM, /* invalid parameter */
  397. DISP_ERR_INVALID_OP, /* requested operation is invalid */
  398. DISP_ERR_MEMORY_ALLOC, /* problem allocating memory */
  399. DISP_ERR_BUFFER_UNDERFLOW, /* not enough stream data is available to decode the next video frame */
  400. DISP_ERR_RESOURCE_UNAVAILABLE, /* hardware resource is in use or otherwise unavailable */
  401. DISP_ERR_FAILURE,
  402. DISP_WARN_NO_ACTION, /* the function completed successfully, but no action was taken */
  403. DISP_WARN_PARAM_CLIPPED, /* the function completed successfully, though a parameter was clipped to within a valid range.*/
  404. DISP_WARN_BUFFER_EMPTY, /* buffer became empty before the requested amount of data could be read */
  405. DISP_WARN_BUFFER_FULL, /* buffer became full before the requested amount of data could be written */
  406. } DISP_Status_t;
  407. enum
  408. {
  409. DISP_ColorLUT_R,
  410. DISP_ColorLUT_G,
  411. DISP_ColorLUT_B,
  412. DISP_ColorLUT_Y,
  413. DISP_ColorLUT_M,
  414. DISP_ColorLUT_C,
  415. DISP_ColorLUT_FL,
  416. DISP_ColorLUT_NUM // 7
  417. };
  418. typedef struct _ColorLUTAxisMID_t
  419. {
  420. UINT8 bEnable[DISP_ColorLUT_NUM];
  421. UINT8 SatGain[DISP_ColorLUT_NUM];
  422. UINT8 YGain[DISP_ColorLUT_NUM];
  423. UINT8 RotGain[DISP_ColorLUT_NUM];
  424. UINT16 RotAngle[DISP_ColorLUT_NUM];
  425. UINT16 Reserved;
  426. }ColorLUTAxisDISP_t;
  427. typedef struct
  428. {
  429. INT16 wHStartOffset;
  430. INT16 wVStartOffset;
  431. } MID_Disp_HVStartOffset_t;
  432. enum
  433. {
  434. DISP_DYNAMIC_BL_FORMAL,
  435. DISP_DYNAMIC_BL_ENERGY_EFFICIENCY,
  436. DISP_DYNAMIC_BL_T_P,
  437. };
  438. /*******************************************************************************
  439. * vairable
  440. ******************************************************************************/
  441. /*******************************************************************************
  442. * Program
  443. ******************************************************************************/
  444. MID_DISP_Status_e MID_DISP_DTVDisplayInit(void);
  445. MID_DISP_Status_e MID_DISP_DTVGetDispAspect(DISP_Aspect_Ratio_e *eAspect, Boolean *fRefOverscan);
  446. MID_DISP_Status_e MID_DISP_DTVSetDispAspect(DISP_Aspect_Ratio_e eAspect, Boolean fRefOverscan);
  447. MID_DISP_Status_e MID_DISP_DTVSetWSSInfo(UINT8 bWSSInfo);
  448. #ifdef CONFIG_SUPPORT_3D_EN
  449. MID_DISP_Status_e MID_DISP_DTVSetInput3DStructure(VIP_InputStruct_3D_t e3DInputStrc);
  450. MID_DISP_Status_e MID_DISP_DTVSetOutput3DStructure(VIP_OutputStruct_3D_t e3DOutputStrc);
  451. MID_DISP_Status_e MID_DISP_DTVSet3DSwap(DISP_3D_Format_t e3DFormat);
  452. MID_DISP_Status_e MID_DISP_DTVSet3DDepth(INT16 e3DDepth);
  453. MID_DISP_Status_e MID_DISP_DTVSet3DModeChangeSt(DISP_3D_ModeChange_Status_t e3DModeChangeSt);
  454. MID_DISP_Status_e MID_DISP_DTVGet3DModeChangeSt(DISP_3D_ModeChange_Status_t* e3DModeChangeSt);
  455. #endif
  456. BOOL MID_DISP_DTVIsSupport3D(VIP_InputStruct_3D_t);
  457. MID_DISP_Status_e MID_DISP_DTVSetPQCurve(UINT8 CurveType, UINT8 CurvePointIdx, INT16 wValue);
  458. MID_DISP_Status_e MID_DISP_DTVSetHue(INT16 wValue);
  459. MID_DISP_Status_e MID_DISP_DTVSetSaturation(INT16 wValue);
  460. MID_DISP_Status_e MID_DISP_DTVSetContrast(INT16 wValue);;
  461. MID_DISP_Status_e MID_DISP_DTVSetBrightness(INT16 wValue);
  462. MID_DISP_Status_e MID_DISP_DTVSetSharpness(UINT8 bLevel);
  463. MID_DISP_Status_e MID_DISP_DTVSetColorTemp(MID_DISP_ColorTemp_Set_t wValue);
  464. MID_DISP_Status_e MID_DISP_DTVSetColorTempALL(MID_DISP_ColorTemp_Set_t wValue,UINT8 bGammaswitch,UINT8 bGammaIndex);
  465. MID_DISP_Status_e MID_DISP_DTVSetNR(INT8 eLevel);
  466. MID_DISP_Status_e MID_DISP_DTVSetGamma(INT8 eLevel);
  467. MID_DISP_Status_e MID_DISP_DTVSetBacklightLevel(Backlight_t BacklightSetting);
  468. void MID_DISP_DTVPrintMuteStatus();
  469. MID_DISP_Status_e MID_DISP_DTVSetVideoMute(UINT8 bR, UINT8 bG, UINT8 bB);
  470. MID_DISP_Status_e MID_DISP_DTVSetVideoUnmute(void);
  471. void MID_DISP_DTVSetMuteColor(UINT8 bR, UINT8 bG, UINT8 bB);
  472. void MID_DISP_DTVSetTVFEMuteColorByAPP(BOOL fEn);
  473. #ifdef CONFIG_QSD
  474. MID_DISP_Status_e MID_DISP_DTVSetMTMute(UINT8 bR, UINT8 bG, UINT8 bB);
  475. void MID_DISP_DTVSetMTMuteColor(UINT8 bR, UINT8 bG, UINT8 bB);
  476. MID_DISP_Status_e MID_DISP_DTVSetMTUnmute(void);
  477. #endif
  478. MID_DISP_Status_e MID_DISP_DTVSetMointerMode(BOOL fMirEn, MID_DISP_MointerOutputFormat_t bFormat, BOOL fOSDEn);
  479. /******************************************************************************/
  480. /**
  481. * @brief Select CVBS Output source
  482. *
  483. * @param eChannel Specify the path of source
  484. * @param *peType Specify the source of type
  485. * @param *pConfig Specify the source of pin configuration
  486. *
  487. * @return MID_DISP_Status_e Middwares Standard Return
  488. * @retval MIDDISP_SUCCESS if successful
  489. * @retval MIDDISP_ERR_FAILURE if eChannel is not available in this chip or handler isn't registered
  490. *
  491. ******************************************************************************/
  492. MID_DISP_Status_e MID_DISP_DTVSetCVBSOutputSource(MID_DISP_CVBSOutputSrcType_t pCurrSrc, Boolean bMute);
  493. /*****************************************************************************
  494. ** FUNCTION : MID_DISP_DTVBlankingCVBSOutput
  495. **
  496. ** DESCRIPTION : Blanking CVBS signal on DTV source
  497. ** PARAMETERS :
  498. ** TRUE for masking displayed picture(by setting mask window to show background color);
  499. ** FALSE for normal display(by setting mask window to show normal display).
  500. **
  501. ** RETURN VALUES:
  502. ** MID_DTV_SUCCESS
  503. ** MID_DTV_ERR_INVALID_PARAM
  504. *****************************************************************************/
  505. MID_DISP_Status_e MID_DISP_DTVBlankingCVBSOutput(Boolean bBlanking);
  506. MID_DISP_Status_e MID_DISP_DTVSetPause(Boolean bEnable);
  507. MID_DISP_Status_e MID_DISP_DTVGetPause(Boolean* pbEnable);
  508. MID_DISP_Status_e MID_DISP_DTVGetTimingInfo(PMID_InputInfo_t peRetTimingInfo);
  509. MID_DISP_Status_e MID_DISP_DTVSetCropWindowHStartOffset(INT16 wHStartPosition, INT16 sbOffset);
  510. MID_DISP_Status_e MID_DISP_DTVSetCropWindowVStartOffset(INT16 wVStartPosition, INT16 sbOffset);
  511. MID_DISP_Status_e MID_DISP_DTVSetCVD2HActiveStart(UINT16 wValue);
  512. MID_DISP_Status_e MID_DISP_DTVSetCVD2VActiveStart(UINT8 wValue);
  513. MID_DISP_Status_e MID_DISP_DTVSetOverscan(Boolean fOverscanEn, UINT16 wVTop, UINT16 wVBottom, UINT16 wHLeft, UINT16 wHRight);
  514. MID_DISP_Status_e MID_DISP_DTVGetOverscan(UINT8 *fOverscanEn, UINT16 *wVTop, UINT16 *wVBottom, UINT16 *wHLeft, UINT16 *wHRight, BOOL *fUnitByRatio);
  515. MID_DISP_Status_e MID_DISP_DTVSetExtsInpuwWin(UINT16 usHStart, UINT16 usHEnd, UINT16 usVStart, UINT16 usVEnd);
  516. MID_DISP_Status_e MID_DISP_DTVGetExtsInpuwWin(UINT16* usHStart, UINT16* usHEnd, UINT16* usVStart, UINT16* usVEnd);
  517. MID_DISP_Status_e MID_DISP_DTVSetHDMIScreenMode(VIP_HDMI_ScreenMode eMode);
  518. MID_DISP_Status_e MID_DISP_DTVGetPanelResolution(UINT32 *dWidth, UINT32 *dHeight);
  519. MID_DISP_Status_e MID_DISP_Zoom_GetSrcOriResolution(UINT16 *dWidth, UINT16 *dHeight);
  520. MID_DISP_Status_e MID_DISP_Zoom_SetSrcResolution(BOOL en, UINT16 x, UINT16 y, UINT16 dWidth, UINT16 dHeight);
  521. MID_DISP_Status_e MID_DISP_Zoom_SetDispResolution(BOOL en, UINT16 x, UINT16 y, UINT16 dWidth, UINT16 dHeight);
  522. MID_DISP_Status_e MID_DISP_DTVGetYAvg(UINT32* YAvg);
  523. /*****************************************************************************
  524. ** FUNCTION : MID_DISP_DTVSetFlip
  525. **
  526. ** DESCRIPTION :
  527. ** Set H/V flip (Used in system initialize). Flip will happen when source change
  528. **
  529. ** PARAMETERS :
  530. ** eFlipType MID_DISP_FLIP_TYPE_ONLY_H H flip
  531. ** MID_DISP_FLIP_TYPE_ONLY_V V flip
  532. ** MID_DISP_FLIP_TYPE_BOTH_H_V H and V flip
  533. ** MID_DISP_FLIP_TYPE_NO_FLIP Do not flip
  534. **
  535. ** RETURN VALUES:
  536. ** MID_DTV_SUCCESS
  537. ** MID_DTV_FAILURE
  538. *****************************************************************************/
  539. MID_DISP_Status_e MID_DISP_DTVSetFlip(MID_DISP_FlipType_t eFlipType);
  540. MID_DISP_Status_e MID_DISP_DTVGetFlip(MID_DISP_FlipType_t *eFlipType);
  541. /*****************************************************************************
  542. ** FUNCTION : MID_DISP_GetSource
  543. **
  544. ** DESCRIPTION :
  545. ** Changing source.
  546. **
  547. ** PARAMETERS :
  548. ** TblIdx -Src table index
  549. **
  550. ** RETURN VALUES:
  551. ** MID_DTV_SUCCESS
  552. ** MID_DTV_FAILURE
  553. *****************************************************************************/
  554. MID_DISP_Status_e MID_DISP_DTVGetSource(SRCTYPE_t *pSrc);
  555. /*****************************************************************************
  556. ** FUNCTION : MID_DISP_SetSourceEx
  557. **
  558. ** DESCRIPTION :
  559. ** Changing source with aspect ratio and callback function.
  560. **
  561. ** PARAMETERS :
  562. ** pCurrSrc -Src table ptr
  563. ** pFunc PCB AV routing
  564. **
  565. ** RETURN VALUES:
  566. ** MID_DTV_SUCCESS
  567. ** MID_DTV_FAILURE
  568. *****************************************************************************/
  569. #ifdef CONFIG_SCART_SUPPORT
  570. MID_DISP_Status_e MID_DISP_DTVSetSourceEx(InputSrc_t CurrSrc, DRV_ScartSrcType_t ScartIn, InputVideoConf_st CurrSrcPin);
  571. #else
  572. MID_DISP_Status_e MID_DISP_DTVSetSourceEx(InputSrc_t CurrSrc, InputVideoConf_st CurrSrcPin);
  573. #endif
  574. MID_DISP_Status_e MID_DISP_CheckTiming(UINT8 *pflag);
  575. MID_DISP_Status_e MID_DISP_DTVUpdateScalingSilence(Boolean bSilence);
  576. /*****************************************************************************
  577. ** FUNCTION : MID_DISP_Img_GetColorTemp
  578. **
  579. ** DESCRIPTION : Chage the getting method of color temp
  580. **
  581. ** PARAMETERS :
  582. ** ptr, bLevel,bSource
  583. **
  584. ** RETURN VALUES:
  585. ** MID_DTV_SUCCESS
  586. ** MID_DTV_ERR_INVALID_PARAM
  587. *****************************************************************************/
  588. MID_DISP_Status_e MID_DISP_Img_GetColorTemp(MID_DISP_ColorTemp_Set_t *ptr,UINT8 bLevel,UINT8 bSource);
  589. /*****************************************************************************
  590. ** FUNCTION : MID_DISP_DTVIsFieldType
  591. **
  592. ** DESCRIPTION :
  593. **
  594. ** PARAMETERS :
  595. **
  596. **
  597. ** RETURN VALUES:
  598. ** TRUE : interlace source
  599. ** FALSE: progressive source
  600. *****************************************************************************/
  601. bool MID_DISP_DTVIsFieldType(void);
  602. MID_DISP_Status_e MID_DISP_DTVGetVideoMute(MID_DISP_MUTE_ST *eMuteSt);
  603. /*****************************************************************************
  604. ** FUNCTION : MID_TvDecPQ_GetStatus
  605. **
  606. ** DESCRIPTION :
  607. ** Get TV decoder format
  608. **
  609. ** PARAMETERS : peRetStatus, peRetFromat, peRetSource
  610. **
  611. ** RETURN VALUES:
  612. ** MID_DTV_SUCCESS
  613. *****************************************************************************/
  614. MID_DISP_Status_e MID_DISP_TvDecPQ_GetStatus(MID_TvDecPQFormatType_t* peRetFromat);
  615. /*****************************************************************************
  616. ** FUNCTION : MID_DISP_HDMIGetRGBRange
  617. **
  618. ** DESCRIPTION :
  619. ** Get HDMI input Range
  620. **
  621. ** PARAMETERS : pRange
  622. **
  623. ** RETURN VALUES:
  624. ** MID_DTV_SUCCESS
  625. *****************************************************************************/
  626. MID_DISP_Status_e MID_DISP_HDMIGetRGBRange(MID_HDMIRGBRange_t* pRange);
  627. #endif //__MID_ATV_DISPLAY_H
  628. MID_DISP_Status_e MID_DISP_MediaSetSource(input_type_t MediaSrc);
  629. /*****************************************************************************
  630. ** FUNCTION : MID_DISP_DTVGetInputType
  631. **
  632. ** DESCRIPTION :
  633. ** Get current Input Type.
  634. **
  635. ** PARAMETERS :
  636. ** *pInputType -Input Type pointer
  637. **
  638. ** RETURN VALUES:
  639. ** MID_DTV_SUCCESS
  640. ** MID_DTV_FAILURE
  641. *****************************************************************************/
  642. MID_DISP_Status_e MID_DISP_DTVGetInputType(input_type_t *pInputType);
  643. /*****************************************************************************
  644. ** FUNCTION : MID_DISP_DTVSetInputType
  645. **
  646. ** DESCRIPTION :
  647. ** Set current Input Type.
  648. **
  649. ** PARAMETERS :
  650. ** eInputType -Input Type value
  651. **
  652. ** RETURN VALUES:
  653. ** MID_DTV_SUCCESS
  654. ** MID_DTV_FAILURE
  655. *****************************************************************************/
  656. MID_DISP_Status_e MID_DISP_DTVSetInputType(input_type_t eInputType);
  657. MID_DISP_Status_e MID_DISP_DTVSetDVDSourceIndex(UINT8 bIsDVDSource);
  658. MID_DISP_Status_e MID_DISP_DTVSetNetorkSourceIndex(UINT8 bIsNetworkSource);
  659. void MID_DISP_DTVGetISRMuteStatus(VIP_VideoMuteStatus_e *peRetISRStatus);
  660. MID_DISP_Status_e MID_DISP_DTVSetHdmiRGBRange(INT16 wValue);
  661. MID_DISP_Status_e MID_DISP_DTVSetPQ_CONTRAST_LEVEL(UINT16 bLevel);
  662. MID_DISP_Status_e MID_DISP_DTVSePQ_CHROMA_LEVEL(UINT16 bLevel);
  663. MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE1(UINT8 bValue);
  664. MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE2(UINT8 bValue);
  665. MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE3(UINT8 bValue);
  666. MID_DISP_Status_e MID_DISP_DTVSetPQ_ALPHA_MODE4(UINT8 bValue);
  667. MID_DISP_Status_e MID_DISP_DTVSetMonflg(UINT32 dMonflg);
  668. MID_DISP_Status_e MID_DISP_DTVSetDynamicBLType(UINT8 bLevel);
  669. #ifdef CONFIG_SUPPORT_USB_MCAST
  670. MID_DISP_Status_e MID_DISP_NetSetSource(input_type_t SrcType);
  671. #endif
  672. MID_DISP_Status_e MID_DISP_SetWindowSize(UINT8 bFullScreen, UINT32 XStart, UINT32 YStart, UINT32 XEnd, UINT32 YEnd);
  673. #ifdef CONFIG_PROJECTOR_ASPECT
  674. void MID_SetZoomPercent(INT32 HPercent, INT32 VPercent);
  675. void MID_SetZoomAspect(INT32 HPercent, INT32 VPercent);
  676. #endif
  677. #ifdef CONFIG_SUPPORT_MONITOR_POWERSAVE
  678. UINT8 MID_DISP_DTV_Get_Wakeup_Status(void);
  679. void MID_DISP_DTV_Set_Wakeup_Status(UINT8 status);
  680. #endif
  681. MID_DISP_Status_e MID_DISP_DTVGetRGBMaxMin(INT32* iRMax, INT32* iGMax, INT32* iBMax, INT32* iRMin, INT32* iGMin, INT32* iBMin);
  682. MID_DISP_Status_e MID_DISP_DTVGetYHistOverValCnt(INT32 OverValue, INT32* iConut);