2 * GPAC - Multimedia Framework C SDK
\r
4 * Authors: Jean le Feuvre
\r
5 * Copyright (c) 2005-200X ENST
\r
6 * All rights reserved
\r
8 * This file is part of GPAC / LASeR codec sub-project
\r
10 * GPAC is free software; you can redistribute it and/or modify
\r
11 * it under the terms of the GNU Lesser General Public License as published by
\r
12 * the Free Software Foundation; either version 2, or (at your option)
\r
13 * any later version.
\r
15 * GPAC is distributed in the hope that it will be useful,
\r
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
18 * GNU Lesser General Public License for more details.
\r
20 * You should have received a copy of the GNU Lesser General Public
\r
21 * License along with this library; see the file COPYING. If not, write to
\r
22 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
\r
27 #ifndef _GF_LASER_DEV_H_
\r
28 #define _GF_LASER_DEV_H_
\r
30 #include <gpac/laser.h>
\r
32 /*per_stream config support*/
\r
41 /*colors can be encoded on up to 16 bits per comp*/
\r
45 struct __tag_laser_codec
\r
51 /*all attached streams*/
\r
52 GF_List *streamInfo;
\r
54 LASeRStreamInfo *info;
\r
55 Fixed res_factor/*2^-coord_res*/;
\r
56 /*duplicated from config*/
\r
59 u16 time_resolution;
\r
64 /*computed dynamically*/
\r
66 GF_List *font_table;
\r
69 u32 privateData_id_index, privateTag_index;
\r
72 Double (*GetSceneTime)(void *cbk);
\r
75 /*sameElement coding*/
\r
76 SVG_Element *prev_g;
\r
77 SVG_Element *prev_line;
\r
78 SVG_Element *prev_path;
\r
79 SVG_Element *prev_polygon;
\r
80 SVG_Element *prev_rect;
\r
81 SVG_Element *prev_text;
\r
82 SVG_Element *prev_use;
\r
83 GF_Node *current_root;
\r
85 /*0: normal playback, store script content
\r
86 1: memory decoding of scene, decompress script into commands
\r
90 GF_List *defered_hrefs;
\r
91 GF_List *defered_anims;
\r
92 GF_List *defered_listeners;
\r
94 char *cache_dir, *service_name;
\r
95 GF_List *unresolved_commands;
\r
98 s32 gf_lsr_anim_type_from_attribute(u32 tag);
\r
99 s32 gf_lsr_anim_type_to_attribute(u32 tag);
\r
100 s32 gf_lsr_rare_type_from_attribute(u32 tag);
\r
101 s32 gf_lsr_rare_type_to_attribute(u32 tag);
\r
102 u32 gf_lsr_same_rare(SVGAllAttributes *elt_atts, SVGAllAttributes *base_atts);
\r
106 #define RARE_TRANSFORM 47
\r
111 LSR_EVT_accessKey = 1,
\r
112 LSR_EVT_activate = 2,
\r
113 LSR_EVT_activatedEvent = 3,
\r
114 LSR_EVT_beginEvent = 4,
\r
116 LSR_EVT_deactivatedEvent = 6,
\r
117 LSR_EVT_endEvent = 7,
\r
119 LSR_EVT_executionTime = 9,
\r
120 LSR_EVT_focusin = 10,
\r
121 LSR_EVT_focusout = 11,
\r
122 LSR_EVT_keydown = 12,
\r
123 LSR_EVT_keyup = 13,
\r
125 LSR_EVT_longAccessKey = 15,
\r
126 LSR_EVT_mousedown = 16,
\r
127 LSR_EVT_mousemove = 17,
\r
128 LSR_EVT_mouseout = 18,
\r
129 LSR_EVT_mouseover = 19,
\r
130 LSR_EVT_mouseup = 20,
\r
131 LSR_EVT_pause = 21,
\r
132 LSR_EVT_pausedEvent = 22,
\r
134 LSR_EVT_repeatEvent = 24,
\r
135 LSR_EVT_repeatKey = 25,
\r
136 LSR_EVT_resize = 26,
\r
137 LSR_EVT_resumedEvent = 27,
\r
138 LSR_EVT_scroll = 28,
\r
139 LSR_EVT_shortAccessKey = 29,
\r
140 LSR_EVT_textinput = 30,
\r
141 LSR_EVT_unload = 31,
\r
145 u32 dom_to_lsr_key(u32 dom_k);
\r
148 #define LSR_UPDATE_TYPE_ROTATE 76
\r
149 #define LSR_UPDATE_TYPE_SCALE 79
\r
150 #define LSR_UPDATE_TYPE_SVG_HEIGHT 94
\r
151 #define LSR_UPDATE_TYPE_SVG_WIDTH 95
\r
152 #define LSR_UPDATE_TYPE_TEXT_CONTENT 107
\r
153 #define LSR_UPDATE_TYPE_TRANSFORM 108
\r
154 #define LSR_UPDATE_TYPE_TRANSLATION 110
\r
157 /*LASeR commands code*/
\r
160 LSR_UPDATE_ADD = 0,
\r
164 LSR_UPDATE_NEW_SCENE,
\r
165 LSR_UPDATE_REFRESH_SCENE,
\r
166 LSR_UPDATE_REPLACE,
\r
167 LSR_UPDATE_RESTORE,
\r
169 LSR_UPDATE_SEND_EVENT,
\r
171 LSR_UPDATE_TEXT_CONTENT
\r
174 /*Code point Path code*/
\r
177 LSR_PATH_COM_C = 0,
\r
202 LSR_SCENE_CONTENT_MODEL_a = 0,
\r
203 LSR_SCENE_CONTENT_MODEL_animate,
\r
204 LSR_SCENE_CONTENT_MODEL_animateColor,
\r
205 LSR_SCENE_CONTENT_MODEL_animateMotion,
\r
206 LSR_SCENE_CONTENT_MODEL_animateTransform,
\r
207 LSR_SCENE_CONTENT_MODEL_audio,
\r
208 LSR_SCENE_CONTENT_MODEL_circle,
\r
209 LSR_SCENE_CONTENT_MODEL_defs,
\r
210 LSR_SCENE_CONTENT_MODEL_desc,
\r
211 LSR_SCENE_CONTENT_MODEL_ellipse,
\r
212 LSR_SCENE_CONTENT_MODEL_foreignObject,
\r
213 LSR_SCENE_CONTENT_MODEL_g,
\r
214 LSR_SCENE_CONTENT_MODEL_image,
\r
215 LSR_SCENE_CONTENT_MODEL_line,
\r
216 LSR_SCENE_CONTENT_MODEL_linearGradient,
\r
217 LSR_SCENE_CONTENT_MODEL_metadata,
\r
218 LSR_SCENE_CONTENT_MODEL_mpath,
\r
219 LSR_SCENE_CONTENT_MODEL_path,
\r
220 LSR_SCENE_CONTENT_MODEL_polygon,
\r
221 LSR_SCENE_CONTENT_MODEL_polyline,
\r
222 LSR_SCENE_CONTENT_MODEL_radialGradient,
\r
223 LSR_SCENE_CONTENT_MODEL_rect,
\r
224 LSR_SCENE_CONTENT_MODEL_sameg,
\r
225 LSR_SCENE_CONTENT_MODEL_sameline,
\r
226 LSR_SCENE_CONTENT_MODEL_samepath,
\r
227 LSR_SCENE_CONTENT_MODEL_samepathfill,
\r
228 LSR_SCENE_CONTENT_MODEL_samepolygon,
\r
229 LSR_SCENE_CONTENT_MODEL_samepolygonfill,
\r
230 LSR_SCENE_CONTENT_MODEL_samepolygonstroke,
\r
231 LSR_SCENE_CONTENT_MODEL_samepolyline,
\r
232 LSR_SCENE_CONTENT_MODEL_samepolylinefill,
\r
233 LSR_SCENE_CONTENT_MODEL_samepolylinestroke,
\r
234 LSR_SCENE_CONTENT_MODEL_samerect,
\r
235 LSR_SCENE_CONTENT_MODEL_samerectfill,
\r
236 LSR_SCENE_CONTENT_MODEL_sametext,
\r
237 LSR_SCENE_CONTENT_MODEL_sametextfill,
\r
238 LSR_SCENE_CONTENT_MODEL_sameuse,
\r
239 LSR_SCENE_CONTENT_MODEL_script,
\r
240 LSR_SCENE_CONTENT_MODEL_set,
\r
241 LSR_SCENE_CONTENT_MODEL_stop,
\r
242 LSR_SCENE_CONTENT_MODEL_switch,
\r
243 LSR_SCENE_CONTENT_MODEL_text,
\r
244 LSR_SCENE_CONTENT_MODEL_title,
\r
245 LSR_SCENE_CONTENT_MODEL_tspan,
\r
246 LSR_SCENE_CONTENT_MODEL_use,
\r
247 LSR_SCENE_CONTENT_MODEL_video,
\r
248 LSR_SCENE_CONTENT_MODEL_listener,
\r
249 LSR_SCENE_CONTENT_MODEL_conditional,
\r
250 LSR_SCENE_CONTENT_MODEL_cursorManager,
\r
251 LSR_SCENE_CONTENT_MODEL_element_any,
\r
252 LSR_SCENE_CONTENT_MODEL_privateContainer,
\r
253 LSR_SCENE_CONTENT_MODEL_rectClip,
\r
254 LSR_SCENE_CONTENT_MODEL_selector,
\r
255 LSR_SCENE_CONTENT_MODEL_simpleLayout,
\r
256 LSR_SCENE_CONTENT_MODEL_textContent,
\r
257 LSR_SCENE_CONTENT_MODEL_extension,
\r
262 LSR_UPDATE_CONTENT_MODEL_a = 0,
\r
263 LSR_UPDATE_CONTENT_MODEL_animate,
\r
264 LSR_UPDATE_CONTENT_MODEL_animateColor,
\r
265 LSR_UPDATE_CONTENT_MODEL_animateMotion,
\r
266 LSR_UPDATE_CONTENT_MODEL_animateTransform,
\r
267 LSR_UPDATE_CONTENT_MODEL_audio,
\r
268 LSR_UPDATE_CONTENT_MODEL_circle,
\r
269 LSR_UPDATE_CONTENT_MODEL_defs,
\r
270 LSR_UPDATE_CONTENT_MODEL_desc,
\r
271 LSR_UPDATE_CONTENT_MODEL_ellipse,
\r
272 LSR_UPDATE_CONTENT_MODEL_foreignObject,
\r
273 LSR_UPDATE_CONTENT_MODEL_g,
\r
274 LSR_UPDATE_CONTENT_MODEL_image,
\r
275 LSR_UPDATE_CONTENT_MODEL_line,
\r
276 LSR_UPDATE_CONTENT_MODEL_linearGradient,
\r
277 LSR_UPDATE_CONTENT_MODEL_metadata,
\r
278 LSR_UPDATE_CONTENT_MODEL_mpath,
\r
279 LSR_UPDATE_CONTENT_MODEL_path,
\r
280 LSR_UPDATE_CONTENT_MODEL_polygon,
\r
281 LSR_UPDATE_CONTENT_MODEL_polyline,
\r
282 LSR_UPDATE_CONTENT_MODEL_radialGradient,
\r
283 LSR_UPDATE_CONTENT_MODEL_rect,
\r
284 LSR_UPDATE_CONTENT_MODEL_script,
\r
285 LSR_UPDATE_CONTENT_MODEL_set,
\r
286 LSR_UPDATE_CONTENT_MODEL_stop,
\r
287 LSR_UPDATE_CONTENT_MODEL_svg,
\r
288 LSR_UPDATE_CONTENT_MODEL_switch,
\r
289 LSR_UPDATE_CONTENT_MODEL_text,
\r
290 LSR_UPDATE_CONTENT_MODEL_title,
\r
291 LSR_UPDATE_CONTENT_MODEL_tspan,
\r
292 LSR_UPDATE_CONTENT_MODEL_use,
\r
293 LSR_UPDATE_CONTENT_MODEL_video,
\r
294 LSR_UPDATE_CONTENT_MODEL_listener,
\r
299 LSR_UPDATE_CONTENT_MODEL2_conditional = 0,
\r
300 LSR_UPDATE_CONTENT_MODEL2_cursorManager,
\r
301 LSR_UPDATE_CONTENT_MODEL2_extend,
\r
302 LSR_UPDATE_CONTENT_MODEL2_private,
\r
303 LSR_UPDATE_CONTENT_MODEL2_rectClip,
\r
304 LSR_UPDATE_CONTENT_MODEL2_selector,
\r
305 LSR_UPDATE_CONTENT_MODEL2_simpleLayout,
\r
308 /*just to remember them, not implemented yet*/
\r
311 LSR_SVG12_EXT_animation = 0,
\r
312 LSR_SVG12_EXT_discard,
\r
313 LSR_SVG12_EXT_font,
\r
314 LSR_SVG12_EXT_font_face,
\r
315 LSR_SVG12_EXT_font_face_src,
\r
316 LSR_SVG12_EXT_font_face_uri,
\r
317 LSR_SVG12_EXT_glyph,
\r
318 LSR_SVG12_EXT_handler,
\r
319 LSR_SVG12_EXT_hkern,
\r
320 LSR_SVG12_EXT_missingGlyph,
\r
321 LSR_SVG12_EXT_prefetch,
\r
322 LSR_SVG12_EXT_solidColor,
\r
323 LSR_SVG12_EXT_tBreak,
\r
324 LSR_SVG12_EXT_textArea,
\r
327 /*just to remember them, not implemented yet*/
\r
330 LSR_AMD1_EXT_animateScroll = 0,
\r
331 LSR_AMD1_EXT_setScroll,
\r
332 LSR_AMD1_EXT_streamSource,
\r
333 LSR_AMD1_EXT_updateSource,
\r