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