📄 svg_nodes_sani.c
字号:
info->far_ptr = &((SVG_SANI_Element *)node)->timing->min; return GF_OK; case 21: info->name = "max"; info->fieldType = SMIL_Duration_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->max; return GF_OK; case 22: info->name = "fill"; info->fieldType = SMIL_Fill_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->fill; return GF_OK; case 23: info->name = "clipBegin"; info->fieldType = SVG_Clock_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->clipBegin; return GF_OK; case 24: info->name = "clipEnd"; info->fieldType = SVG_Clock_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->clipEnd; return GF_OK; case 25: info->name = "syncBehavior"; info->fieldType = SMIL_SyncBehavior_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncBehavior; return GF_OK; case 26: info->name = "syncTolerance"; info->fieldType = SMIL_SyncTolerance_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncTolerance; return GF_OK; case 27: info->name = "syncMaster"; info->fieldType = SVG_Boolean_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncMaster; return GF_OK; case 28: info->name = "syncReference"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncReference; return GF_OK; case 29: info->name = "requiredExtensions"; info->fieldType = SVG_ListOfIRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredExtensions; return GF_OK; case 30: info->name = "requiredFeatures"; info->fieldType = SVG_ListOfIRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFeatures; return GF_OK; case 31: info->name = "requiredFonts"; info->fieldType = SVG_FontList_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFonts; return GF_OK; case 32: info->name = "requiredFormats"; info->fieldType = SVG_FormatList_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFormats; return GF_OK; case 33: info->name = "systemLanguage"; info->fieldType = SVG_LanguageIDs_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->systemLanguage; return GF_OK; case 34: info->name = "type"; info->fieldType = SVG_ContentType_datatype; info->far_ptr = & ((SVG_SANI_audioElement *)node)->type; return GF_OK; case 35: info->name = "audio-level"; info->fieldType = SVG_Number_datatype; info->far_ptr = & ((SVG_SANI_audioElement *)node)->audio_level; return GF_OK; case 36: info->name = "display"; info->fieldType = SVG_Display_datatype; info->far_ptr = & ((SVG_SANI_audioElement *)node)->display; return GF_OK; default: return GF_BAD_PARAM; }}void *gf_svg_sani_new_circle(){ SVG_SANI_circleElement *p; GF_SAFEALLOC(p, SVG_SANI_circleElement); if (!p) return NULL; gf_node_setup((GF_Node *)p, TAG_SVG_SANI_circle); gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS ((GF_Node *p)->sgprivate->name = "circle"; ((GF_Node *p)->sgprivate->node_del = gf_svg_sani_circle_del; ((GF_Node *p)->sgprivate->get_field = gf_svg_sani_circle_get_attribute;#endif gf_svg_sani_init_core((SVG_SANI_Element *)p); gf_svg_sani_init_focus((SVG_SANI_Element *)p); gf_svg_sani_init_conditional((SVG_SANI_Element *)p); gf_mx2d_init(p->transform.mat); p->display = SVG_DISPLAY_INLINE; p->visibility = SVG_VISIBILITY_VISIBLE; p->fill_opacity.type = SVG_NUMBER_VALUE; p->fill_opacity.value = FIX_ONE; p->stroke_opacity.type = SVG_NUMBER_VALUE; p->stroke_opacity.value = FIX_ONE; p->fill.type = SVG_PAINT_COLOR; p->fill.color.type = SVG_COLOR_RGBCOLOR; p->fill_rule = SVG_FILLRULE_NONZERO; p->stroke.type = SVG_PAINT_NONE; p->stroke.color.type = SVG_COLOR_RGBCOLOR; p->stroke_dasharray.type = SVG_STROKEDASHARRAY_NONE; p->stroke_dashoffset.type = SVG_NUMBER_VALUE; p->stroke_linecap = SVG_STROKELINECAP_BUTT; p->stroke_linejoin = SVG_STROKELINEJOIN_MITER; p->stroke_miterlimit.type = SVG_NUMBER_VALUE; p->stroke_miterlimit.value = 4*FIX_ONE; p->stroke_width.type = SVG_NUMBER_VALUE; p->stroke_width.value = FIX_ONE; p->vector_effect = SVG_VECTOREFFECT_NONE; return p;}static void gf_svg_sani_circle_del(GF_Node *node){ SVG_SANI_circleElement *p = (SVG_SANI_circleElement *)node; gf_svg_sani_reset_base_element((SVG_SANI_Element *)p); if (p->motionTransform) free(p->motionTransform); gf_sg_parent_reset((GF_Node *) p); gf_node_free((GF_Node *)p);}static GF_Err gf_svg_sani_circle_get_attribute(GF_Node *node, GF_FieldInfo *info){ switch (info->fieldIndex) { case 0: info->name = "id"; info->fieldType = SVG_ID_datatype; info->far_ptr = gf_node_get_name_address(node); return GF_OK; case 1: info->name = "xml:id"; info->fieldType = SVG_ID_datatype; info->far_ptr = gf_node_get_name_address(node); return GF_OK; case 2: info->name = "class"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SA_Element *)node)->core->_class; return GF_OK; case 3: info->name = "xml:lang"; info->fieldType = SVG_LanguageID_datatype; info->far_ptr = &((SVG_SA_Element *)node)->core->lang; return GF_OK; case 4: info->name = "xml:base"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SA_Element *)node)->core->base; return GF_OK; case 5: info->name = "xml:space"; info->fieldType = XML_Space_datatype; info->far_ptr = &((SVG_SA_Element *)node)->core->space; return GF_OK; case 6: info->name = "externalResourcesRequired"; info->fieldType = SVG_Boolean_datatype; info->far_ptr = &((SVG_SA_Element *)node)->core->eRR; return GF_OK; case 7: info->name = "focusHighlight"; info->fieldType = SVG_FocusHighlight_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->focusHighlight; return GF_OK; case 8: info->name = "focusable"; info->fieldType = SVG_Boolean_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->focusable; return GF_OK; case 9: info->name = "nav-down"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down; return GF_OK; case 10: info->name = "nav-down-left"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down_left; return GF_OK; case 11: info->name = "nav-down-right"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down_right; return GF_OK; case 12: info->name = "nav-left"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_left; return GF_OK; case 13: info->name = "nav-next"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_next; return GF_OK; case 14: info->name = "nav-prev"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_prev; return GF_OK; case 15: info->name = "nav-right"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_right; return GF_OK; case 16: info->name = "nav-up"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up; return GF_OK; case 17: info->name = "nav-up-left"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up_left; return GF_OK; case 18: info->name = "nav-up-right"; info->fieldType = SVG_Focus_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up_right; return GF_OK; case 19: info->name = "requiredExtensions"; info->fieldType = SVG_ListOfIRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredExtensions; return GF_OK; case 20: info->name = "requiredFeatures"; info->fieldType = SVG_ListOfIRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFeatures; return GF_OK; case 21: info->name = "requiredFonts"; info->fieldType = SVG_FontList_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFonts; return GF_OK; case 22: info->name = "requiredFormats"; info->fieldType = SVG_FormatList_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFormats; return GF_OK; case 23: info->name = "systemLanguage"; info->fieldType = SVG_LanguageIDs_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->conditional->systemLanguage; return GF_OK; case 24: info->name = "transform"; info->fieldType = SVG_Transform_datatype; info->far_ptr = &((SVG_SANI_TransformableElement *)node)->transform; return GF_OK; case 25: info->name = "motionTransform"; info->fieldType = SVG_Transform_datatype; info->far_ptr = ((SVG_SANI_TransformableElement *)node)->motionTransform; return GF_OK; case 26: info->name = "display"; info->fieldType = SVG_Display_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->display; return GF_OK; case 27: info->name = "visibility"; info->fieldType = SVG_Visibility_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->visibility; return GF_OK; case 28: info->name = "pointer-events"; info->fieldType = SVG_PointerEvents_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->pointer_events; return GF_OK; case 29: info->name = "fill-opacity"; info->fieldType = SVG_Number_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill_opacity; return GF_OK; case 30: info->name = "stroke-opacity"; info->fieldType = SVG_Number_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_opacity; return GF_OK; case 31: info->name = "fill"; info->fieldType = SVG_Paint_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill; return GF_OK; case 32: info->name = "fill-rule"; info->fieldType = SVG_FillRule_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill_rule; return GF_OK; case 33: info->name = "stroke"; info->fieldType = SVG_Paint_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke; return GF_OK; case 34: info->name = "stroke-dasharray"; info->fieldType = SVG_StrokeDashArray_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_dasharray; return GF_OK; case 35: info->name = "stroke-dashoffset"; info->fieldType = SVG_Length_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_dashoffset; return GF_OK; case 36: info->name = "stroke-linecap"; info->fieldType = SVG_StrokeLineCap_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_linecap; return GF_OK; case 37: info->name = "stroke-linejoin"; info->fieldType = SVG_StrokeLineJoin_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_linejoin; return GF_OK; case 38: info->name = "stroke-miterlimit"; info->fieldType = SVG_Number_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_miterlimit; return GF_OK; case 39: info->name = "stroke-width"; info->fieldType = SVG_Length_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_width; return GF_OK; case 40: info->name = "vector-effect"; info->fieldType = SVG_VectorEffect_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->vector_effect; return GF_OK; case 41: info->name = "cx"; info->fieldType = SVG_Coordinate_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->cx; return GF_OK; case 42: info->name = "cy"; info->fieldType = SVG_Coordinate_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->cy; return GF_OK; case 43: info->name = "r"; info->fieldType = SVG_Length_datatype; info->far_ptr = & ((SVG_SANI_circleElement *)node)->r; return GF_OK; default: return GF_BAD_PARAM; }}void *gf_svg_sani_new_conditional(){ SVG_SANI_conditionalElement *p; GF_SAFEALLOC(p, SVG_SANI_conditionalElement); if (!p) return NULL; gf_node_setup((GF_Node *)p, TAG_SVG_SANI_conditional); gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS ((GF_Node *p)->sgprivate->name = "conditional"; ((GF_Node *p)->sgprivate->node_del = gf_svg_sani_conditional_del; ((GF_Node *p)->sgprivate->get_field = gf_svg_sani_conditional_get_attribute;#endif gf_svg_sani_init_core((SVG_SANI_Element *)p); gf_svg_sani_init_timing((SVG_SANI_Element *)p); gf_svg_sa_init_lsr_conditional(&p->updates); gf_svg_sani_init_timing((SVG_SANI_Element *)p); return p;}static void gf_svg_sani_conditional_del(GF_Node *node){ SVG_SANI_conditionalElement *p = (SVG_SANI_conditionalElement *)node; gf_svg_sani_reset_base_element((SVG_SANI_Element *)p); gf_svg_sa_reset_lsr_conditional(&p->updates); gf_sg_parent_reset((GF_Node *) p); gf_node_free((GF_Node *)p);}static GF_Err gf_svg_sani_conditional_get_attribute(GF_Node *node, GF_FieldInfo *info){ switch (info->fieldIndex) { case 0: info->name = "id"; info->fieldType = SVG_ID_datatype; info->far_ptr = gf_node_get_name_address(node); return GF_OK; case 1: info->name = "xml:id"; info->fieldType = SVG_ID_datatype; in
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -