1*53ee8cc1Swenshuai.xi #include "drvVBI.h" 2*53ee8cc1Swenshuai.xi #include "drvDMX_TTX.h" 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi enum 5*53ee8cc1Swenshuai.xi { 6*53ee8cc1Swenshuai.xi VBI_POOL_ID_VBI0 = 0, 7*53ee8cc1Swenshuai.xi VBI_POOL_ID_VBI1 = 1, 8*53ee8cc1Swenshuai.xi } eVBIPoolID; 9*53ee8cc1Swenshuai.xi 10*53ee8cc1Swenshuai.xi enum { 11*53ee8cc1Swenshuai.xi // VBI Teletext 12*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_RingBuffer_Reset = 0, 13*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_RegisterCB, 14*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_InitializeTTXSlicer, 15*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_EnableTTXSlicer, 16*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_IsVPS_Ready, 17*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_IsTTX_Ready, 18*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_IsWSS_Ready, 19*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_GetWSS_Data, 20*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_GetVPS_Data, 21*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_SetVideoStandard, 22*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_PacketBufferIsEmpty, 23*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_CheckCircuitReady, 24*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_GetPacketCount, 25*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_GetPackets, 26*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_GetPacket, 27*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_PacketBufferIsOverflow, 28*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_PacketBufferGetNoOfOverflows, 29*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_TTX_EnableLine, 30*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_WSS_SetVpsByteNum, 31*53ee8cc1Swenshuai.xi 32*53ee8cc1Swenshuai.xi // VBI CC 33*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_InitSlicer = 100, 34*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_InitYPbYr, 35*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_SetDataRate, 36*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_GetInfo, 37*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_SetFrameCnt, 38*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_EnableSlicer, 39*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_EnableLine, 40*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_SetSCWindowLen, 41*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_CC_SetVideoStandard, 42*53ee8cc1Swenshuai.xi 43*53ee8cc1Swenshuai.xi // DMX Teletext 44*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_RingBuffer_Reset = 200, 45*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_Init, 46*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_SetFilterID, 47*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_SetCB, 48*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_PacketBufferIsEmpty, 49*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_GetPackets, 50*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_GetPacket, 51*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_PacketBufferIsOverflow, 52*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_PacketBufferGetNoOfOverflows, 53*53ee8cc1Swenshuai.xi MDrv_CMD_DMX_TTX_Exit, 54*53ee8cc1Swenshuai.xi 55*53ee8cc1Swenshuai.xi // MISC 56*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_ObtainEng = 300, 57*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_ReleaseEng, 58*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_QueryCap, 59*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_GetLibVer, 60*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_GetInfo, 61*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_GetStatus, 62*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_SetDbgLevel, 63*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_Init, 64*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_SyncMemory, 65*53ee8cc1Swenshuai.xi MDrv_CMD_VBI_Exit, 66*53ee8cc1Swenshuai.xi } eVBIIoctlOpt; 67*53ee8cc1Swenshuai.xi 68*53ee8cc1Swenshuai.xi typedef struct _VBI_BOOL 69*53ee8cc1Swenshuai.xi { 70*53ee8cc1Swenshuai.xi MS_BOOL bCheck; 71*53ee8cc1Swenshuai.xi } VBI_BOOL, *PVBI_BOOL; 72*53ee8cc1Swenshuai.xi 73*53ee8cc1Swenshuai.xi typedef struct _VBI_GET_DATA 74*53ee8cc1Swenshuai.xi { 75*53ee8cc1Swenshuai.xi MS_U16 data; 76*53ee8cc1Swenshuai.xi } VBI_GET_DATA, *PVBI_GET_DATA; 77*53ee8cc1Swenshuai.xi 78*53ee8cc1Swenshuai.xi //------------------------------------------------------------- 79*53ee8cc1Swenshuai.xi 80*53ee8cc1Swenshuai.xi typedef struct _VBI_GETLIBVER 81*53ee8cc1Swenshuai.xi { 82*53ee8cc1Swenshuai.xi const MSIF_Version **ppVersion; 83*53ee8cc1Swenshuai.xi } VBI_GETLIBVER_PARAM, *PVBI_GETLIBVER; 84*53ee8cc1Swenshuai.xi 85*53ee8cc1Swenshuai.xi typedef struct _VBI_GETINFO 86*53ee8cc1Swenshuai.xi { 87*53ee8cc1Swenshuai.xi MS_U8 u8NoInfo; 88*53ee8cc1Swenshuai.xi } VBI_GETINFO_PARAM, *PVBI_GETINFO_PARAM; 89*53ee8cc1Swenshuai.xi 90*53ee8cc1Swenshuai.xi typedef struct _GETSTATUS 91*53ee8cc1Swenshuai.xi { 92*53ee8cc1Swenshuai.xi VBI_DrvStatus *pDrvStatus; 93*53ee8cc1Swenshuai.xi } VBI_GETSTATUS_PARAM, *PVBI_GETSTATUS; 94*53ee8cc1Swenshuai.xi 95*53ee8cc1Swenshuai.xi typedef struct _VBI_SETDBGLEVEL 96*53ee8cc1Swenshuai.xi { 97*53ee8cc1Swenshuai.xi MS_U16 u16DbgSwitch; 98*53ee8cc1Swenshuai.xi } VBI_SETDBGLEVEL_PARAM, *PVBI_SETDBGLEVEL; 99*53ee8cc1Swenshuai.xi 100*53ee8cc1Swenshuai.xi typedef struct _VBI_CMD 101*53ee8cc1Swenshuai.xi { 102*53ee8cc1Swenshuai.xi EN_VBI_CMD cmd; 103*53ee8cc1Swenshuai.xi } VBI_CMD, *PVBI_CMD; 104*53ee8cc1Swenshuai.xi 105*53ee8cc1Swenshuai.xi typedef struct _VBI_INIT_TYPE 106*53ee8cc1Swenshuai.xi { 107*53ee8cc1Swenshuai.xi EN_VBI_CMD cmd; 108*53ee8cc1Swenshuai.xi VBI_INIT_TYPE type; 109*53ee8cc1Swenshuai.xi } VBI_INIT_TYPE_PARAM, *PVBI_INIT_TYPE; 110*53ee8cc1Swenshuai.xi 111*53ee8cc1Swenshuai.xi typedef struct _DMX_TTX_CMD 112*53ee8cc1Swenshuai.xi { 113*53ee8cc1Swenshuai.xi EN_VBI_CMD cmd; 114*53ee8cc1Swenshuai.xi } DMX_TTX_CMD, *PDMX_TTX_CMD; 115*53ee8cc1Swenshuai.xi 116*53ee8cc1Swenshuai.xi typedef struct _VBI_REGISTER_CB 117*53ee8cc1Swenshuai.xi { 118*53ee8cc1Swenshuai.xi VBI_CB_FN pFN; 119*53ee8cc1Swenshuai.xi MS_PHY bufferAddr; 120*53ee8cc1Swenshuai.xi MS_U32 length; 121*53ee8cc1Swenshuai.xi } VBI_REGISTER_CB, *PVBI_REGISTER_CB; 122*53ee8cc1Swenshuai.xi 123*53ee8cc1Swenshuai.xi typedef struct _VBI_INITIALIZER_TTX_SLICER 124*53ee8cc1Swenshuai.xi { 125*53ee8cc1Swenshuai.xi EN_VBI_CMD cmd; 126*53ee8cc1Swenshuai.xi MS_PHY bufferAddr; 127*53ee8cc1Swenshuai.xi MS_U16 packetCount; 128*53ee8cc1Swenshuai.xi } VBI_INITIALIZER_TTX_SLICER, *PVBI_INITIALIZER_TTX_SLICER; 129*53ee8cc1Swenshuai.xi 130*53ee8cc1Swenshuai.xi typedef struct _VBI_ENABLE_TTX_SLICER 131*53ee8cc1Swenshuai.xi { 132*53ee8cc1Swenshuai.xi MS_BOOL bEnable; 133*53ee8cc1Swenshuai.xi } VBI_ENABLE_TTX_SLICER, *PVBI_ENABLE_TTX_SLICER, VBI_CC_ENABLE_SLICER, *PVBI_CC_ENABLE_SLICER; 134*53ee8cc1Swenshuai.xi 135*53ee8cc1Swenshuai.xi typedef struct _VBI_GET_VPS_DATA 136*53ee8cc1Swenshuai.xi { 137*53ee8cc1Swenshuai.xi MS_U8 *lowerWord; 138*53ee8cc1Swenshuai.xi MS_U8 *higherWord; 139*53ee8cc1Swenshuai.xi } VBI_GET_VPS_DATA, *PVBI_GET_VPS_DATA; 140*53ee8cc1Swenshuai.xi 141*53ee8cc1Swenshuai.xi typedef struct _VBI_SET_VIDEO_STANDARD 142*53ee8cc1Swenshuai.xi { 143*53ee8cc1Swenshuai.xi VBI_VIDEO_STANDARD eStandard; 144*53ee8cc1Swenshuai.xi MS_BOOL bRet; 145*53ee8cc1Swenshuai.xi } VBI_SET_VIDEO_STANDARD, *PVBI_SET_VIDEO_STANDARD; 146*53ee8cc1Swenshuai.xi 147*53ee8cc1Swenshuai.xi 148*53ee8cc1Swenshuai.xi typedef struct _VBI_TTX_GET_PACKETS 149*53ee8cc1Swenshuai.xi { 150*53ee8cc1Swenshuai.xi MS_PHY dataAddr; 151*53ee8cc1Swenshuai.xi MS_U32 *length; 152*53ee8cc1Swenshuai.xi } VBI_TTX_GET_PACKETS, *PVBI_TTX_GET_PACKETS; 153*53ee8cc1Swenshuai.xi 154*53ee8cc1Swenshuai.xi typedef struct _VBI_TTX_GET_PACKET 155*53ee8cc1Swenshuai.xi { 156*53ee8cc1Swenshuai.xi MS_PHY *packetAddress; 157*53ee8cc1Swenshuai.xi } VBI_TTX_GET_PACKET, *PVBI_TTX_GET_PACKET; 158*53ee8cc1Swenshuai.xi 159*53ee8cc1Swenshuai.xi typedef struct _VBI_TTX_ENABLE_LINE 160*53ee8cc1Swenshuai.xi { 161*53ee8cc1Swenshuai.xi MS_U16 StartLine; 162*53ee8cc1Swenshuai.xi MS_U16 EndLine; 163*53ee8cc1Swenshuai.xi } VBI_TTX_ENABLE_LINE, *PVBI_TTX_ENABLE_LINE; 164*53ee8cc1Swenshuai.xi 165*53ee8cc1Swenshuai.xi typedef struct _VBI_SYNC_MEMORY 166*53ee8cc1Swenshuai.xi { 167*53ee8cc1Swenshuai.xi MS_U32 u32Start; 168*53ee8cc1Swenshuai.xi MS_U32 u32Size; 169*53ee8cc1Swenshuai.xi } VBI_SYNC_MEMORY, *PVBI_SYNC_MEMORY; 170*53ee8cc1Swenshuai.xi 171*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_INIT_SLICER 172*53ee8cc1Swenshuai.xi { 173*53ee8cc1Swenshuai.xi MS_VIRT u32RiuAddr; 174*53ee8cc1Swenshuai.xi MS_PHY bufferAddr; 175*53ee8cc1Swenshuai.xi MS_U16 packetCount; 176*53ee8cc1Swenshuai.xi } VBI_CC_INIT_SLICER, *PVBI_CC_INIT_SLICER; 177*53ee8cc1Swenshuai.xi 178*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_INIT_YPBYR 179*53ee8cc1Swenshuai.xi { 180*53ee8cc1Swenshuai.xi MS_U8 cvbs_no; 181*53ee8cc1Swenshuai.xi } VBI_CC_INIT_YPBYR, *PVBI_CC_INIT_YPBYR; 182*53ee8cc1Swenshuai.xi 183*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_SETDATARATE 184*53ee8cc1Swenshuai.xi { 185*53ee8cc1Swenshuai.xi MS_U8 *ptable; 186*53ee8cc1Swenshuai.xi } VBI_CC_SETDATARATE, *PVBI_CC_SETDATARATE; 187*53ee8cc1Swenshuai.xi 188*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_GETINFO 189*53ee8cc1Swenshuai.xi { 190*53ee8cc1Swenshuai.xi MS_U32 selector; 191*53ee8cc1Swenshuai.xi MS_U32 info; 192*53ee8cc1Swenshuai.xi } VBI_CC_GETINFO, *PVBI_CC_GETINFO; 193*53ee8cc1Swenshuai.xi 194*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_SET_FRAMECNT 195*53ee8cc1Swenshuai.xi { 196*53ee8cc1Swenshuai.xi MS_U8 cnt; 197*53ee8cc1Swenshuai.xi } VBI_CC_SET_FRAMECNT, *PVBI_CC_SET_FRAMECNT, VBI_VBI_WSS_VPSBYTENUM, *PVBI_VBI_WSS_VPSBYTENUM; 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_ENABLE_LINE 200*53ee8cc1Swenshuai.xi { 201*53ee8cc1Swenshuai.xi MS_U16 StartLine; 202*53ee8cc1Swenshuai.xi MS_U16 EndLine; 203*53ee8cc1Swenshuai.xi MS_U8 mode; 204*53ee8cc1Swenshuai.xi } VBI_CC_ENABLE_LINE, *PVBI_CC_ENABLE_LINE; 205*53ee8cc1Swenshuai.xi 206*53ee8cc1Swenshuai.xi typedef struct _VBI_CC_SET_SC_WND_LEN 207*53ee8cc1Swenshuai.xi { 208*53ee8cc1Swenshuai.xi MS_U8 u8Len; 209*53ee8cc1Swenshuai.xi MS_BOOL bRet; 210*53ee8cc1Swenshuai.xi } VBI_CC_SET_SC_WND_LEN, *PVBI_CC_SET_SC_WND_LEN; 211*53ee8cc1Swenshuai.xi 212*53ee8cc1Swenshuai.xi typedef struct _DMX_TTX_SET_FILTERID 213*53ee8cc1Swenshuai.xi { 214*53ee8cc1Swenshuai.xi MS_U8 fid; 215*53ee8cc1Swenshuai.xi } DMX_TTX_SET_FILTERID, *PDMX_TTX_SET_FILTERID; 216*53ee8cc1Swenshuai.xi 217*53ee8cc1Swenshuai.xi typedef struct _DMX_TTX_SET_CB 218*53ee8cc1Swenshuai.xi { 219*53ee8cc1Swenshuai.xi DMX_CB_FN fn; 220*53ee8cc1Swenshuai.xi } DMX_TTX_SET_CB, *PDMX_TTX_SET_CB; 221*53ee8cc1Swenshuai.xi 222