Ejemplo n.º 1
0
    def __init__(self, anim_node):
        self.name = anim_node.getElementsByTagName(NAME_NODE).item(0).firstChild.nodeValue
        self.group = anim_node.getElementsByTagName(GROUP_NODE).item(0).firstChild.nodeValue
        self.project_file = anim_node.getElementsByTagName(NATRON_PROJECT_FILE_NODE).item(0).firstChild.nodeValue
                
        self.property_node_list = anim_node.getElementsByTagName(PROPERTY)
        self.interpretation_node_list = anim_node.getElementsByTagName(INTERPRETATION)

        self.properties = propertyparse.node_list_to_properties_array(self.property_node_list)
        self.property_args = propertyparse.node_list_to_args_dict(self.property_node_list)

        self.length = anim_node.getElementsByTagName(LENGTH_NODE).item(0).firstChild.nodeValue

        # Create dict for interpretations for each property: property name -> (natron_node, natron_property, interpretation, args)
        self.interpretations = {}
        for i_node in self.interpretation_node_list:
            natron_node = i_node.getAttribute(NATRON_NODE_NAME_ATTR)
            natron_property = i_node.getAttribute(NATRON_PROPERTY_NAME_ATTR)
            args_str = i_node.getAttribute(ARGS_ATTR)
            if len(args_str) == 0:
                args = None
            else:
                args = propertyparse.args_string_to_args_dict(args_str)
             
            interpretation = i_node.firstChild.nodeValue
            
            self.interpretations[i_node.getAttribute(NAME_ATTR)] = (natron_node, natron_property, interpretation, args)
Ejemplo n.º 2
0
    def __init__(self, anim_node):
        self.name = anim_node.getElementsByTagName(NAME_NODE).item(
            0).firstChild.nodeValue
        self.group = anim_node.getElementsByTagName(GROUP_NODE).item(
            0).firstChild.nodeValue
        self.project_file = anim_node.getElementsByTagName(
            NATRON_PROJECT_FILE_NODE).item(0).firstChild.nodeValue

        self.property_node_list = anim_node.getElementsByTagName(PROPERTY)
        self.interpretation_node_list = anim_node.getElementsByTagName(
            INTERPRETATION)

        self.properties = propertyparse.node_list_to_properties_array(
            self.property_node_list)
        self.property_args = propertyparse.node_list_to_args_dict(
            self.property_node_list)

        self.length = anim_node.getElementsByTagName(LENGTH_NODE).item(
            0).firstChild.nodeValue

        # Create dict for interpretations for each property: property name -> (natron_node, natron_property, interpretation, args)
        self.interpretations = {}
        for i_node in self.interpretation_node_list:
            natron_node = i_node.getAttribute(NATRON_NODE_NAME_ATTR)
            natron_property = i_node.getAttribute(NATRON_PROPERTY_NAME_ATTR)
            args_str = i_node.getAttribute(ARGS_ATTR)
            if len(args_str) == 0:
                args = None
            else:
                args = propertyparse.args_string_to_args_dict(args_str)

            interpretation = i_node.firstChild.nodeValue

            self.interpretations[i_node.getAttribute(NAME_ATTR)] = (
                natron_node, natron_property, interpretation, args)
Ejemplo n.º 3
0
    def __init__(self, filter_node):
        self.mlt_service_id = filter_node.getAttribute(ID)

        try:
            self.multipart_filter = (
                filter_node.getAttribute(MULTIPART_FILTER) == "true")
        except:  # default is False
            self.multipart_filter = False

        try:
            self.mlt_drop_version = filter_node.getAttribute(MLT_DROP_VERSION)
        except:
            self.mlt_drop_version = None

        try:
            self.mlt_min_version = filter_node.getAttribute(MLT_MIN_VERSION)
        except:
            self.mlt_min_version = None

        self.xml = filter_node.toxml()
        self.name = filter_node.getElementsByTagName(NAME).item(
            0).firstChild.nodeValue
        self.group = filter_node.getElementsByTagName(GROUP).item(
            0).firstChild.nodeValue

        # Properties saved as name-value-type tuplets
        p_node_list = filter_node.getElementsByTagName(PROPERTY)
        self.properties = propertyparse.node_list_to_properties_array(
            p_node_list)

        # Property args saved in propertyname -> propertyargs_string dict
        self.property_args = propertyparse.node_list_to_args_dict(p_node_list)

        # Multipart property describes how filters are created and edited when filter
        # constists of multiple filters.
        # There 0 or 1 of these in the info object.
        node_list = filter_node.getElementsByTagName(MULTIPART_PROPERTY)
        if len(node_list) == 1:
            mp = node_list[0]
            value = mp.firstChild.nodeValue
            args = mp.getAttribute(ARGS)
            start_property = mp.getAttribute(MULTIPART_START)
            end_property = mp.getAttribute(MULTIPART_END)
            self.multipart_desc = (args, start_property, end_property)
            self.multipart_value = value

        #  Extra editors that handle properties that have been set "no_editor"
        e_node_list = filter_node.getElementsByTagName(EXTRA_EDITOR)
        self.extra_editors = propertyparse.node_list_to_extraeditors_array(
            e_node_list)

        # Non-MLT properties are persistent values like properties that values are not directly written out as MLT properties
        p_node_list = filter_node.getElementsByTagName(NON_MLT_PROPERTY)
        self.non_mlt_properties = propertyparse.node_list_to_non_mlt_properties_array(
            p_node_list)
        # Property args for Non-MLT properties saved in propertyname -> propertyargs_string dict
        self.property_args.update(
            propertyparse.node_list_to_args_dict(p_node_list))
Ejemplo n.º 4
0
    def __init__(self, filter_node):
        self.mlt_service_id = filter_node.getAttribute(ID)
        
        try:
            self.multipart_filter = (filter_node.getAttribute(MULTIPART_FILTER) == "true")
        except: # default is False
            self.multipart_filter = False

        try:
            self.mlt_drop_version = filter_node.getAttribute(MLT_DROP_VERSION)
        except: 
            self.mlt_drop_version = None

        try:
            self.mlt_min_version = filter_node.getAttribute(MLT_MIN_VERSION)
        except:
            self.mlt_min_version = None

        self.xml = filter_node.toxml()
        self.name = filter_node.getElementsByTagName(NAME).item(0).firstChild.nodeValue
        self.group = filter_node.getElementsByTagName(GROUP).item(0).firstChild.nodeValue

        # Properties saved as name-value-type tuplets
        p_node_list = filter_node.getElementsByTagName(PROPERTY)
        self.properties = propertyparse.node_list_to_properties_array(p_node_list)
        
        # Property args saved in propertyname -> propertyargs_string dict
        self.property_args = propertyparse.node_list_to_args_dict(p_node_list)
    
        # Multipart property describes how filters are created and edited when filter 
        # constists of multiple filters.
        # There 0 or 1 of these in the info object.
        node_list = filter_node.getElementsByTagName(MULTIPART_PROPERTY)
        if len(node_list) == 1:
            mp = node_list[0]
            value = mp.firstChild.nodeValue
            args = mp.getAttribute(ARGS)
            start_property = mp.getAttribute(MULTIPART_START)
            end_property = mp.getAttribute(MULTIPART_END)
            self.multipart_desc = (args, start_property, end_property)
            self.multipart_value = value

        #  Extra editors that handle properties that have been set "no_editor"
        e_node_list = filter_node.getElementsByTagName(EXTRA_EDITOR)
        self.extra_editors = propertyparse.node_list_to_extraeditors_array(e_node_list)  

        # Non-MLT properties are persistent values like properties that values are not directly written out as MLT properties
        p_node_list = filter_node.getElementsByTagName(NON_MLT_PROPERTY)
        self.non_mlt_properties = propertyparse.node_list_to_non_mlt_properties_array(p_node_list)
        # Property args for Non-MLT properties saved in propertyname -> propertyargs_string dict
        self.property_args.update(propertyparse.node_list_to_args_dict(p_node_list))
Ejemplo n.º 5
0
 def __init__(self, compositor_node):
     self.mlt_service_id = compositor_node.getAttribute(MLT_SERVICE)
     self.xml = compositor_node.toxml()
     self.name = compositor_node.getElementsByTagName(NAME).item(0).firstChild.nodeValue
     
     # Properties saved as name-value-type tuplets
     p_node_list = compositor_node.getElementsByTagName(PROPERTY)
     self.properties = propertyparse.node_list_to_properties_array(p_node_list)
     
     # Property args saved in propertyname -> propertyargs_string dict
     self.property_args = propertyparse.node_list_to_args_dict(p_node_list)
     
     #  Extra editors that handle properties that have been set "no_editor"
     e_node_list = compositor_node.getElementsByTagName(EXTRA_EDITOR)
     self.extra_editors = propertyparse.node_list_to_extraeditors_array(e_node_list)  
Ejemplo n.º 6
0
 def __init__(self, compositor_node):
     self.mlt_service_id = compositor_node.getAttribute(MLT_SERVICE)
     self.xml = compositor_node.toxml()
     self.name = compositor_node.getElementsByTagName(NAME).item(0).firstChild.nodeValue
     
     # Properties saved as name-value-type tuplets
     p_node_list = compositor_node.getElementsByTagName(PROPERTY)
     self.properties = propertyparse.node_list_to_properties_array(p_node_list)
     
     # Property args saved in propertyname -> propertyargs_string dict
     self.property_args = propertyparse.node_list_to_args_dict(p_node_list)
     
     #  Extra editors that handle properties that have been set "no_editor"
     e_node_list = compositor_node.getElementsByTagName(EXTRA_EDITOR)
     self.extra_editors = propertyparse.node_list_to_extraeditors_array(e_node_list)