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