1 /*
2  *			GPAC - Multimedia Framework C SDK
3  *
4  *			Authors: Cyril Concolato - Jean Le Feuvre
5  *    Copyright (c)2004-2012 Telecom ParisTech - All rights reserved
6  *
7  *  This file is part of GPAC / XML-based Scene Graph sub-project
8  *
9  *  GPAC is free software; you can redistribute it and/or modify
10  *  it under the terms of the GNU Lesser General Public License as published by
11  *  the Free Software Foundation; either version 2, or (at your option)
12  *  any later version.
13  *
14  *  GPAC is distributed in the hope that it will be useful,
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *  GNU Lesser General Public License for more details.
18  *
19  *  You should have received a copy of the GNU Lesser General Public
20  *  License along with this library; see the file COPYING.  If not, write to
21  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  */
24 
25 #ifndef _GF_XML_NODES_H
26 #define _GF_XML_NODES_H
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #include <gpac/scenegraph_svg.h>
33 
34 enum {
35 	TAG_SVG_a = GF_NODE_RANGE_FIRST_SVG,
36 	TAG_SVG_animate,
37 	TAG_SVG_animateColor,
38 	TAG_SVG_animateMotion,
39 	TAG_SVG_animateTransform,
40 	TAG_SVG_animation,
41 	TAG_SVG_audio,
42 	TAG_SVG_circle,
43 	TAG_SVG_defs,
44 	TAG_SVG_desc,
45 	TAG_SVG_discard,
46 	TAG_SVG_ellipse,
47 	TAG_SVG_font,
48 	TAG_SVG_font_face,
49 	TAG_SVG_font_face_src,
50 	TAG_SVG_font_face_uri,
51 	TAG_SVG_foreignObject,
52 	TAG_SVG_g,
53 	TAG_SVG_glyph,
54 	TAG_SVG_handler,
55 	TAG_SVG_hkern,
56 	TAG_SVG_image,
57 	TAG_SVG_line,
58 	TAG_SVG_linearGradient,
59 	TAG_SVG_listener,
60 	TAG_SVG_metadata,
61 	TAG_SVG_missing_glyph,
62 	TAG_SVG_mpath,
63 	TAG_SVG_path,
64 	TAG_SVG_polygon,
65 	TAG_SVG_polyline,
66 	TAG_SVG_prefetch,
67 	TAG_SVG_radialGradient,
68 	TAG_SVG_rect,
69 	TAG_SVG_script,
70 	TAG_SVG_set,
71 	TAG_SVG_solidColor,
72 	TAG_SVG_stop,
73 	TAG_SVG_svg,
74 	TAG_SVG_switch,
75 	TAG_SVG_tbreak,
76 	TAG_SVG_text,
77 	TAG_SVG_textArea,
78 	TAG_SVG_title,
79 	TAG_SVG_tspan,
80 	TAG_SVG_use,
81 	TAG_SVG_video,
82 
83 	TAG_SVG_filter,
84 	TAG_SVG_feDistantLight,
85 	TAG_SVG_fePointLight,
86 	TAG_SVG_feSpotLight,
87 	TAG_SVG_feBlend,
88 	TAG_SVG_feColorMatrix,
89 	TAG_SVG_feComponentTransfer,
90 	TAG_SVG_feFuncR,
91 	TAG_SVG_feFuncG,
92 	TAG_SVG_feFuncB,
93 	TAG_SVG_feFuncA,
94 	TAG_SVG_feComposite,
95 	TAG_SVG_feConvolveMatrix,
96 	TAG_SVG_feDiffuseLighting,
97 	TAG_SVG_feDisplacementMap,
98 	TAG_SVG_feFlood,
99 	TAG_SVG_feGaussianBlur,
100 	TAG_SVG_feImage,
101 	TAG_SVG_feMerge,
102 	TAG_SVG_feMorphology,
103 	TAG_SVG_feOffset,
104 	TAG_SVG_feSpecularLighting,
105 	TAG_SVG_feTile,
106 	TAG_SVG_feTurbulence,
107 
108 	TAG_LSR_conditional,
109 	TAG_LSR_cursorManager,
110 	TAG_LSR_rectClip,
111 	TAG_LSR_selector,
112 	TAG_LSR_simpleLayout,
113 	TAG_LSR_updates,
114 
115 	/*undefined elements (when parsing) use this tag*/
116 	TAG_SVG_UndefinedElement
117 };
118 
119 struct _all_atts {
120 	XML_Space *xml_space;
121 	XMLRI *xml_base;
122 	SVG_ID *xml_id;
123 	SVG_LanguageID *xml_lang;
124 
125 	DOM_String *xlink_type;
126 	XMLRI *xlink_role;
127 	XMLRI *xlink_arcrole;
128 	DOM_String *xlink_title;
129 	XMLRI *xlink_href;
130 	DOM_String *xlink_show;
131 	DOM_String *xlink_actuate;
132 
133 	XMLEV_Event *event;
134 	XMLEV_Phase *phase;
135 	XMLEV_Propagate *propagate;
136 	XMLEV_DefaultAction *defaultAction;
137 	XML_IDREF *observer;
138 	XML_IDREF *listener_target;
139 	XMLRI *handler;
140 
141 	SVG_ID *id;
142 	SVG_String *_class;
143 	SVG_ListOfIRI *requiredFeatures;
144 	SVG_ListOfIRI *requiredExtensions;
145 	SVG_FormatList *requiredFormats;
146 	SVG_FontList *requiredFonts;
147 	SVG_LanguageIDs *systemLanguage;
148 	SVG_Display *display;
149 	SVG_Visibility *visibility;
150 	SVG_RenderingHint *image_rendering;
151 	SVG_PointerEvents *pointer_events;
152 	SVG_RenderingHint *shape_rendering;
153 	SVG_RenderingHint *text_rendering;
154 	SVG_Number *audio_level;
155 	SVG_Paint *viewport_fill;
156 	SVG_Number *viewport_fill_opacity;
157 	SVG_String *overflow;
158 	SVG_Number *fill_opacity;
159 	SVG_Number *stroke_opacity;
160 	SVG_Paint *fill;
161 	SVG_FillRule *fill_rule;
162 	SVG_Paint *filter;
163 	SVG_Paint *stroke;
164 	SVG_StrokeDashArray *stroke_dasharray;
165 	SVG_Length *stroke_dashoffset;
166 	SVG_StrokeLineCap *stroke_linecap;
167 	SVG_StrokeLineJoin *stroke_linejoin;
168 	SVG_Number *stroke_miterlimit;
169 	SVG_Length *stroke_width;
170 	SVG_Paint *color;
171 	SVG_RenderingHint *color_rendering;
172 	SVG_VectorEffect *vector_effect;
173 	SVG_SVGColor *solid_color;
174 	SVG_Number *solid_opacity;
175 	SVG_DisplayAlign *display_align;
176 	SVG_Number *line_increment;
177 	SVG_SVGColor *stop_color;
178 	SVG_Number *stop_opacity;
179 	SVG_FontFamily *font_family;
180 	SVG_FontSize *font_size;
181 	SVG_FontStyle *font_style;
182 	SVG_FontVariant *font_variant;
183 	SVG_FontWeight *font_weight;
184 	SVG_TextAnchor *text_anchor;
185 	SVG_TextAlign *text_align;
186 	SVG_String *text_decoration;
187 	SVG_FocusHighlight *focusHighlight;
188 	SVG_Boolean *externalResourcesRequired;
189 	SVG_Focusable *focusable;
190 	SVG_Focus *nav_next;
191 	SVG_Focus *nav_prev;
192 	SVG_Focus *nav_up;
193 	SVG_Focus *nav_up_right;
194 	SVG_Focus *nav_right;
195 	SVG_Focus *nav_down_right;
196 	SVG_Focus *nav_down;
197 	SVG_Focus *nav_down_left;
198 	SVG_Focus *nav_left;
199 	SVG_Focus *nav_up_left;
200 	SVG_Transform *transform;
201 	SVG_String *target;
202 	SMIL_AttributeName *attributeName;
203 	SMIL_AttributeType *attributeType;
204 	SMIL_Times *begin;
205 	SVG_Boolean *lsr_enabled;
206 	SMIL_Duration *dur;
207 	SMIL_Times *end;
208 	SMIL_RepeatCount *repeatCount;
209 	SMIL_Duration *repeatDur;
210 	SMIL_Restart *restart;
211 	SMIL_Fill *smil_fill;
212 	SMIL_Duration *min;
213 	SMIL_Duration *max;
214 	SMIL_AnimateValue *to;
215 	SMIL_CalcMode *calcMode;
216 	SMIL_AnimateValues *values;
217 	SMIL_KeyTimes *keyTimes;
218 	SMIL_KeySplines *keySplines;
219 	SMIL_AnimateValue *from;
220 	SMIL_AnimateValue *by;
221 	SMIL_Additive *additive;
222 	SMIL_Accumulate *accumulate;
223 	SVG_PathData *path;
224 	SMIL_KeyPoints *keyPoints;
225 	SVG_Rotate *rotate;
226 	SVG_String *origin;
227 	SVG_TransformType *transform_type;
228 	SVG_Clock *clipBegin;
229 	SVG_Clock *clipEnd;
230 	SMIL_SyncBehavior *syncBehavior;
231 	SMIL_SyncTolerance *syncTolerance;
232 	SVG_Boolean *syncMaster;
233 	XMLRI *syncReference;
234 	SVG_Coordinate *x;
235 	SVG_Coordinate *y;
236 	SVG_Length *width;
237 	SVG_Length *height;
238 	SVG_PreserveAspectRatio *preserveAspectRatio;
239 	SVG_InitialVisibility *initialVisibility;
240 	SVG_ContentType *type;
241 	SVG_Coordinate *cx;
242 	SVG_Coordinate *cy;
243 	SVG_Length *r;
244 	SVG_Length *cursorManager_x;
245 	SVG_Length *cursorManager_y;
246 	SVG_Length *rx;
247 	SVG_Length *ry;
248 	SVG_Number *horiz_adv_x;
249 	SVG_Number *horiz_origin_x;
250 	SVG_String *font_stretch;
251 	SVG_String *unicode_range;
252 	SVG_String *panose_1;
253 	SVG_String *widths;
254 	SVG_String *bbox;
255 	SVG_Number *units_per_em;
256 	SVG_Number *stemv;
257 	SVG_Number *stemh;
258 	SVG_Number *slope;
259 	SVG_Number *cap_height;
260 	SVG_Number *x_height;
261 	SVG_Number *accent_height;
262 	SVG_Number *ascent;
263 	SVG_Number *descent;
264 	SVG_Number *ideographic;
265 	SVG_Number *alphabetic;
266 	SVG_Number *mathematical;
267 	SVG_Number *hanging;
268 	SVG_Number *underline_position;
269 	SVG_Number *underline_thickness;
270 	SVG_Number *strikethrough_position;
271 	SVG_Number *strikethrough_thickness;
272 	SVG_Number *overline_position;
273 	SVG_Number *overline_thickness;
274 	SVG_PathData *d;
275 	SVG_String *unicode;
276 	SVG_String *glyph_name;
277 	SVG_String *arabic_form;
278 	SVG_LanguageIDs *lang;
279 	SVG_String *u1;
280 	SVG_String *g1;
281 	SVG_String *u2;
282 	SVG_String *g2;
283 	SVG_Number *k;
284 	SVG_Number *opacity;
285 	SVG_Coordinate *x1;
286 	SVG_Coordinate *y1;
287 	SVG_Coordinate *x2;
288 	SVG_Coordinate *y2;
289 	SVG_GradientUnit *gradientUnits;
290 	SVG_GradientUnit *filterUnits;
291 	SVG_SpreadMethod *spreadMethod;
292 	SVG_Transform *gradientTransform;
293 	SVG_Number *pathLength;
294 	SVG_Points *points;
295 	SVG_Number *mediaSize;
296 	SVG_String *mediaTime;
297 	SVG_String *mediaCharacterEncoding;
298 	SVG_String *mediaContentEncodings;
299 	SVG_Number *bandwidth;
300 	SVG_Coordinate *fx;
301 	SVG_Coordinate *fy;
302 	LASeR_Size *size;
303 	LASeR_Choice *choice;
304 	LASeR_Size *delta;
305 	SVG_Number *offset;
306 	SMIL_SyncBehavior *syncBehaviorDefault;
307 	SMIL_SyncTolerance *syncToleranceDefault;
308 	SVG_ViewBox *viewBox;
309 	SVG_ZoomAndPan *zoomAndPan;
310 	SVG_String *version;
311 	SVG_String *baseProfile;
312 	SVG_ContentType *contentScriptType;
313 	SVG_Clock *snapshotTime;
314 	SVG_TimelineBegin *timelineBegin;
315 	SVG_PlaybackOrder *playbackOrder;
316 	SVG_Boolean *editable;
317 	SVG_Coordinates *text_x;
318 	SVG_Coordinates *text_y;
319 	SVG_Numbers *text_rotate;
320 	SVG_TransformBehavior *transformBehavior;
321 	SVG_Overlay *overlay;
322 	SVG_Boolean *fullscreen;
323 	SVG_Motion *motionTransform;
324 
325 	SVG_Boolean *gpac_useAsPrimary;
326 	SVG_Number *gpac_depthOffset;
327 	SVG_Number *gpac_depthGain;
328 };
329 #ifdef __cplusplus
330 }
331 #endif
332 
333 
334 
335 #endif		/*_GF_SVG_NODES_H*/
336 
337