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