xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/drvVBI_v2.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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