OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / tstools / DtsEdit / src / gpac / internal / laser_dev.h
1 /*\r
2  *                      GPAC - Multimedia Framework C SDK\r
3  *\r
4  *                      Authors: Jean le Feuvre\r
5  *                              Copyright (c) 2005-200X ENST\r
6  *                                      All rights reserved\r
7  *\r
8  *  This file is part of GPAC / LASeR codec sub-project\r
9  *\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
14  *   \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
19  *   \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
23  *\r
24  */\r
25 \r
26 \r
27 #ifndef _GF_LASER_DEV_H_\r
28 #define _GF_LASER_DEV_H_\r
29 \r
30 #include <gpac/laser.h>\r
31 \r
32 /*per_stream config support*/\r
33 typedef struct \r
34 {\r
35         GF_LASERConfig cfg;\r
36         u16 ESID;\r
37 } LASeRStreamInfo;\r
38 \r
39 typedef struct\r
40 {\r
41         /*colors can be encoded on up to 16 bits per comp*/\r
42         u16 r, g, b;\r
43 } LSRCol;\r
44 \r
45 struct __tag_laser_codec\r
46 {\r
47         GF_BitStream *bs;\r
48         GF_SceneGraph *sg;\r
49         GF_Err last_error;\r
50 \r
51         /*all attached streams*/\r
52         GF_List *streamInfo;\r
53 \r
54         LASeRStreamInfo *info;\r
55         Fixed res_factor/*2^-coord_res*/;\r
56         /*duplicated from config*/\r
57         u8 scale_bits;\r
58         u8 coord_bits;\r
59         u16 time_resolution;\r
60         u16 color_scale;\r
61 \r
62         LSRCol *col_table;\r
63         u32 nb_cols;\r
64         /*computed dynamically*/\r
65         u32 colorIndexBits;\r
66         GF_List *font_table;\r
67         u32 fontIndexBits;\r
68 \r
69         u32 privateData_id_index, privateTag_index;\r
70 \r
71         /*decoder only*/\r
72         Double (*GetSceneTime)(void *cbk);\r
73         void *cbk;\r
74 \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
84 \r
85         /*0: normal playback, store script content\r
86           1: memory decoding of scene, decompress script into commands\r
87         */\r
88         Bool memory_dec;\r
89 \r
90         GF_List *defered_hrefs;\r
91         GF_List *defered_anims;\r
92         GF_List *defered_listeners;\r
93 \r
94         char *cache_dir, *service_name;\r
95         GF_List *unresolved_commands;\r
96 };\r
97 \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
103 \r
104 \r
105 /*transform*/\r
106 #define RARE_TRANSFORM                          47\r
107 \r
108 enum\r
109 {\r
110         LSR_EVT_abort = 0,\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
115         LSR_EVT_click = 5,\r
116         LSR_EVT_deactivatedEvent = 6,\r
117         LSR_EVT_endEvent = 7,\r
118         LSR_EVT_error = 8,\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
124         LSR_EVT_load = 14,\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
133         LSR_EVT_play = 23,\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
142         LSR_EVT_zoom = 32\r
143 };      \r
144 \r
145 u32 dom_to_lsr_key(u32 dom_k);\r
146 \r
147 \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
155 \r
156 \r
157 /*LASeR commands code*/\r
158 enum\r
159 {\r
160         LSR_UPDATE_ADD = 0,\r
161         LSR_UPDATE_CLEAN,\r
162         LSR_UPDATE_DELETE,\r
163         LSR_UPDATE_INSERT,\r
164         LSR_UPDATE_NEW_SCENE,\r
165         LSR_UPDATE_REFRESH_SCENE,\r
166         LSR_UPDATE_REPLACE,\r
167         LSR_UPDATE_RESTORE,\r
168         LSR_UPDATE_SAVE,\r
169         LSR_UPDATE_SEND_EVENT,\r
170         LSR_UPDATE_EXTEND,\r
171         LSR_UPDATE_TEXT_CONTENT\r
172 };\r
173 \r
174 /*Code point Path code*/\r
175 enum\r
176 {\r
177         LSR_PATH_COM_C = 0,\r
178         LSR_PATH_COM_H,\r
179         LSR_PATH_COM_L,\r
180         LSR_PATH_COM_M, \r
181         LSR_PATH_COM_Q, \r
182         LSR_PATH_COM_S, \r
183         LSR_PATH_COM_T, \r
184         LSR_PATH_COM_V, \r
185         LSR_PATH_COM_Z, \r
186         LSR_PATH_COM_c, \r
187         LSR_PATH_COM_h, \r
188         LSR_PATH_COM_l, \r
189         LSR_PATH_COM_m, \r
190         LSR_PATH_COM_q, \r
191         LSR_PATH_COM_s, \r
192         LSR_PATH_COM_t,\r
193         LSR_PATH_COM_v,\r
194         LSR_PATH_COM_z\r
195 };\r
196 \r
197 \r
198 \r
199 \r
200 enum\r
201 {\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
258 };\r
259 \r
260 enum\r
261 {\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
295 };\r
296 \r
297 enum\r
298 {\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
306 };\r
307 \r
308 /*just to remember them, not implemented yet*/\r
309 enum\r
310 {\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
325 };\r
326 \r
327 /*just to remember them, not implemented yet*/\r
328 enum\r
329 {\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
334 };\r
335 \r
336 #endif\r
337 \r