📄 svg_nodes_sani.c
字号:
info->name = "dur"; info->fieldType = SMIL_Duration_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->dur; return GF_OK; case 17: info->name = "repeatCount"; info->fieldType = SMIL_RepeatCount_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->repeatCount; return GF_OK; case 18: info->name = "repeatDur"; info->fieldType = SMIL_Duration_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->repeatDur; return GF_OK; case 19: info->name = "restart"; info->fieldType = SMIL_Restart_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->restart; return GF_OK; case 20: info->name = "min"; info->fieldType = SMIL_Duration_datatype; 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 = "to"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->to; return GF_OK; case 24: info->name = "from"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->from; return GF_OK; case 25: info->name = "by"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->by; return GF_OK; case 26: info->name = "values"; info->fieldType = SMIL_AnimateValues_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->values; return GF_OK; case 27: info->name = "calcMode"; info->fieldType = SMIL_CalcMode_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->calcMode; return GF_OK; case 28: info->name = "keySplines"; info->fieldType = SMIL_KeySplines_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->keySplines; return GF_OK; case 29: info->name = "keyTimes"; info->fieldType = SMIL_KeyTimes_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->keyTimes; return GF_OK; case 30: info->name = "accumulate"; info->fieldType = SMIL_Accumulate_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->accumulate; return GF_OK; case 31: info->name = "additive"; info->fieldType = SMIL_Additive_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->additive; return GF_OK; case 32: info->name = "lsr:enabled"; info->fieldType = SVG_Boolean_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->lsr_enabled; return GF_OK; case 33: info->name = "path"; info->fieldType = SVG_PathData_datatype; info->far_ptr = & ((SVG_SANI_animateMotionElement *)node)->path; return GF_OK; case 34: info->name = "keyPoints"; info->fieldType = SMIL_KeyPoints_datatype; info->far_ptr = & ((SVG_SANI_animateMotionElement *)node)->keyPoints; return GF_OK; case 35: info->name = "rotate"; info->fieldType = SVG_Rotate_datatype; info->far_ptr = & ((SVG_SANI_animateMotionElement *)node)->rotate; return GF_OK; case 36: info->name = "origin"; info->fieldType = SVG_String_datatype; info->far_ptr = & ((SVG_SANI_animateMotionElement *)node)->origin; return GF_OK; default: return GF_BAD_PARAM; }}void *gf_svg_sani_new_animateTransform(){ SVG_SANI_animateTransformElement *p; GF_SAFEALLOC(p, SVG_SANI_animateTransformElement); if (!p) return NULL; gf_node_setup((GF_Node *)p, TAG_SVG_SANI_animateTransform); gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS ((GF_Node *p)->sgprivate->name = "animateTransform"; ((GF_Node *p)->sgprivate->node_del = gf_svg_sani_animateTransform_del; ((GF_Node *p)->sgprivate->get_field = gf_svg_sani_animateTransform_get_attribute;#endif gf_svg_sani_init_core((SVG_SANI_Element *)p); gf_svg_sani_init_xlink((SVG_SANI_Element *)p); gf_svg_sani_init_timing((SVG_SANI_Element *)p); gf_svg_sani_init_anim((SVG_SANI_Element *)p); return p;}static void gf_svg_sani_animateTransform_del(GF_Node *node){ SVG_SANI_animateTransformElement *p = (SVG_SANI_animateTransformElement *)node; gf_svg_sani_reset_base_element((SVG_SANI_Element *)p); gf_sg_parent_reset((GF_Node *) p); gf_node_free((GF_Node *)p);}static GF_Err gf_svg_sani_animateTransform_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 = "xlink:href"; info->fieldType = XMLRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->href; return GF_OK; case 8: info->name = "xlink:show"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->show; return GF_OK; case 9: info->name = "xlink:title"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->title; return GF_OK; case 10: info->name = "xlink:actuate"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->actuate; return GF_OK; case 11: info->name = "xlink:role"; info->fieldType = XMLRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->role; return GF_OK; case 12: info->name = "xlink:arcrole"; info->fieldType = XMLRI_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->arcrole; return GF_OK; case 13: info->name = "xlink:type"; info->fieldType = SVG_String_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->xlink->type; return GF_OK; case 14: info->name = "begin"; info->fieldType = SMIL_Times_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->begin; return GF_OK; case 15: info->name = "end"; info->fieldType = SMIL_Times_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->end; return GF_OK; case 16: info->name = "dur"; info->fieldType = SMIL_Duration_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->dur; return GF_OK; case 17: info->name = "repeatCount"; info->fieldType = SMIL_RepeatCount_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->repeatCount; return GF_OK; case 18: info->name = "repeatDur"; info->fieldType = SMIL_Duration_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->repeatDur; return GF_OK; case 19: info->name = "restart"; info->fieldType = SMIL_Restart_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->timing->restart; return GF_OK; case 20: info->name = "min"; info->fieldType = SMIL_Duration_datatype; 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 = "attributeName"; info->fieldType = SMIL_AttributeName_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->attributeName; return GF_OK; case 24: info->name = "attributeType"; info->fieldType = SMIL_AttributeType_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->attributeType; return GF_OK; case 25: info->name = "to"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->to; return GF_OK; case 26: info->name = "from"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->from; return GF_OK; case 27: info->name = "by"; info->fieldType = SMIL_AnimateValue_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->by; return GF_OK; case 28: info->name = "values"; info->fieldType = SMIL_AnimateValues_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->values; return GF_OK; case 29: info->name = "type"; info->fieldType = SVG_TransformType_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->type; return GF_OK; case 30: info->name = "calcMode"; info->fieldType = SMIL_CalcMode_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->calcMode; return GF_OK; case 31: info->name = "keySplines"; info->fieldType = SMIL_KeySplines_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->keySplines; return GF_OK; case 32: info->name = "keyTimes"; info->fieldType = SMIL_KeyTimes_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->keyTimes; return GF_OK; case 33: info->name = "accumulate"; info->fieldType = SMIL_Accumulate_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->accumulate; return GF_OK; case 34: info->name = "additive"; info->fieldType = SMIL_Additive_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->additive; return GF_OK; case 35: info->name = "lsr:enabled"; info->fieldType = SVG_Boolean_datatype; info->far_ptr = &((SVG_SANI_Element *)node)->anim->lsr_enabled; return GF_OK; default: return GF_BAD_PARAM; }}void *gf_svg_sani_new_animation(){ SVG_SANI_animationElement *p; GF_SAFEALLOC(p, SVG_SANI_animationElement); if (!p) return NULL; gf_node_setup((GF_Node *)p, TAG_SVG_SANI_animation); gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS ((GF_Node *p)->sgprivate->name = "animation"; ((GF_Node *p)->sgprivate->node_del = gf_svg_sani_animation_del; ((GF_Node *p)->sgprivate->get_field = gf_svg_sani_animation_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_xlink((SVG_SANI_Element *)p); gf_svg_sani_init_timing((SVG_SANI_Element *)p); gf_svg_sani_init_sync((SVG_SANI_Element *)p); gf_svg_sani_init_conditional((SVG_SANI_Element *)p); gf_mx2d_init(p->transform.mat); p->audio_level.type = SVG_NUMBER_VALUE; p->audio_level.value = FIX_ONE; p->display = SVG_DISPLAY_INLINE; p->visibility = SVG_VISIBILITY_VISIBLE; p->viewport_fill.type = SVG_PAINT_NONE; p->viewport_fill_opacity.type = SVG_NUMBER_VALUE; p->viewport_fill_opacity.value = FIX_ONE; p->timing->dur.type = SMIL_DURATION_MEDIA; return p;}static void gf_svg_sani_animation_del(GF_Node *node){ SVG_SANI_animationElement *p = (SVG_SANI_animationElement *)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_animation_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";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -