xref: /utopia/UTPA2-700.0.x/mxlib/include/apiXC_DWIN_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include "drvXC_IOPort.h"
2 #include "apiXC.h"
3 #include "apiXC_DWIN.h"
4 #include "UFO.h"
5 
6 typedef enum {
7     DIP_TRIG_OFF,
8     DIP_TRIG_ON,
9     DIP_TRIG_ONESHOT,
10     DIP_TRIG_ONESHOTFAST,
11     DIP_TRIG_RESET,
12 }eDipTriggerMode;
13 
14 typedef enum {
15     DIP_INTR_DISABLE,
16     DIP_INTR_ENABLE,
17     DIP_INTR_GET,
18     DIP_INTR_CLEAR,
19     DIP_INTR_ATTACH,
20     DIP_INTR_DETACH,
21 }eDipInterruptAct;
22 
23 typedef enum {
24     DIP_PRO_NONE        = 0x000000000,
25     DIP_PRO_SCANMODE    = 0x000000001,
26     DIP_PRO_DATAFMT     = 0x000000002,
27     DIP_PRO_R2Y         = 0x000000004,
28     DIP_PRO_Y2R         = 0x000000008,
29     DIP_PRO_SWAPUV      = 0x000000010,
30     DIP_PRO_SWAPYC      = 0x000000020,
31     DIP_PRO_SWAPRGB     = 0x000000040,
32     DIP_PRO_INTERLACE_W = 0x000000080,
33     DIP_PRO_ALPHA       = 0x000000100,
34     DIP_PRO_FRC         = 0x000000200,
35     DIP_PRO_OP_CAPTURE  = 0x000000400,
36     DIP_PRO_MIRROR      = 0x000000800,
37     DIP_PRO_PINPON      = 0x000001000,
38     DIP_PRO_ROTATION    = 0x000002000,
39     DIP_PRO_HVSP        = 0x000004000,
40     DIP_PRO_TILEBLOCK   = 0x000008000,
41 }eDipPropertyflag;
42 
43 typedef enum {
44     E_DIP_SET_DIPR_NORMAL,
45     E_DIP_SET_DIPR_EX,
46 }EN_DIP_Diprflag;
47 
48 typedef enum {
49     MDrv_CMD_DIP_INIT,
50     MDrv_CMD_DIP_GET_RESOURCE,
51     MDrv_CMD_DIP_RELEASE_RESOURCE,
52     MDrv_CMD_DIP_QUERY_RESOURCE,
53     MDrv_CMD_DIP_SET_INPUTSOURCE,
54     MDrv_CMD_DIP_SET_WINDOW,
55     MDrv_CMD_DIP_SET_WINPROPERTY,
56     MDrv_CMD_DIP_SET_PROPERTY,
57     MDrv_CMD_DIP_GET_BUFINFO,
58     MDrv_CMD_DIP_INTERRUPT,
59 #if defined(UFO_PUBLIC_HEADER_700)
60     MDrv_CMD_DIP_INTERRUPT_CB,
61 #endif
62     MDrv_CMD_DIP_TRIGGER,
63     MDrv_CMD_DIP_SET_DIPR_PROPERTY,
64     MDrv_CMD_DIP_CMDQ_SETACTION,
65     MDrv_CMD_DIP_CMDQ_SETOPERATIONS,
66     MDrv_CMD_DIP_SET_DBG_LEVEL = 0x100,
67     MDrv_CMD_DIP_GET_RES_BY_PIPE = 0x200,
68     MDrv_CMD_DIP_CONFIG_PIPE = 0x201,
69     MDrv_CMD_DIP_CHECK_PIPE = 0x202,
70 } eDipIoctlOpt;
71 
72 typedef struct DLL_PACKED
73 {
74     MS_BOOL bFrameRateCtrl;
75     MS_U16 u16In;
76     MS_U16 u16Out;
77 } ST_XC_DIP_FRC;
78 
79 typedef struct DLL_PACKED
80 {
81     MS_BOOL bSwap;
82     EN_XC_DIP_RGB_SWAP_TYPE eSwapType;
83 } ST_XC_DIP_SWAPRGB;
84 
85 typedef struct DLL_PACKED
86 {
87     MS_BOOL bOpCapture;
88     EN_XC_DIP_OP_CAPTURE eOpCapture;
89 } ST_XC_DIP_OP_CAPTURE;
90 
91 typedef struct DLL_PACKED
92 {
93     MS_BOOL bHMirror;
94     MS_BOOL bVMirror;
95 } ST_XC_DIP_MIRROR;
96 
97 typedef struct DLL_PACKED
98 {
99     MS_BOOL bPinpon;
100     MS_PHY u32PinponAddr;
101 } ST_XC_DIP_PINPON;
102 
103 typedef struct DLL_PACKED
104 {
105     MS_BOOL bRotation;
106     EN_XC_DIP_ROTATION eRoDirection;
107 } ST_XC_DIP_ROTATION;
108 
109 typedef struct DLL_PACKED
110 {
111     EN_XC_DIP_SCAN_MODE eScanMode;
112     EN_XC_DIP_DATA_FMT eDataFmt;
113     ST_XC_DIP_OP_CAPTURE stOpCapture;
114     ST_XC_DIP_SWAPRGB stSwapRGB;
115     ST_XC_DIP_MIRROR stMirror;
116     ST_XC_DIP_FRC stFrameRateControl;
117     ST_XC_DIP_PINPON stPinpon;
118     ST_XC_DIP_ROTATION stRotation;
119     MS_BOOL bSwapUV;
120     MS_BOOL bSwapYC;
121     MS_BOOL bR2Y;
122     MS_BOOL bY2R;
123     MS_BOOL bInterlaceW;
124     MS_U8 u8Alpha;
125 #if defined(UFO_PUBLIC_HEADER_500_3) || defined(UFO_PUBLIC_HEADER_700) || defined(UFO_PUBLIC_HEADER_500)
126     MS_BOOL bHVSP;
127 #endif
128 #if defined(UFO_PUBLIC_HEADER_300)|| defined(UFO_PUBLIC_HEADER_500_3) || defined(UFO_PUBLIC_HEADER_700) || defined(UFO_PUBLIC_HEADER_500)
129     EN_XC_DIP_TILE_BLOCK eTileBlock;
130 #endif
131 }ST_XC_DIP_PROPERTY;
132 
133 typedef struct DLL_PACKED _DIP_RESOURCE
134 {
135     SCALER_DIP_WIN eWindow;
136 }DIP_RESOURCE;
137 
138 typedef struct DLL_PACKED _DIP_INPUT_SOURCE
139 {
140     INPUT_SOURCE_TYPE_t SrcPath;
141 }DIP_INPUT_SOURCE;
142 
143 typedef struct DLL_PACKED _DIP_SET_WINDOW
144 {
145     MS_U32 u32DataLen;
146     XC_SETWIN_INFO WinInfo;
147 	SCALER_DIP_WIN eWindow;
148 }DIP_SET_WINDOW;
149 
150 typedef struct DLL_PACKED _DIP_SET_PROPERTY
151 {
152     eDipPropertyflag eFlag;
153     ST_XC_DIP_PROPERTY Property;
154 	SCALER_DIP_WIN eWindow;
155 }DIP_SET_PROPERTY;
156 
157 typedef struct DLL_PACKED _DIP_SET_WIN_PROPERTY
158 {
159     ST_XC_DIP_WINPROPERTY WinProperty;
160 	SCALER_DIP_WIN eWindow;
161 }DIP_SET_WIN_PROPERTY;
162 
163 typedef struct DLL_PACKED _DIP_BUF_INFO
164 {
165     BUFFER_INFO BufInfo;
166 	SCALER_DIP_WIN eWindow;
167 }DIP_BUF_INFO;
168 
169 typedef struct DLL_PACKED _DIP_INTER_STUS
170 {
171     eDipInterruptAct eFlag;
172     MS_U16 IntrStautus;
173 #if defined(UFO_PUBLIC_HEADER_212) ||defined(UFO_PUBLIC_HEADER_500_3) || defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_500)
174     InterruptCb pIntCb;
175 #endif
176 	SCALER_DIP_WIN eWindow;
177 }DIP_INTER_STUS;
178 
179 typedef struct DLL_PACKED _DIP_INTER_CB
180 {
181     eDipInterruptAct eFlag;
182     InterruptCb pIntCb;
183 	SCALER_DIP_WIN eWindow;
184 }DIP_INTER_CB;
185 
186 typedef struct DLL_PACKED _DIP_TRIGGER_MODE
187 {
188     eDipTriggerMode eTrigMode;
189 	SCALER_DIP_WIN eWindow;
190 }DIP_TRIGGER_MODE;
191 
192 typedef struct DLL_PACKED _DIP_SET_DIPR_PROPERTY
193 {
194     ST_XC_DIPR_PROPERTY DIPRProperty;
195 	SCALER_DIP_WIN eWindow;
196 }DIP_SET_DIPR_PROPERTY;
197 
198 typedef struct DLL_PACKED _DIP_SET_DIPR_PROPERTY_EX
199 {
200     ST_XC_DIPR_PROPERTY_EX stDIPRProperty_ex;
201     EN_DIP_Diprflag enDIPRFlag;
202     SCALER_DIP_WIN eWindow;
203 }DIP_SET_DIPR_PROPERTY_EX;
204 
205 typedef struct _DIP_CMDQ_SET_ACTION
206 {
207     SCALER_DIP_WIN eWindow;
208     EN_XC_DIP_CMDQ_ACTION eAction;
209 }DIP_CMDQ_SET_ACTION;
210 
211 typedef struct DLL_PACKED _DIP_CMDQ_SET_OPERATIONS
212 {
213     cmd_mload_utopia_interface *pOps;
214     MS_BOOL bEnable;
215     SCALER_DIP_WIN eWindow;
216 }DIP_CMDQ_SET_OPERATIONS;
217 
218