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