MHEG-5  19.3.0
MHEG-5 Documentation
fpa1_tgs.c
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright © 2014 The DTVKit Open Software Foundation Ltd (www.dtvkit.org)
3  * Copyright © 2004 Ocean Blue Software Ltd
4  * Copyright © 2000 Koninklijke Philips Electronics N.V
5  *
6  * This file is part of a DTVKit Software Component
7  * You are permitted to copy, modify or distribute this file subject to the terms
8  * of the DTVKit 1.0 Licence which can be found in licence.txt or at www.dtvkit.org
9  *
10  * THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
11  * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
12  * OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * If you or your organisation is not a member of DTVKit then you have access
15  * to this source code outside of the terms of the licence agreement
16  * and you are expected to delete this and any associated files immediately.
17  * Further information on DTVKit, membership and terms can be found at www.dtvkit.org
18  *******************************************************************************/
26 /*---includes for this file--------------------------------------------------*/
27 #include <stdio.h>
28 #include <stdlib.h>
29 
30 #include "vpa1_rdf.h"
31 #include "vpa1_sys.h"
32 #include "vpa1_tgs.h"
33 
34 #include "fpa1_act.h"
35 #include "fpa1_app.h"
36 #include "fpa1_boo.h"
37 #include "fpa1_but.h"
38 #include "fpa1_cho.h"
39 #include "fpa1_col.h"
40 #include "fpa1_con.h"
41 #include "fpa1_dsp.h"
42 #include "fpa1_grp.h"
43 #include "fpa1_iac.h"
44 #include "fpa1_ing.h"
45 #include "fpa1_int.h"
46 #include "fpa1_lnk.h"
47 #include "fpa1_lst.h"
48 #include "fpa1_obj.h"
49 #include "fpa1_pos.h"
50 #include "fpa1_prg.h"
51 #include "fpa1_rdf.h"
52 #include "fpa1_sce.h"
53 #include "fpa1_seq.h"
54 #include "fpa1_set.h"
55 #include "fpa1_stm.h"
56 #include "fpa1_str.h"
57 #include "fpa1_syn.h"
58 #include "fpa1_tgs.h"
59 #include "fpa1_tok.h"
60 #include "fpa1_txt.h"
61 #include "fpa1_var.h"
62 #include "fpa1_vis.h"
63 
64 #include "pa1_mem.h"
65 #include "glue_debug.h"
66 
67 /*---local typedef structs for this file-------------------------------------*/
68 
69 /*---constant definitions for this file--------------------------------------*/
70 #define NORM_APPLICATION (APPLICATION - CONT_SPEC_TAGS)
71 #define NORM_SCENE (SCENE - CONT_SPEC_TAGS)
72 #define NORM_STDID (STDID - CONT_SPEC_TAGS)
73 #define NORM_STDVER (STDVER - CONT_SPEC_TAGS)
74 #define NORM_OBJINFO (OBJINFO - CONT_SPEC_TAGS)
75 #define NORM_STARTUP (STARTUP - CONT_SPEC_TAGS)
76 #define NORM_CLOSEDOWN (CLOSEDOWN - CONT_SPEC_TAGS)
77 #define NORM_GCPRIO (GCPRIO - CONT_SPEC_TAGS)
78 #define NORM_ITEMS (ITEMS - CONT_SPEC_TAGS)
79 #define NORM_RESIDENT (RESIDENT - CONT_SPEC_TAGS)
80 #define NORM_REMOTE (REMOTE - CONT_SPEC_TAGS)
81 #define NORM_INTERCHAN (INTERCHAN - CONT_SPEC_TAGS)
82 #define NORM_PALETTE (PALETTE - CONT_SPEC_TAGS)
83 #define NORM_FONT (FONT - CONT_SPEC_TAGS)
84 #define NORM_CSHAPE (CSHAPE - CONT_SPEC_TAGS)
85 #define NORM_BOOLVAR (BOOLVAR - CONT_SPEC_TAGS)
86 #define NORM_INTVAR (INTVAR - CONT_SPEC_TAGS)
87 #define NORM_OCTVAR (OCTVAR - CONT_SPEC_TAGS)
88 #define NORM_OBJVAR (OBJVAR - CONT_SPEC_TAGS)
89 #define NORM_CONTVAR (CONTVAR - CONT_SPEC_TAGS)
90 #define NORM_LINK (LINK - CONT_SPEC_TAGS)
91 #define NORM_STREAM (STREAM - CONT_SPEC_TAGS)
92 #define NORM_BITMAP (BITMAP - CONT_SPEC_TAGS)
93 #define NORM_LINEART (LINEART - CONT_SPEC_TAGS)
94 #define NORM_DYNAMICLINEART (DYNAMICLINEART - CONT_SPEC_TAGS)
95 #define NORM_RECT (RECT - CONT_SPEC_TAGS)
96 #define NORM_HOTSPOT (HOTSPOT - CONT_SPEC_TAGS)
97 #define NORM_SWITCH (SWITCH - CONT_SPEC_TAGS)
98 #define NORM_PUSH (PUSH - CONT_SPEC_TAGS)
99 #define NORM_TEXT (TEXT - CONT_SPEC_TAGS)
100 #define NORM_ENTRY (ENTRY - CONT_SPEC_TAGS)
101 #define NORM_HYPER (HYPER - CONT_SPEC_TAGS)
102 #define NORM_SLIDER (SLIDER - CONT_SPEC_TAGS)
103 #define NORM_TGROUP (TGROUP - CONT_SPEC_TAGS)
104 #define NORM_LGROUP (LGROUP - CONT_SPEC_TAGS)
105 #define NORM_SPAWNCLOSE (SPAWNCLOSE - CONT_SPEC_TAGS)
106 #define NORM_RESTART (RESTART - CONT_SPEC_TAGS)
107 #define NORM_DEFATTS (DEFATTS - CONT_SPEC_TAGS)
108 #define NORM_CHARSET (CHARSET - CONT_SPEC_TAGS)
109 #define NORM_BACKCOL (BACKCOL - CONT_SPEC_TAGS)
110 #define NORM_TCHOOK (TCHOOK - CONT_SPEC_TAGS)
111 #define NORM_TCOL (TCOL - CONT_SPEC_TAGS)
112 #define NORM_DEFFONT (DEFFONT - CONT_SPEC_TAGS)
113 #define NORM_FONTATTS (FONTATTS - CONT_SPEC_TAGS)
114 #define NORM_INTPRGCHOOK (INTPRGCHOOK - CONT_SPEC_TAGS)
115 #define NORM_STREAMCHOOK (STREAMCHOOK - CONT_SPEC_TAGS)
116 #define NORM_BITMAPCHOOK (BITMAPCHOOK - CONT_SPEC_TAGS)
117 #define NORM_LINEARTCHOOK (LINEARTCHOOK - CONT_SPEC_TAGS)
118 #define NORM_BUTTONREFCOL (BUTTONREFCOL - CONT_SPEC_TAGS)
119 #define NORM_HIGHREFCOL (HIGHREFCOL - CONT_SPEC_TAGS)
120 #define NORM_SLIDEREFCOL (SLIDEREFCOL - CONT_SPEC_TAGS)
121 #define NORM_INEVENT (INEVENT - CONT_SPEC_TAGS)
122 #define NORM_SCENECOORDS (SCENECOORDS - CONT_SPEC_TAGS)
123 #define NORM_ASPECT (ASPECT - CONT_SPEC_TAGS)
124 #define NORM_MOVING (MOVING - CONT_SPEC_TAGS)
125 #define NORM_NEXTSCN (NEXTSCN - CONT_SPEC_TAGS)
126 #define NORM_INITACTIVE (INITACTIVE - CONT_SPEC_TAGS)
127 #define NORM_CHOOK (CHOOK - CONT_SPEC_TAGS)
128 #define NORM_OCONTENT (OCONTENT - CONT_SPEC_TAGS)
129 #define NORM_SHARED (SHARED - CONT_SPEC_TAGS)
130 #define NORM_CONTSIZE (CONTSIZE - CONT_SPEC_TAGS)
131 #define NORM_CONTPRIO (CONTPRIO - CONT_SPEC_TAGS)
132 #define NORM_LINKCOND (LINKCOND - CONT_SPEC_TAGS)
133 #define NORM_EFFECT (EFFECT - CONT_SPEC_TAGS)
134 #define NORM_NAME (NAME - CONT_SPEC_TAGS)
135 #define NORM_INITAVAIL (INITAVAIL - CONT_SPEC_TAGS)
136 #define NORM_PRGCONTAG (PRGCONTAG - CONT_SPEC_TAGS)
137 #define NORM_OVALUE (OVALUE - CONT_SPEC_TAGS)
138 #define NORM_OBJREF (OBJREF - CONT_SPEC_TAGS)
139 #define NORM_CONTREF (CONTREF - CONT_SPEC_TAGS)
140 #define NORM_MOVEMENTTABLE (MOVEMENTTABLE - CONT_SPEC_TAGS)
141 #define NORM_TGITEMS (TGITEMS - CONT_SPEC_TAGS)
142 #define NORM_NOTOKEN (NOTOKEN - CONT_SPEC_TAGS)
143 #define NORM_POSITIONS (POSITIONS - CONT_SPEC_TAGS)
144 #define NORM_WRAP (WRAP - CONT_SPEC_TAGS)
145 #define NORM_MULTIPLE (MULTIPLE - CONT_SPEC_TAGS)
146 #define NORM_OBOXSIZE (OBOXSIZE - CONT_SPEC_TAGS)
147 #define NORM_OPOSITION (OPOSITION - CONT_SPEC_TAGS)
148 #define NORM_OPALREF (OPALREF - CONT_SPEC_TAGS)
149 #define NORM_TILING (TILING - CONT_SPEC_TAGS)
150 #define NORM_OTRANS (OTRANS - CONT_SPEC_TAGS)
151 #define NORM_BBBOX (BBBOX - CONT_SPEC_TAGS)
152 #define NORM_OLWIDTH (OLWIDTH - CONT_SPEC_TAGS)
153 #define NORM_OLSTYLE (OLSTYLE - CONT_SPEC_TAGS)
154 #define NORM_ORLCOLOUR (ORLCOLOUR - CONT_SPEC_TAGS)
155 #define NORM_ORFCOLOUR (ORFCOLOUR - CONT_SPEC_TAGS)
156 #define NORM_OFONT (OFONT - CONT_SPEC_TAGS)
157 #define NORM_HJUST (HJUST - CONT_SPEC_TAGS)
158 #define NORM_VJUST (VJUST - CONT_SPEC_TAGS)
159 #define NORM_LINEOR (LINEOR - CONT_SPEC_TAGS)
160 #define NORM_STARTCORN (STARTCORN - CONT_SPEC_TAGS)
161 #define NORM_TEXTWRAP (TEXTWRAP - CONT_SPEC_TAGS)
162 #define NORM_MULTIPLEX (MULTIPLEX - CONT_SPEC_TAGS)
163 #define NORM_STORAGE (STORAGE - CONT_SPEC_TAGS)
164 #define NORM_LOOPING (LOOPING - CONT_SPEC_TAGS)
165 #define NORM_AUDIO (AUDIO - CONT_SPEC_TAGS)
166 #define NORM_VIDEO (VIDEO - CONT_SPEC_TAGS)
167 #define NORM_RTGRAPHICS (RTGRAPHICS - CONT_SPEC_TAGS)
168 #define NORM_COMPTAG (COMPTAG - CONT_SPEC_TAGS)
169 #define NORM_OVOLUME (OVOLUME - CONT_SPEC_TAGS)
170 #define NORM_TERMIN (TERMIN - CONT_SPEC_TAGS)
171 #define NORM_ENGRESP (ENGRESP - CONT_SPEC_TAGS)
172 #define NORM_ORIENTATION (ORIENTATION - CONT_SPEC_TAGS)
173 #define NORM_MAXVAL (MAXVAL - CONT_SPEC_TAGS)
174 #define NORM_MINVAL (MINVAL - CONT_SPEC_TAGS)
175 #define NORM_INITVAL (INITVAL - CONT_SPEC_TAGS)
176 #define NORM_INITPOR (INITPOR - CONT_SPEC_TAGS)
177 #define NORM_STEPSIZE (STEPSIZE - CONT_SPEC_TAGS)
178 #define NORM_SLSTYLE (SLSTYLE - CONT_SPEC_TAGS)
179 #define NORM_INPUTTYPE (INPUTTYPE - CONT_SPEC_TAGS)
180 #define NORM_CHARLIST (CHARLIST - CONT_SPEC_TAGS)
181 #define NORM_OBSCURED (OBSCURED - CONT_SPEC_TAGS)
182 #define NORM_MAXLEN (MAXLEN - CONT_SPEC_TAGS)
183 #define NORM_OLABEL (OLABEL - CONT_SPEC_TAGS)
184 #define NORM_BSTYLE (BSTYLE - CONT_SPEC_TAGS)
185 #define NORM_ACTIVATE (ACTIVATE - CONT_SPEC_TAGS)
186 #define NORM_ADD (ADD - CONT_SPEC_TAGS)
187 #define NORM_ADDITEM (ADDITEM - CONT_SPEC_TAGS)
188 #define NORM_APPEND (APPEND - CONT_SPEC_TAGS)
189 #define NORM_BRINGTOFRONT (BRINGTOFRONT - CONT_SPEC_TAGS)
190 #define NORM_CALL (CALL - CONT_SPEC_TAGS)
191 #define NORM_CALLACTIONSLOT (CALLACTIONSLOT - CONT_SPEC_TAGS)
192 #define NORM_CLEAR (CLEAR - CONT_SPEC_TAGS)
193 #define NORM_CLONE (CLONE - CONT_SPEC_TAGS)
194 #define NORM_CLOSECONNECTION (CLOSECONNECTION - CONT_SPEC_TAGS)
195 #define NORM_DEACTIVATE (DEACTIVATE - CONT_SPEC_TAGS)
196 #define NORM_DELITEM (DELITEM - CONT_SPEC_TAGS)
197 #define NORM_DESELECT (DESELECT - CONT_SPEC_TAGS)
198 #define NORM_DESELECTITEM (DESELECTITEM - CONT_SPEC_TAGS)
199 #define NORM_DIVIDE (DIVIDE - CONT_SPEC_TAGS)
200 #define NORM_DRAWARC (DRAWARC - CONT_SPEC_TAGS)
201 #define NORM_DRAWLINE (DRAWLINE - CONT_SPEC_TAGS)
202 #define NORM_DRAWOVAL (DRAWOVAL - CONT_SPEC_TAGS)
203 #define NORM_DRAWPOLYGON (DRAWPOLYGON - CONT_SPEC_TAGS)
204 #define NORM_DRAWPOLYLINE (DRAWPOLYLINE - CONT_SPEC_TAGS)
205 #define NORM_DRAWRECTANGLE (DRAWRECTANGLE - CONT_SPEC_TAGS)
206 #define NORM_DRAWSECTOR (DRAWSECTOR - CONT_SPEC_TAGS)
207 #define NORM_FORK (FORK - CONT_SPEC_TAGS)
208 #define NORM_GETAVAILABILITYSTATUS (GETAVAILABILITYSTATUS - CONT_SPEC_TAGS)
209 #define NORM_GETBOXSIZE (GETBOXSIZE - CONT_SPEC_TAGS)
210 #define NORM_GETCELLITEM (GETCELLITEM - CONT_SPEC_TAGS)
211 #define NORM_GETCURSORPOSITION (GETCURSORPOSITION - CONT_SPEC_TAGS)
212 #define NORM_GETENGINESUPPORT (GETENGINESUPPORT - CONT_SPEC_TAGS)
213 #define NORM_GETENTRYPOINT (GETENTRYPOINT - CONT_SPEC_TAGS)
214 #define NORM_GETFILLCOLOUR (GETFILLCOLOUR - CONT_SPEC_TAGS)
215 #define NORM_GETFIRSTITEM (GETFIRSTITEM - CONT_SPEC_TAGS)
216 #define NORM_GETHIGHLIGHTSTATUS (GETHIGHLIGHTSTATUS - CONT_SPEC_TAGS)
217 #define NORM_GETINTERACTIONSTATUS (GETINTERACTIONSTATUS - CONT_SPEC_TAGS)
218 #define NORM_GETITEMSTATUS (GETITEMSTATUS - CONT_SPEC_TAGS)
219 #define NORM_GETLABEL (GETLABEL - CONT_SPEC_TAGS)
220 #define NORM_GETLASTANCHORFIRED (GETLASTANCHORFIRED - CONT_SPEC_TAGS)
221 #define NORM_GETLINECOLOUR (GETLINECOLOUR - CONT_SPEC_TAGS)
222 #define NORM_GETLINESTYLE (GETLINESTYLE - CONT_SPEC_TAGS)
223 #define NORM_GETLINEWIDTH (GETLINEWIDTH - CONT_SPEC_TAGS)
224 #define NORM_GETLISTITEM (GETLISTITEM - CONT_SPEC_TAGS)
225 #define NORM_GETLISTSIZE (GETLISTSIZE - CONT_SPEC_TAGS)
226 #define NORM_GETOVERWRITEMODE (GETOVERWRITEMODE - CONT_SPEC_TAGS)
227 #define NORM_GETPORTION (GETPORTION - CONT_SPEC_TAGS)
228 #define NORM_GETPOSITION (GETPOSITION - CONT_SPEC_TAGS)
229 #define NORM_GETRUNNINGSTATUS (GETRUNNINGSTATUS - CONT_SPEC_TAGS)
230 #define NORM_GETSELECTIONSTATUS (GETSELECTIONSTATUS - CONT_SPEC_TAGS)
231 #define NORM_GETSLIDERVALUE (GETSLIDERVALUE - CONT_SPEC_TAGS)
232 #define NORM_GETTEXTCONTENT (GETTEXTCONTENT - CONT_SPEC_TAGS)
233 #define NORM_GETTEXTDATA (GETTEXTDATA - CONT_SPEC_TAGS)
234 #define NORM_GETTOKENPOSITION (GETTOKENPOSITION - CONT_SPEC_TAGS)
235 #define NORM_GETVOLUME (GETVOLUME - CONT_SPEC_TAGS)
236 #define NORM_LAUNCH (LAUNCH - CONT_SPEC_TAGS)
237 #define NORM_LOCKSCREEN (LOCKSCREEN - CONT_SPEC_TAGS)
238 #define NORM_MODULO (MODULO - CONT_SPEC_TAGS)
239 #define NORM_MOVE (MOVE - CONT_SPEC_TAGS)
240 #define NORM_MOVETO (MOVETO - CONT_SPEC_TAGS)
241 #define NORM_MULTIPLY (MULTIPLY - CONT_SPEC_TAGS)
242 #define NORM_OPENCONNECTION (OPENCONNECTION - CONT_SPEC_TAGS)
243 #define NORM_PRELOAD (PRELOAD - CONT_SPEC_TAGS)
244 #define NORM_PUTBEFORE (PUTBEFORE - CONT_SPEC_TAGS)
245 #define NORM_PUTBEHIND (PUTBEHIND - CONT_SPEC_TAGS)
246 #define NORM_QUIT (QUIT - CONT_SPEC_TAGS)
247 #define NORM_READPERSISTENT (READPERSISTENT - CONT_SPEC_TAGS)
248 #define NORM_RUN (RUN - CONT_SPEC_TAGS)
249 #define NORM_SCALEBITMAP (SCALEBITMAP - CONT_SPEC_TAGS)
250 #define NORM_SCALEVIDEO (SCALEVIDEO - CONT_SPEC_TAGS)
251 #define NORM_SCROLLITEMS (SCROLLITEMS - CONT_SPEC_TAGS)
252 #define NORM_SELECT (SELECT - CONT_SPEC_TAGS)
253 #define NORM_SELECTITEM (SELECTITEM - CONT_SPEC_TAGS)
254 #define NORM_SENDEVENT (SENDEVENT - CONT_SPEC_TAGS)
255 #define NORM_SENDTOBACK (SENDTOBACK - CONT_SPEC_TAGS)
256 #define NORM_SETBOXSIZE (SETBOXSIZE - CONT_SPEC_TAGS)
257 #define NORM_SETCACHEPRIORITY (SETCACHEPRIORITY - CONT_SPEC_TAGS)
258 #define NORM_SETCOUNTERENDPOSITION (SETCOUNTERENDPOSITION - CONT_SPEC_TAGS)
259 #define NORM_SETCOUNTERPOSITION (SETCOUNTERPOSITION - CONT_SPEC_TAGS)
260 #define NORM_SETCOUNTERTRIGGER (SETCOUNTERTRIGGER - CONT_SPEC_TAGS)
261 #define NORM_SETCURSORPOSITION (SETCURSORPOSITION - CONT_SPEC_TAGS)
262 #define NORM_SETCURSORSHAPE (SETCURSORSHAPE - CONT_SPEC_TAGS)
263 #define NORM_SETDATA (SETDATA - CONT_SPEC_TAGS)
264 #define NORM_SETENTRYPOINT (SETENTRYPOINT - CONT_SPEC_TAGS)
265 #define NORM_SETFILLCOLOUR (SETFILLCOLOUR - CONT_SPEC_TAGS)
266 #define NORM_SETFIRSTITEM (SETFIRSTITEM - CONT_SPEC_TAGS)
267 #define NORM_SETFONTREF (SETFONTREF - CONT_SPEC_TAGS)
268 #define NORM_SETHIGHLIGHTSTATUS (SETHIGHLIGHTSTATUS - CONT_SPEC_TAGS)
269 #define NORM_SETINTERACTIONSTATUS (SETINTERACTIONSTATUS - CONT_SPEC_TAGS)
270 #define NORM_SETLABEL (SETLABEL - CONT_SPEC_TAGS)
271 #define NORM_SETLINECOLOUR (SETLINECOLOUR - CONT_SPEC_TAGS)
272 #define NORM_SETLINESTYLE (SETLINESTYLE - CONT_SPEC_TAGS)
273 #define NORM_SETLINEWIDTH (SETLINEWIDTH - CONT_SPEC_TAGS)
274 #define NORM_SETOVERWRITEMODE (SETOVERWRITEMODE - CONT_SPEC_TAGS)
275 #define NORM_SETPALETTEREF (SETPALETTEREF - CONT_SPEC_TAGS)
276 #define NORM_SETPORTION (SETPORTION - CONT_SPEC_TAGS)
277 #define NORM_SETPOSITION (SETPOSITION - CONT_SPEC_TAGS)
278 #define NORM_SETSLIDERVALUE (SETSLIDERVALUE - CONT_SPEC_TAGS)
279 #define NORM_SETSPEED (SETSPEED - CONT_SPEC_TAGS)
280 #define NORM_SETTIMER (SETTIMER - CONT_SPEC_TAGS)
281 #define NORM_SETTRANSPARENCY (SETTRANSPARENCY - CONT_SPEC_TAGS)
282 #define NORM_SETVARIABLE (SETVARIABLE - CONT_SPEC_TAGS)
283 #define NORM_SETVOLUME (SETVOLUME - CONT_SPEC_TAGS)
284 #define NORM_SPAWN (SPAWN - CONT_SPEC_TAGS)
285 #define NORM_STEP (STEP - CONT_SPEC_TAGS)
286 #define NORM_STOP (STOP - CONT_SPEC_TAGS)
287 #define NORM_STOREPERSISTENT (STOREPERSISTENT - CONT_SPEC_TAGS)
288 #define NORM_SUBTRACT (SUBTRACT - CONT_SPEC_TAGS)
289 #define NORM_TESTVARIABLE (TESTVARIABLE - CONT_SPEC_TAGS)
290 #define NORM_TOGGLE (TOGGLE - CONT_SPEC_TAGS)
291 #define NORM_TOGGLEITEM (TOGGLEITEM - CONT_SPEC_TAGS)
292 #define NORM_TRANSITIONTO (TRANSITIONTO - CONT_SPEC_TAGS)
293 #define NORM_UNLOAD (UNLOAD - CONT_SPEC_TAGS)
294 #define NORM_UNLOCKSCREEN (UNLOCKSCREEN - CONT_SPEC_TAGS)
295 #define NORM_INVOKE (INVOKE - CONT_SPEC_TAGS)
296 #define NORM_GBOOL (GBOOL - CONT_SPEC_TAGS)
297 #define NORM_GINT (GINT - CONT_SPEC_TAGS)
298 #define NORM_GOSTRING (GOSTRING - CONT_SPEC_TAGS)
299 #define NORM_GOBJREF (GOBJREF - CONT_SPEC_TAGS)
300 #define NORM_GCONTREF (GCONTREF - CONT_SPEC_TAGS)
301 #define NORM_NEWCOLIND (NEWCOLIND - CONT_SPEC_TAGS)
302 #define NORM_NEWABSCOL (NEWABSCOL - CONT_SPEC_TAGS)
303 #define NORM_NEWFONTNAME (NEWFONTNAME - CONT_SPEC_TAGS)
304 #define NORM_NEWFONTREF (NEWFONTREF - CONT_SPEC_TAGS)
305 #define NORM_NEWCSIZE (NEWCSIZE - CONT_SPEC_TAGS)
306 #define NORM_NEWCPRIO (NEWCPRIO - CONT_SPEC_TAGS)
307 #define NORM_INDIRECT (INDIRECT - CONT_SPEC_TAGS)
308 #define NORM_SETBACKGROUNDCOLOUR (SETBACKGROUNDCOLOUR - CONT_SPEC_TAGS)
309 #define NORM_SETCELLPOSITION (SETCELLPOSITION - CONT_SPEC_TAGS)
310 #define NORM_SETINPUTREGISTER (SETINPUTREGISTER - CONT_SPEC_TAGS)
311 #define NORM_SETTEXTCOLOUR (SETTEXTCOLOUR - CONT_SPEC_TAGS)
312 #define NORM_SETFONTATTRIBUTES (SETFONTATTRIBUTES - CONT_SPEC_TAGS)
313 #define NORM_SETVIDEODECODEOFFSET (SETVIDEODECODEOFFSET - CONT_SPEC_TAGS)
314 #define NORM_GETVIDEODECODEOFFSET (GETVIDEODECODEOFFSET - CONT_SPEC_TAGS)
315 #define NORM_GETFOCUSPOSITION (GETFOCUSPOSITION - CONT_SPEC_TAGS)
316 #define NORM_SETFOCUSPOSITION (SETFOCUSPOSITION - CONT_SPEC_TAGS)
317 #define NORM_SETBITMAPDECODEOFFSET (SETBITMAPDECODEOFFSET - CONT_SPEC_TAGS)
318 #define NORM_GETBITMAPDECODEOFFSET (GETBITMAPDECODEOFFSET - CONT_SPEC_TAGS)
319 #define NORM_SETSLIDERPARAMETERS (SETSLIDERPARAMETERS - CONT_SPEC_TAGS)
320 #define NORM_ODESKTOPCOLOUR (ODESKTOPCOLOUR - CONT_SPEC_TAGS)
321 #define NORM_SETDESKTOPCOLOUR (SETDESKTOPCOLOUR - CONT_SPEC_TAGS)
322 #define NORM_GETCOUNTERPOSITION (GETCOUNTERPOSITION - CONT_SPEC_TAGS)
323 #define NORM_GETCOUNTERMAXPOSITION (GETCOUNTERMAXPOSITION - CONT_SPEC_TAGS)
324 
325 /*InputMask Extension*/
326 #define NORM_OINPUTMASK (OINPUTMASK - CONT_SPEC_TAGS)
327 #define NORM_SETINPUTMASK (SETINPUTMASK - CONT_SPEC_TAGS)
328 
329 /* for checking the number of bytes needed to encode a particular tag */
330 #define ONE_BYTE_TAG (CONT_SPEC_TAGS + 30)
331 #define TWO_BYTE_TAG (CONT_SPEC_TAGS + 127)
332 
333 
334 /*---local (static) variable declarations for this file----------------------*/
335 
336 /*---local function definitions----------------------------------------------*/
337 
338 /*---global function definitions---------------------------------------------*/
339 
340 
347 {
348  int intLength;
349  int lengthPosition;
350 
351  if (listPtr == NULL)
352  {
353  return 0;
354  }
355 
356  lengthPosition = listPtr->tagPosition;
357 
358  /* Skip over the tag iteslf to find the length byte(s) */
359  /* The tag itself can be 1,2 or 3 bytes long */
360  /* If the tag can be encoded in 5 bits (ie < 30) then one byte is used, */
361  /* Otherwise the lower 5 bits are all 1 and the following bytes(s) */
362  /* contain the tag (as 7 bit bytes, bit 8 indicating there is another tag */
363  /* byte following).*/
364 
365  if (listPtr->tag > TWO_BYTE_TAG) /* ie. 3 byte tag */
366  {
367  lengthPosition += 3;
368  }
369  else if (listPtr->tag > ONE_BYTE_TAG) /* ie. 2 byte tag */
370  {
371  lengthPosition += 2;
372  }
373  else /* 1 byte tag */
374  {
375  lengthPosition++;
376  }
377 
378  intLength = fpa1_rdfGetByteAbsolute(lengthPosition);
379 
380  /* Note: this cannot handle multi byte lengths (ie. >127 byte integer) */
381  /* Since the UKprofile does not allow integers this long anyway */
382  /* it will not cause a problem. */
383  listPtr->data.intData = (MHEG5Int) fpa1_rdfGetIntegerAbsolute(lengthPosition + 1, intLength);
384 
385  listPtr->dataType = 2;
386 
387  return 0;
388 }
389 
396 {
397  int dataPosition = listPtr->tagPosition;
398 
399  /* Skip over the tag iteslf to find the length byte(s) */
400  /* The tag itself can be 1,2 or 3 bytes long */
401  /* If the tag can be encoded in 5 bits (ie < 30) then one byte is used, */
402  /* Otherwise the lower 5 bits are all 1 and the following bytes(s) */
403  /* contain the tag (as 7 bit bytes, bit 8 indicating there is another tag */
404  /* byte following).*/
405  if (listPtr->tag > TWO_BYTE_TAG) /* ie. 3 byte tag */
406  {
407  dataPosition += 4;
408  }
409  else if (listPtr->tag > ONE_BYTE_TAG) /* ie. 2 byte tag */
410  {
411  dataPosition += 3;
412  }
413  else /* 1 byte tag */
414  {
415  dataPosition += 2;
416  }
417 
418  listPtr->data.boolData = (MHEG5Bool) fpa1_rdfGetBooleanAbsolute(dataPosition);
419 
420  listPtr->dataType = 1;
421 
422  return 0;
423 }
424 
431 {
432  unsigned int lengthOfLength;
433  MHEG5Int length;
434  unsigned long currentPosition = listPtr->tagPosition;
435  MHEG5Byte *newString;
436  int tag; /* only used internally */
437 
438  /* check for multibyte tag. This can happen because the contentRef tag
439  is changed to a string during parsing. If not checked, the position of the
440  length byte could be wrong.*/
441  tag = fpa1_rdfGetByteAbsolute(currentPosition);
442  tag &= 0x1f;
443 
444  if (tag == 0x1f)
445  {
446  currentPosition++;
447  /* skip any other tag bytes */
448  while ((fpa1_rdfGetByteAbsolute(currentPosition) & 0x80) != 0)
449  {
450  currentPosition++;
451  }
452  }
453 
454 
455  /* Note: max length of string is 2147483647 chars long (UK Profile) */
456  currentPosition++; /* length byte */
457  length = fpa1_rdfGetByteAbsolute(currentPosition);
458  currentPosition++;
459 
460 
461  if (length > 127) /* multibyte length */
462  {
463  lengthOfLength = length & 0xFFFFFF7F;
464  length = 0;
465 
466  while (lengthOfLength > 0)
467  {
468  length = (length << 8) | fpa1_rdfGetByteAbsolute(currentPosition);
469  lengthOfLength--;
470  currentPosition++;
471  }
472  }
473 
474  listPtr->data.stringData.len = length;
475 
476  /* Even if string is of 0 length, need to allocate pointer for the null string data */
477  newString = STR_DataAlloc( length );
478 
479  /* Check we allocated the string ok */
480  if (newString == NULL)
481  {
482  DPL1(("ERROR: fpa1_parseDataStr() failed to pa1_malloc %ld bytes\n", length));
483  listPtr->data.stringData.data = NULL;
484  listPtr->data.stringData.len = 0;
485  return 1;
486  }
487  else
488  {
489  listPtr->data.stringData.data = newString;
490  while (length)
491  {
492  *newString = fpa1_rdfGetByteAbsolute(currentPosition);
493  length--;
494  newString++;
495  currentPosition++;
496  }
497  }
498 
499  listPtr->dataType = 4;
500 
501  return 0;
502 }
503 
511 {
512  if (listPtr->tag == INTEGER)
513  {
514  fpa1_parseDataInt(listPtr);
515  }
516  else if (listPtr->tag == MHEG_BOOL)
517  {
518  fpa1_parseDataBool(listPtr);
519  }
520  else if ((listPtr->tag == OCTETSTRING) || (listPtr->tag == CONTREF))
521  {
522  fpa1_parseDataStr(listPtr);
523  }
524 
525  return 0;
526 }
527 
533 {
534  vpa1_filePos nextTagPosition;
535  int success = FALSE;
536  fpa1_syntaxList *childPtr = NULL;
537  unsigned short childCnt[3] = {0, 0, 0};
538  unsigned short startGenericDataCnt = fpa1_GenericDataCount;
539 
540  if (listPtr != NULL)
541  {
542  fpa1_rdfSetNewFilePosition( listPtr->tagPosition );
543  nextTagPosition = listPtr->nextTagPosition;
544 
545  switch (listPtr->tag)
546  {
547  /* Universal Class tags - decode them separately */
548  /* only decodes INTEGER, MHEG_BOOL and OCTETSTRING tags */
549  case INTEGER:
550  fpa1_parseDataInt(listPtr);
551  fpa1_GenericDataCount++;
552  success = TRUE;
553  break;
554 
555  case MHEG_BOOL:
556  fpa1_parseDataBool(listPtr);
557  fpa1_GenericDataCount++;
558  success = TRUE;
559  break;
560 
561  case OCTETSTRING:
562  case CONTREF: /* CONTREF is treated as a string */
563  fpa1_parseDataStr(listPtr);
564  fpa1_GenericDataCount++;
565  /* fallthrough */
566 
567  case MHEG_NULL:
568  case ENUMERATED:
569  case SEQUENCE:
570  case SET:
571  success = TRUE;
572  break;
573 
574  default:
575  if (listPtr->tag < CONT_SPEC_TAGS)
576  {
577  success = TRUE;
578  }
579  }
580 
581  if (success == FALSE)
582  {
583  /* Context Specific tags */
584 
585  /* now move to contents */
587 
588  switch (listPtr->tag - CONT_SPEC_TAGS)
589  {
590  case NORM_APPLICATION:
591  childPtr = fpa1_setParse( appSetCompsArr, nextTagPosition );
592  #ifdef DEBUG_TAGS
593  fpa1_decodeAppSetList( childPtr, 0 );
594  #endif
595  break;
596  case NORM_SCENE:
597  childPtr = fpa1_setParse( sceneSetCompsArr, nextTagPosition );
598  #ifdef DEBUG_TAGS
599  fpa1_decodeSceneSetList( childPtr, 0 );
600  #endif
601  break;
602  case NORM_STDID:
603  childPtr = fpa1_sequenceParse( childCnt, stdIdSeqCompArr, nextTagPosition );
604  break;
605  case NORM_STDVER: /* INTEGER */
606  case NORM_GCPRIO: /* INTEGER */
607  case NORM_CHARSET: /* INTEGER */
608  case NORM_TCHOOK: /* INTEGER */
609  case NORM_INTPRGCHOOK: /* INTEGER */
610  case NORM_STREAMCHOOK: /* INTEGER */
611  case NORM_BITMAPCHOOK: /* INTEGER */
612  case NORM_LINEARTCHOOK: /* INTEGER */
613  case NORM_INEVENT: /* INTEGER */
614  case NORM_CHOOK: /* INTEGER */
615  case NORM_CONTSIZE: /* INTEGER */
616  case NORM_CONTPRIO: /* INTEGER */
617  case NORM_PRGCONTAG: /* INTEGER */
618  case NORM_OTRANS: /* INTEGER */
619  case NORM_OLWIDTH: /* INTEGER */
620  case NORM_OLSTYLE: /* INTEGER */
621  case NORM_LOOPING: /* INTEGER */
622  case NORM_COMPTAG: /* INTEGER */
623  case NORM_OVOLUME: /* INTEGER */
624  case NORM_MAXLEN: /* INTEGER */
625  case NORM_MAXVAL: /* INTEGER */
626  case NORM_MINVAL: /* INTEGER */
627  case NORM_INITVAL: /* INTEGER */
628  case NORM_INITPOR: /* INTEGER */
629  case NORM_STEPSIZE: /* INTEGER */
630  case NORM_HJUST: /* ENUMERATED */
631  case NORM_VJUST: /* ENUMERATED */
632  case NORM_LINEOR: /* ENUMERATED */
633  case NORM_STARTCORN: /* ENUMERATED */
634  case NORM_INPUTTYPE: /* ENUMERATED */
635  case NORM_STORAGE: /* ENUMERATED */
636  case NORM_TERMIN: /* ENUMERATED */
637  case NORM_ORIENTATION: /* ENUMERATED */
638  case NORM_SLSTYLE: /* ENUMERATED */
639  case NORM_BSTYLE: /* ENUMERATED */
640  fpa1_parseDataInt(listPtr);
641  success = TRUE;
642  break;
643 
644  case NORM_MOVING: /* MHEG_BOOL */
645  case NORM_INITACTIVE: /* MHEG_BOOL */
646  case NORM_SHARED: /* MHEG_BOOL */
647  case NORM_INITAVAIL: /* MHEG_BOOL */
648  case NORM_WRAP: /* MHEG_BOOL */
649  case NORM_MULTIPLE: /* MHEG_BOOL */
650  case NORM_TILING: /* MHEG_BOOL */
651  case NORM_BBBOX: /* MHEG_BOOL */
652  case NORM_TEXTWRAP: /* MHEG_BOOL */
653  case NORM_ENGRESP: /* MHEG_BOOL */
654  case NORM_OBSCURED: /* MHEG_BOOL */
655  fpa1_parseDataBool(listPtr);
656  success = TRUE;
657  break;
658 
659  case NORM_OBJINFO: /* OCTETSTRING */
660  case NORM_FONTATTS: /* OCTETSTRING */
661  case NORM_NAME: /* OCTETSTRING */
662  case NORM_CONTREF: /* OCTETSTRING */
663  case NORM_CHARLIST: /* OCTETSTRING */
664  case NORM_OLABEL: /* OCTETSTRING */
665  case NORM_OINPUTMASK: /* OCTETSTRING */
666 
667  fpa1_parseDataStr(listPtr);
668  success = TRUE;
669  break;
670 
671  case NORM_STARTUP:
672  case NORM_CLOSEDOWN:
673  case NORM_SPAWNCLOSE:
674  case NORM_RESTART:
675  case NORM_EFFECT:
676  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_ELEMENTARY_ACTION, nextTagPosition );
677  fpa1_GroupActionCount += *childCnt;
678  fpa1_GroupParamCount += fpa1_GenericDataCount - startGenericDataCnt;
679  break;
680 
681  case NORM_ITEMS:
682  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_GROUP_ITEM, nextTagPosition );
683  break;
684 
685  case NORM_RESIDENT:
686  childPtr = fpa1_setParse( resPrgSetCompsArr, nextTagPosition );
687  break;
688 
689  case NORM_REMOTE:
690  childPtr = fpa1_setParse( remPrgSetCompsArr, nextTagPosition );
691  break;
692 
693  case NORM_INTERCHAN:
694  childPtr = fpa1_setParse( itcPrgSetCompsArr, nextTagPosition );
695  break;
696 
697  case NORM_PALETTE: /* same as PALETTE */
698  case NORM_FONT:
699  case NORM_CSHAPE:
700  childPtr = fpa1_setParse( paletteSetCompsArr, nextTagPosition );
701  break;
702 
703  case NORM_BOOLVAR:
704  childPtr = fpa1_decodeVariable( nextTagPosition, MHEG_BOOL );
705  break;
706 
707  case NORM_INTVAR:
708  childPtr = fpa1_decodeVariable( nextTagPosition, INTEGER );
709  break;
710 
711  case NORM_OCTVAR:
712  childPtr = fpa1_decodeVariable( nextTagPosition, OCTETSTRING );
713  break;
714 
715  case NORM_OBJVAR:
716  childPtr = fpa1_decodeVariable( nextTagPosition, OBJREF );
717  break;
718 
719  case NORM_CONTVAR:
720  childPtr = fpa1_decodeVariable( nextTagPosition, CONTREF );
721  break;
722 
723  case NORM_LINK:
724  childPtr = fpa1_setParse( lnkSetCompsArr, nextTagPosition );
725  break;
726 
727  case NORM_STREAM:
728  childPtr = fpa1_setParse( streamSetCompsArr, nextTagPosition );
729  break;
730 
731  case NORM_BITMAP:
732  childPtr = fpa1_setParse( bmpSetCompsArr, nextTagPosition );
733  break;
734 
735  case NORM_LINEART:
736  childPtr = fpa1_setParse( lartSetCompsArr, nextTagPosition );
737  break;
738 
739  case NORM_DYNAMICLINEART:
740  childPtr = fpa1_setParse( dLartSetCompsArr, nextTagPosition );
741  break;
742 
743  case NORM_RECT:
744  childPtr = fpa1_setParse( rectSetCompsArr, nextTagPosition );
745  break;
746 
747  case NORM_HOTSPOT:
748  childPtr = fpa1_setParse( buttonSetCompsArr, nextTagPosition );
749  break;
750 
751  case NORM_SWITCH:
752  childPtr = fpa1_setParse( switButSetCompsArr, nextTagPosition );
753  break;
754 
755  case NORM_PUSH:
756  childPtr = fpa1_setParse( pushButSetCompsArr, nextTagPosition );
757  break;
758 
759  case NORM_TEXT:
760  childPtr = fpa1_setParse( txtSetCompsArr, nextTagPosition );
761  break;
762 
763  case NORM_ENTRY:
764  childPtr = fpa1_setParse( entFldSetCompsArr, nextTagPosition );
765  break;
766 
767  case NORM_HYPER:
768  childPtr = fpa1_setParse( hypTxtSetCompsArr, nextTagPosition );
769  break;
770 
771  case NORM_SLIDER:
772  childPtr = fpa1_setParse( sliderSetCompsArr, nextTagPosition );
773  break;
774 
775  case NORM_TGROUP:
776  childPtr = fpa1_setParse( tokGrpSetCompsArr, nextTagPosition );
777  break;
778 
779  case NORM_LGROUP:
780  childPtr = fpa1_setParse( listGrpSetCompsArr, nextTagPosition );
781  break;
782 
783  case NORM_DEFATTS:
784  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_DEF_ATTRIBS, nextTagPosition );
785  break;
786 
787  case NORM_DEFFONT:
788  case NORM_OFONT:
789  childPtr = fpa1_choiceParse( fontBodyChoiceCompArr );
790  break;
791 
792  case NORM_BACKCOL: /* Colour */
793  case NORM_TCOL:
794  case NORM_BUTTONREFCOL:
795  case NORM_HIGHREFCOL:
796  case NORM_SLIDEREFCOL:
797  case NORM_ORLCOLOUR:
798  case NORM_ORFCOLOUR:
799  case NORM_ODESKTOPCOLOUR:
800  childPtr = fpa1_choiceParse( colourChoiceCompArr );
801  break;
802 
803  case NORM_SCENECOORDS: /* same sequence as SCENECOORDS */
804  case NORM_ASPECT:
805  childPtr = fpa1_sequenceParse( childCnt, sneCoordSysSeqCompArr, nextTagPosition );
806  break;
807 
808  case NORM_NEXTSCN:
809  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_NEXT_SCENE, nextTagPosition );
810  fpa1_GroupParamCount += fpa1_GenericDataCount - startGenericDataCnt;
811  break;
812 
813  case NORM_OCONTENT:
814  childPtr = fpa1_choiceParse( cntBdyChoiceCompArr );
815  break;
816 
817  case NORM_LINKCOND:
818  childPtr = fpa1_sequenceParse( childCnt, lnkCndSeqCompArr, nextTagPosition );
819  break;
820 
821  case NORM_OVALUE:
822  childPtr = fpa1_choiceParse( oriVarChoiceCompArr );
823  break;
824 
825  case NORM_OBJREF: /* all ObjectReference choices */
826  case NORM_OPALREF:
827  case NORM_INDIRECT:
828  childPtr = fpa1_choiceParse( objRefChoiceCompArr );
829  break;
830 
831  case NORM_MOVEMENTTABLE:
832  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_MOVEMENT, nextTagPosition );
833  break;
834 
835  case NORM_TGITEMS:
836  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_TOKEN_GROUP_ITEM, nextTagPosition );
837  break;
838 
839  case NORM_NOTOKEN:
840  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_ACTION_SLOT, nextTagPosition );
841  break;
842 
843  case NORM_POSITIONS:
844  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_XY_POSITION, nextTagPosition );
845  break;
846 
847  case NORM_OBOXSIZE:
848  childPtr = fpa1_sequenceParse( childCnt, oboxSizeSeqCompArr, nextTagPosition );
849  break;
850 
851  case NORM_OPOSITION:
852  childPtr = fpa1_sequenceParse( childCnt, xyPosSeqCompArr, nextTagPosition );
853  break;
854 
855  case NORM_MULTIPLEX:
856  childPtr = fpa1_sequenceOfParse( childCnt, SEQ_OF_STREAM_COMP, nextTagPosition );
857  break;
858 
859  case NORM_AUDIO:
860  childPtr = fpa1_setParse( audioSetCompsArr, nextTagPosition );
861  break;
862 
863  case NORM_VIDEO:
864  childPtr = fpa1_setParse( videoSetCompsArr, nextTagPosition );
865  break;
866 
867  case NORM_RTGRAPHICS:
868  childPtr = fpa1_setParse( rtgSetCompsArr, nextTagPosition );
869  break;
870 
871  case NORM_ACTIVATE: /* GenericObjectReference */
872  case NORM_BRINGTOFRONT:
873  case NORM_CLEAR:
874  case NORM_DEACTIVATE:
875  case NORM_DESELECT:
876  case NORM_LOCKSCREEN:
877  case NORM_PRELOAD:
878  case NORM_QUIT:
879  case NORM_RUN:
880  case NORM_SELECT:
881  case NORM_SENDTOBACK:
882  case NORM_SPAWN:
883  case NORM_STOP:
884  case NORM_TOGGLE:
885  case NORM_UNLOAD:
886  case NORM_UNLOCKSCREEN:
887  case NORM_GOBJREF:
888  case NORM_NEWFONTREF:
889  childPtr = fpa1_choiceParse( genObjRefChoiceCompArr );
890  break;
891 
892  case NORM_ADD: /* same sequence as ADD */
893  case NORM_CALLACTIONSLOT:
894  case NORM_CLOSECONNECTION:
895  case NORM_DESELECTITEM:
896  case NORM_DIVIDE:
897  case NORM_LAUNCH:
898  case NORM_MODULO:
899  case NORM_MOVE:
900  case NORM_MOVETO:
901  case NORM_MULTIPLY:
902  case NORM_SCROLLITEMS:
903  case NORM_SELECTITEM:
904  case NORM_SETCACHEPRIORITY:
905  case NORM_SETCOUNTERENDPOSITION:
906  case NORM_SETCOUNTERPOSITION:
907  case NORM_SETENTRYPOINT:
908  case NORM_SETFIRSTITEM:
909  case NORM_SETFOCUSPOSITION:
910  case NORM_SETINPUTREGISTER:
911  case NORM_SETLINESTYLE:
912  case NORM_SETLINEWIDTH:
913  case NORM_SETPORTION:
914  case NORM_SETSLIDERVALUE:
915  case NORM_SETTRANSPARENCY:
916  case NORM_SETVOLUME:
917  case NORM_STEP:
918  case NORM_SUBTRACT:
919  case NORM_TOGGLEITEM:
920  childPtr = fpa1_sequenceParse( childCnt, addSeqCompArr, nextTagPosition );
921  break;
922 
923  case NORM_ADDITEM:
924  childPtr = fpa1_sequenceParse( childCnt, addItemSeqCompArr, nextTagPosition );
925  break;
926 
927  case NORM_APPEND: /* same sequence as APPEND */
928  case NORM_SETLABEL:
929  case NORM_SETFONTATTRIBUTES:
930  case NORM_SETINPUTMASK:
931  childPtr = fpa1_sequenceParse( childCnt, appendSeqCompArr, nextTagPosition );
932  break;
933 
934  case NORM_CALL: /* same sequence as CALL */
935  case NORM_FORK:
936  childPtr = fpa1_sequenceParse( childCnt, callSeqCompArr, nextTagPosition );
937  break;
938 
939  case NORM_CLONE: /* same sequence as CLONE */
940  case NORM_GETAVAILABILITYSTATUS:
941  case NORM_GETENTRYPOINT:
942  case NORM_GETFILLCOLOUR:
943  case NORM_GETFIRSTITEM:
944  case NORM_GETFOCUSPOSITION:
945  case NORM_GETHIGHLIGHTSTATUS:
946  case NORM_GETINTERACTIONSTATUS:
947  case NORM_GETLABEL:
948  case NORM_GETLASTANCHORFIRED:
949  case NORM_GETLINECOLOUR:
950  case NORM_GETLINESTYLE:
951  case NORM_GETLINEWIDTH:
952  case NORM_GETLISTSIZE:
953  case NORM_GETOVERWRITEMODE:
954  case NORM_GETPORTION:
955  case NORM_GETRUNNINGSTATUS:
956  case NORM_GETSELECTIONSTATUS:
957  case NORM_GETSLIDERVALUE:
958  case NORM_GETTEXTCONTENT:
959  case NORM_GETTEXTDATA:
960  case NORM_GETTOKENPOSITION:
961  case NORM_GETVOLUME:
962  childPtr = fpa1_sequenceParse( childCnt, cloneSeqCompArr, nextTagPosition );
963  break;
964 
965  case NORM_DELITEM: /* same sequence as DELITEM */
966  case NORM_GETCOUNTERPOSITION:
967  case NORM_GETCOUNTERMAXPOSITION:
968  case NORM_PUTBEFORE:
969  case NORM_PUTBEHIND:
970  case NORM_SETPALETTEREF:
971  childPtr = fpa1_sequenceParse( childCnt, delItemSeqCompArr, nextTagPosition );
972  break;
973 
974  case NORM_DRAWARC: /* same sequence as DRAW ARC */
975  case NORM_DRAWSECTOR:
976  childPtr = fpa1_sequenceParse( childCnt, drawArcSeqCompArr, nextTagPosition );
977  break;
978 
979  case NORM_DRAWLINE: /* same sequence as DRAW LINE */
980  case NORM_DRAWOVAL:
981  case NORM_DRAWRECTANGLE:
982  childPtr = fpa1_sequenceParse( childCnt, drawLineSeqCompArr, nextTagPosition );
983  break;
984 
985  case NORM_DRAWPOLYGON: /* same sequnce as DRAW POLYGON */
986  case NORM_DRAWPOLYLINE:
987  childPtr = fpa1_sequenceParse( childCnt, drawPolySeqCompArr, nextTagPosition );
988  break;
989 
990  case NORM_GETBOXSIZE: /* same sequence as GET BOX SIZE */
991  case NORM_GETCURSORPOSITION:
992  case NORM_GETPOSITION:
993  case NORM_GETBITMAPDECODEOFFSET:
994  case NORM_GETVIDEODECODEOFFSET:
995  childPtr = fpa1_sequenceParse( childCnt, getBoxSizeSeqCompArr, nextTagPosition );
996  break;
997 
998  case NORM_GETCELLITEM: /* same sequence as GET CELL ITEM */
999  case NORM_GETITEMSTATUS:
1000  case NORM_GETLISTITEM:
1001  childPtr = fpa1_sequenceParse( childCnt, getCellItemSeqCompArr, nextTagPosition );
1002  break;
1003 
1004  case NORM_GETENGINESUPPORT:
1005  childPtr = fpa1_sequenceParse( childCnt, getEngSupSeqCompArr, nextTagPosition );
1006  break;
1007 
1008  case NORM_OPENCONNECTION:
1009  childPtr = fpa1_sequenceParse( childCnt, openConnSeqCompArr, nextTagPosition );
1010  break;
1011 
1012  case NORM_READPERSISTENT: /* same sequence as READ PERSISTENT */
1013  case NORM_STOREPERSISTENT:
1014  childPtr = fpa1_sequenceParse( childCnt, readPersistSeqCompArr, nextTagPosition );
1015  break;
1016 
1017  case NORM_SCALEBITMAP: /* same sequence as SCALEBITMAP */
1018  case NORM_SCALEVIDEO:
1019  case NORM_SETBOXSIZE:
1020  case NORM_SETCURSORPOSITION:
1021  case NORM_SETPOSITION:
1022  case NORM_SETBITMAPDECODEOFFSET:
1023  case NORM_SETVIDEODECODEOFFSET:
1024  childPtr = fpa1_sequenceParse( childCnt, scaleBitmapSeqCompArr, nextTagPosition );
1025  break;
1026 
1027  case NORM_SENDEVENT:
1028  fpa1_GenericDataCount++; /* in case have "event data" optional parameter */
1029  childPtr = fpa1_sequenceParse( childCnt, sendEventSeqCompArr, nextTagPosition );
1030  break;
1031 
1032  case NORM_SETCOUNTERTRIGGER:
1033  childPtr = fpa1_sequenceParse( childCnt, setCntTrigSeqCompArr, nextTagPosition );
1034  break;
1035 
1036  case NORM_SETCURSORSHAPE:
1037  childPtr = fpa1_sequenceParse( childCnt, setCurShapeSeqCompArr, nextTagPosition );
1038  break;
1039 
1040  case NORM_SETDATA:
1041  childPtr = fpa1_sequenceParse( childCnt, setDataSeqCompArr, nextTagPosition );
1042  break;
1043 
1044  case NORM_SETFILLCOLOUR:
1045  childPtr = fpa1_sequenceParse( childCnt, setFillColSeqCompArr, nextTagPosition );
1046  break;
1047 
1048  case NORM_SETFONTREF:
1049  childPtr = fpa1_sequenceParse( childCnt, setFontRefSeqCompArr, nextTagPosition );
1050  break;
1051 
1052  case NORM_SETHIGHLIGHTSTATUS: /* same sequence as SET_IAC_STATUS */
1053  case NORM_SETINTERACTIONSTATUS:
1054  case NORM_SETOVERWRITEMODE:
1055  childPtr = fpa1_sequenceParse( childCnt, setIacStatSeqCompArr, nextTagPosition );
1056  break;
1057 
1058  case NORM_SETLINECOLOUR: /* same sequence as SET LINE COLOUR */
1059  case NORM_SETTEXTCOLOUR:
1060  case NORM_SETBACKGROUNDCOLOUR:
1061  case NORM_SETDESKTOPCOLOUR:
1062  childPtr = fpa1_sequenceParse( childCnt, setLineColSeqCompArr, nextTagPosition );
1063  break;
1064 
1065  case NORM_SETSLIDERPARAMETERS: /* same sequence as SET SLIDER PARAMETERS */
1066  case NORM_SETCELLPOSITION:
1067  childPtr = fpa1_sequenceParse( childCnt, setSliderParametersSeqCompArr, nextTagPosition );
1068  break;
1069 
1070  case NORM_SETSPEED:
1071  childPtr = fpa1_sequenceParse( childCnt, setSpeedSeqCompArr, nextTagPosition );
1072  break;
1073 
1074  case NORM_SETTIMER:
1075  childPtr = fpa1_sequenceParse( childCnt, setTimerSeqCompArr, nextTagPosition );
1076  break;
1077 
1078  case NORM_SETVARIABLE:
1079  childPtr = fpa1_sequenceParse( childCnt, setVarSeqCompArr, nextTagPosition );
1080  break;
1081 
1082  case NORM_TESTVARIABLE:
1083  childPtr = fpa1_sequenceParse( childCnt, testVarSeqCompArr, nextTagPosition );
1084  break;
1085 
1086  case NORM_TRANSITIONTO:
1087  childPtr = fpa1_sequenceParse( childCnt, transToSeqCompArr, nextTagPosition );
1088  break;
1089 
1090  case NORM_GBOOL:
1091  childPtr = fpa1_choiceParse( genBooleanChoiceCompArr );
1092  break;
1093 
1094  case NORM_NEWCPRIO:
1095  fpa1_GenericDataCount++;
1096  /* fallthrough */
1097 
1098  case NORM_GINT: /* all GenericInteger choices */
1099  case NORM_NEWCOLIND:
1100  childPtr = fpa1_choiceParse( genIntChoiceCompArr );
1101  break;
1102 
1103  case NORM_GOSTRING: /* all GenericOctetstring choices */
1104  case NORM_NEWABSCOL:
1105  case NORM_NEWFONTNAME:
1106  childPtr = fpa1_choiceParse( genOctStrChoiceCompArr );
1107  break;
1108 
1109  case NORM_GCONTREF:
1110  childPtr = fpa1_choiceParse( genContRefChoiceCompArr );
1111  break;
1112  case NORM_NEWCSIZE:
1113  fpa1_GenericDataCount++;
1114  childPtr = fpa1_choiceParse( newContSizeChoiceCompArr );
1115  break;
1116  default:
1117  childPtr = NULL;
1118  }
1119 
1120  if (childPtr != NULL)
1121  {
1122  /* update list */
1123  listPtr->children = childPtr;
1124  listPtr->childCount[0] = childCnt[0];
1125  listPtr->childCount[1] = childCnt[1];
1126  listPtr->childCount[2] = childCnt[2];
1127  listPtr->dataTotal = fpa1_GenericDataCount - startGenericDataCnt;
1128 
1129  success = TRUE;
1130  }
1131  }
1132  }
1133 
1134  return success;
1135 } /* fpa1_tagsParse() */
1136 
fpa1_syntaxList * fpa1_setParse(int *, vpa1_filePos)
Definition: fpa1_set.c:178
int fpa1_rdfGetByteAbsolute(vpa1_filePos)
Definition: fpa1_rdf.c:402
Contains functions to decode MHEG-5 ASN.1 Token Group and Token Manager class components.
void fpa1_rdfMoveToContents(void)
Definition: fpa1_rdf.c:319
Contains functions/globals used to read MHEG-5 ASN.1 scripts.
Contains functions to decode MHEG-5 ASN.1 Integer class component.
Contains functions to decode MHEG-5 ASN.1 Link class components.
int fpa1_parseDataStr(fpa1_syntaxList *listPtr)
Definition: fpa1_tgs.c:430
int fpa1_parseData(fpa1_syntaxList *listPtr)
Gets primitave data item from script and puts it in current syntaxList item.
Definition: fpa1_tgs.c:510
Contains function to parse MHEG-5 ASN.1 tags.
Debug tracing.
Contains functions/structure used to do MHEG-5 ASN.1 syntax parsing.
Contains functions to decode MHEG-5 ASN.1 Text class components.
Contains functions to decode MHEG-5 ASN.1 Generic Boolean type.
Typedefs, macros used by all of parser. These may be duplicated elsewhere.
Contains functions to decode MHEG-5 ASN.1 List Group class components.
Contains functions to decode MHEG-5 ASN.1 Stream, Audio, Video, RTGraphics class components.
Contains functions to decode MHEG-5 ASN.1 XYPosition type.
Contains functions to decode MHEG-5 ASN.1 Generic Octet String type.
Typedefs for script reading functions.
int fpa1_rdfGetBooleanAbsolute(vpa1_filePos)
Definition: fpa1_rdf.c:447
int fpa1_rdfGetIntegerAbsolute(vpa1_filePos, int)
Definition: fpa1_rdf.c:418
Contains functions to decode MHEG-5 ASN.1 Generic Content Reference type.
Contains functions to decode MHEG-5 ASN.1 Action class components.
Contains macros for MHEG-5 ASN.1 tags and structures.
Contains functions to decode MHEG-5 ASN.1 Ingredient class components.
Contains functions to decode MHEG-5 ASN.1 Switch Button, Button, Hotspot, Push Button class component...
int fpa1_parseDataBool(fpa1_syntaxList *listPtr)
Definition: fpa1_tgs.c:395
Contains functions to decode MHEG-5 ASN.1 Slider, Interactible, Entry Field, Hyper Text class compone...
fpa1_syntaxList * fpa1_sequenceParse(unsigned short *, int *, vpa1_filePos)
Definition: fpa1_seq.c:65
Contains functions to decode MHEG-5 ASN.1 Object Reference, External Reference, Indirect Reference...
int fpa1_parseDataInt(fpa1_syntaxList *listPtr)
Definition: fpa1_tgs.c:346
fpa1_syntaxList * fpa1_sequenceOfParse(unsigned short *, int, vpa1_filePos)
Definition: fpa1_seq.c:140
fpa1_syntaxList * fpa1_decodeVariable(vpa1_filePos, int)
Definition: fpa1_var.c:75
Contains functions to decode MHEG-5 ASN.1 Scene class components.
int fpa1_tagsParse(fpa1_syntaxList *listPtr)
Definition: fpa1_tgs.c:532
Contains functions used to parse MHEG-5 ASN.1 SETs. SETs can have components in any order and as such...
Contains functions to decode MHEG-5 ASN.1 Application class components.
Contains functions to decode MHEG-5 ASN.1 Program, Resident Program, Remote Program and Interchanged ...
Contains memory management functions.
Contains functions used to parse MHEG-5 ASN.1 SEQUENCEs. SEQUENCEs have components in order...
Contains functions to decode MHEG-5 ASN.1 Palette, Font and Cursor Shape class components.
int fpa1_rdfSetNewFilePosition(vpa1_filePos)
Definition: fpa1_rdf.c:375
fpa1_syntaxList * fpa1_choiceParse(int *)
Definition: fpa1_cho.c:67