+++ /dev/null
-/*\r
- * GPAC - Multimedia Framework C SDK\r
- *\r
- * Authors: Jean le Feuvre\r
- * Copyright (c) 2005-200X ENST\r
- * All rights reserved\r
- *\r
- * This file is part of GPAC / LASeR codec sub-project\r
- *\r
- * GPAC is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU Lesser General Public License as published by\r
- * the Free Software Foundation; either version 2, or (at your option)\r
- * any later version.\r
- * \r
- * GPAC is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU Lesser General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU Lesser General Public\r
- * License along with this library; see the file COPYING. If not, write to\r
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. \r
- *\r
- */\r
-\r
-\r
-#ifndef _GF_LASER_DEV_H_\r
-#define _GF_LASER_DEV_H_\r
-\r
-#include <gpac/laser.h>\r
-\r
-/*per_stream config support*/\r
-typedef struct \r
-{\r
- GF_LASERConfig cfg;\r
- u16 ESID;\r
-} LASeRStreamInfo;\r
-\r
-typedef struct\r
-{\r
- /*colors can be encoded on up to 16 bits per comp*/\r
- u16 r, g, b;\r
-} LSRCol;\r
-\r
-struct __tag_laser_codec\r
-{\r
- GF_BitStream *bs;\r
- GF_SceneGraph *sg;\r
- GF_Err last_error;\r
-\r
- /*all attached streams*/\r
- GF_List *streamInfo;\r
-\r
- LASeRStreamInfo *info;\r
- Fixed res_factor/*2^-coord_res*/;\r
- /*duplicated from config*/\r
- u8 scale_bits;\r
- u8 coord_bits;\r
- u16 time_resolution;\r
- u16 color_scale;\r
-\r
- LSRCol *col_table;\r
- u32 nb_cols;\r
- /*computed dynamically*/\r
- u32 colorIndexBits;\r
- GF_List *font_table;\r
- u32 fontIndexBits;\r
-\r
- u32 privateData_id_index, privateTag_index;\r
-\r
- /*decoder only*/\r
- Double (*GetSceneTime)(void *cbk);\r
- void *cbk;\r
-\r
- /*sameElement coding*/\r
- SVG_Element *prev_g;\r
- SVG_Element *prev_line;\r
- SVG_Element *prev_path;\r
- SVG_Element *prev_polygon;\r
- SVG_Element *prev_rect;\r
- SVG_Element *prev_text;\r
- SVG_Element *prev_use;\r
- GF_Node *current_root;\r
-\r
- /*0: normal playback, store script content\r
- 1: memory decoding of scene, decompress script into commands\r
- */\r
- Bool memory_dec;\r
-\r
- GF_List *defered_hrefs;\r
- GF_List *defered_anims;\r
- GF_List *defered_listeners;\r
-\r
- char *cache_dir, *service_name;\r
- GF_List *unresolved_commands;\r
-};\r
-\r
-s32 gf_lsr_anim_type_from_attribute(u32 tag);\r
-s32 gf_lsr_anim_type_to_attribute(u32 tag);\r
-s32 gf_lsr_rare_type_from_attribute(u32 tag);\r
-s32 gf_lsr_rare_type_to_attribute(u32 tag);\r
-u32 gf_lsr_same_rare(SVGAllAttributes *elt_atts, SVGAllAttributes *base_atts);\r
-\r
-\r
-/*transform*/\r
-#define RARE_TRANSFORM 47\r
-\r
-enum\r
-{\r
- LSR_EVT_abort = 0,\r
- LSR_EVT_accessKey = 1,\r
- LSR_EVT_activate = 2,\r
- LSR_EVT_activatedEvent = 3,\r
- LSR_EVT_beginEvent = 4,\r
- LSR_EVT_click = 5,\r
- LSR_EVT_deactivatedEvent = 6,\r
- LSR_EVT_endEvent = 7,\r
- LSR_EVT_error = 8,\r
- LSR_EVT_executionTime = 9,\r
- LSR_EVT_focusin = 10,\r
- LSR_EVT_focusout = 11,\r
- LSR_EVT_keydown = 12,\r
- LSR_EVT_keyup = 13,\r
- LSR_EVT_load = 14,\r
- LSR_EVT_longAccessKey = 15,\r
- LSR_EVT_mousedown = 16,\r
- LSR_EVT_mousemove = 17,\r
- LSR_EVT_mouseout = 18,\r
- LSR_EVT_mouseover = 19,\r
- LSR_EVT_mouseup = 20,\r
- LSR_EVT_pause = 21,\r
- LSR_EVT_pausedEvent = 22,\r
- LSR_EVT_play = 23,\r
- LSR_EVT_repeatEvent = 24,\r
- LSR_EVT_repeatKey = 25,\r
- LSR_EVT_resize = 26,\r
- LSR_EVT_resumedEvent = 27,\r
- LSR_EVT_scroll = 28,\r
- LSR_EVT_shortAccessKey = 29,\r
- LSR_EVT_textinput = 30,\r
- LSR_EVT_unload = 31,\r
- LSR_EVT_zoom = 32\r
-}; \r
-\r
-u32 dom_to_lsr_key(u32 dom_k);\r
-\r
-\r
-#define LSR_UPDATE_TYPE_ROTATE 76\r
-#define LSR_UPDATE_TYPE_SCALE 79\r
-#define LSR_UPDATE_TYPE_SVG_HEIGHT 94\r
-#define LSR_UPDATE_TYPE_SVG_WIDTH 95\r
-#define LSR_UPDATE_TYPE_TEXT_CONTENT 107\r
-#define LSR_UPDATE_TYPE_TRANSFORM 108\r
-#define LSR_UPDATE_TYPE_TRANSLATION 110\r
-\r
-\r
-/*LASeR commands code*/\r
-enum\r
-{\r
- LSR_UPDATE_ADD = 0,\r
- LSR_UPDATE_CLEAN,\r
- LSR_UPDATE_DELETE,\r
- LSR_UPDATE_INSERT,\r
- LSR_UPDATE_NEW_SCENE,\r
- LSR_UPDATE_REFRESH_SCENE,\r
- LSR_UPDATE_REPLACE,\r
- LSR_UPDATE_RESTORE,\r
- LSR_UPDATE_SAVE,\r
- LSR_UPDATE_SEND_EVENT,\r
- LSR_UPDATE_EXTEND,\r
- LSR_UPDATE_TEXT_CONTENT\r
-};\r
-\r
-/*Code point Path code*/\r
-enum\r
-{\r
- LSR_PATH_COM_C = 0,\r
- LSR_PATH_COM_H,\r
- LSR_PATH_COM_L,\r
- LSR_PATH_COM_M, \r
- LSR_PATH_COM_Q, \r
- LSR_PATH_COM_S, \r
- LSR_PATH_COM_T, \r
- LSR_PATH_COM_V, \r
- LSR_PATH_COM_Z, \r
- LSR_PATH_COM_c, \r
- LSR_PATH_COM_h, \r
- LSR_PATH_COM_l, \r
- LSR_PATH_COM_m, \r
- LSR_PATH_COM_q, \r
- LSR_PATH_COM_s, \r
- LSR_PATH_COM_t,\r
- LSR_PATH_COM_v,\r
- LSR_PATH_COM_z\r
-};\r
-\r
-\r
-\r
-\r
-enum\r
-{\r
- LSR_SCENE_CONTENT_MODEL_a = 0,\r
- LSR_SCENE_CONTENT_MODEL_animate,\r
- LSR_SCENE_CONTENT_MODEL_animateColor,\r
- LSR_SCENE_CONTENT_MODEL_animateMotion,\r
- LSR_SCENE_CONTENT_MODEL_animateTransform,\r
- LSR_SCENE_CONTENT_MODEL_audio,\r
- LSR_SCENE_CONTENT_MODEL_circle,\r
- LSR_SCENE_CONTENT_MODEL_defs,\r
- LSR_SCENE_CONTENT_MODEL_desc,\r
- LSR_SCENE_CONTENT_MODEL_ellipse,\r
- LSR_SCENE_CONTENT_MODEL_foreignObject,\r
- LSR_SCENE_CONTENT_MODEL_g,\r
- LSR_SCENE_CONTENT_MODEL_image,\r
- LSR_SCENE_CONTENT_MODEL_line,\r
- LSR_SCENE_CONTENT_MODEL_linearGradient,\r
- LSR_SCENE_CONTENT_MODEL_metadata,\r
- LSR_SCENE_CONTENT_MODEL_mpath,\r
- LSR_SCENE_CONTENT_MODEL_path,\r
- LSR_SCENE_CONTENT_MODEL_polygon,\r
- LSR_SCENE_CONTENT_MODEL_polyline,\r
- LSR_SCENE_CONTENT_MODEL_radialGradient,\r
- LSR_SCENE_CONTENT_MODEL_rect,\r
- LSR_SCENE_CONTENT_MODEL_sameg,\r
- LSR_SCENE_CONTENT_MODEL_sameline,\r
- LSR_SCENE_CONTENT_MODEL_samepath,\r
- LSR_SCENE_CONTENT_MODEL_samepathfill,\r
- LSR_SCENE_CONTENT_MODEL_samepolygon,\r
- LSR_SCENE_CONTENT_MODEL_samepolygonfill,\r
- LSR_SCENE_CONTENT_MODEL_samepolygonstroke,\r
- LSR_SCENE_CONTENT_MODEL_samepolyline,\r
- LSR_SCENE_CONTENT_MODEL_samepolylinefill,\r
- LSR_SCENE_CONTENT_MODEL_samepolylinestroke,\r
- LSR_SCENE_CONTENT_MODEL_samerect,\r
- LSR_SCENE_CONTENT_MODEL_samerectfill,\r
- LSR_SCENE_CONTENT_MODEL_sametext,\r
- LSR_SCENE_CONTENT_MODEL_sametextfill,\r
- LSR_SCENE_CONTENT_MODEL_sameuse,\r
- LSR_SCENE_CONTENT_MODEL_script,\r
- LSR_SCENE_CONTENT_MODEL_set,\r
- LSR_SCENE_CONTENT_MODEL_stop,\r
- LSR_SCENE_CONTENT_MODEL_switch,\r
- LSR_SCENE_CONTENT_MODEL_text,\r
- LSR_SCENE_CONTENT_MODEL_title,\r
- LSR_SCENE_CONTENT_MODEL_tspan,\r
- LSR_SCENE_CONTENT_MODEL_use,\r
- LSR_SCENE_CONTENT_MODEL_video,\r
- LSR_SCENE_CONTENT_MODEL_listener,\r
- LSR_SCENE_CONTENT_MODEL_conditional,\r
- LSR_SCENE_CONTENT_MODEL_cursorManager,\r
- LSR_SCENE_CONTENT_MODEL_element_any,\r
- LSR_SCENE_CONTENT_MODEL_privateContainer,\r
- LSR_SCENE_CONTENT_MODEL_rectClip,\r
- LSR_SCENE_CONTENT_MODEL_selector,\r
- LSR_SCENE_CONTENT_MODEL_simpleLayout,\r
- LSR_SCENE_CONTENT_MODEL_textContent,\r
- LSR_SCENE_CONTENT_MODEL_extension,\r
-};\r
-\r
-enum\r
-{\r
- LSR_UPDATE_CONTENT_MODEL_a = 0,\r
- LSR_UPDATE_CONTENT_MODEL_animate,\r
- LSR_UPDATE_CONTENT_MODEL_animateColor,\r
- LSR_UPDATE_CONTENT_MODEL_animateMotion,\r
- LSR_UPDATE_CONTENT_MODEL_animateTransform,\r
- LSR_UPDATE_CONTENT_MODEL_audio,\r
- LSR_UPDATE_CONTENT_MODEL_circle,\r
- LSR_UPDATE_CONTENT_MODEL_defs,\r
- LSR_UPDATE_CONTENT_MODEL_desc,\r
- LSR_UPDATE_CONTENT_MODEL_ellipse,\r
- LSR_UPDATE_CONTENT_MODEL_foreignObject,\r
- LSR_UPDATE_CONTENT_MODEL_g,\r
- LSR_UPDATE_CONTENT_MODEL_image,\r
- LSR_UPDATE_CONTENT_MODEL_line,\r
- LSR_UPDATE_CONTENT_MODEL_linearGradient,\r
- LSR_UPDATE_CONTENT_MODEL_metadata,\r
- LSR_UPDATE_CONTENT_MODEL_mpath,\r
- LSR_UPDATE_CONTENT_MODEL_path,\r
- LSR_UPDATE_CONTENT_MODEL_polygon,\r
- LSR_UPDATE_CONTENT_MODEL_polyline,\r
- LSR_UPDATE_CONTENT_MODEL_radialGradient,\r
- LSR_UPDATE_CONTENT_MODEL_rect,\r
- LSR_UPDATE_CONTENT_MODEL_script,\r
- LSR_UPDATE_CONTENT_MODEL_set,\r
- LSR_UPDATE_CONTENT_MODEL_stop,\r
- LSR_UPDATE_CONTENT_MODEL_svg,\r
- LSR_UPDATE_CONTENT_MODEL_switch,\r
- LSR_UPDATE_CONTENT_MODEL_text,\r
- LSR_UPDATE_CONTENT_MODEL_title,\r
- LSR_UPDATE_CONTENT_MODEL_tspan,\r
- LSR_UPDATE_CONTENT_MODEL_use,\r
- LSR_UPDATE_CONTENT_MODEL_video,\r
- LSR_UPDATE_CONTENT_MODEL_listener,\r
-};\r
-\r
-enum\r
-{\r
- LSR_UPDATE_CONTENT_MODEL2_conditional = 0,\r
- LSR_UPDATE_CONTENT_MODEL2_cursorManager,\r
- LSR_UPDATE_CONTENT_MODEL2_extend,\r
- LSR_UPDATE_CONTENT_MODEL2_private,\r
- LSR_UPDATE_CONTENT_MODEL2_rectClip,\r
- LSR_UPDATE_CONTENT_MODEL2_selector,\r
- LSR_UPDATE_CONTENT_MODEL2_simpleLayout,\r
-};\r
-\r
-/*just to remember them, not implemented yet*/\r
-enum\r
-{\r
- LSR_SVG12_EXT_animation = 0,\r
- LSR_SVG12_EXT_discard,\r
- LSR_SVG12_EXT_font,\r
- LSR_SVG12_EXT_font_face,\r
- LSR_SVG12_EXT_font_face_src,\r
- LSR_SVG12_EXT_font_face_uri,\r
- LSR_SVG12_EXT_glyph,\r
- LSR_SVG12_EXT_handler,\r
- LSR_SVG12_EXT_hkern,\r
- LSR_SVG12_EXT_missingGlyph,\r
- LSR_SVG12_EXT_prefetch,\r
- LSR_SVG12_EXT_solidColor,\r
- LSR_SVG12_EXT_tBreak,\r
- LSR_SVG12_EXT_textArea,\r
-};\r
-\r
-/*just to remember them, not implemented yet*/\r
-enum\r
-{\r
- LSR_AMD1_EXT_animateScroll = 0,\r
- LSR_AMD1_EXT_setScroll,\r
- LSR_AMD1_EXT_streamSource,\r
- LSR_AMD1_EXT_updateSource,\r
-};\r
-\r
-#endif\r
-\r