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