diff --git a/ptulsconv/docparser/doc_entity.py b/ptulsconv/docparser/doc_entity.py index 93c28ba..26ee9ab 100644 --- a/ptulsconv/docparser/doc_entity.py +++ b/ptulsconv/docparser/doc_entity.py @@ -124,6 +124,7 @@ class HeaderDescriptor: class TrackDescriptor: + index: int name: str comments: str user_delay_samples: int @@ -132,6 +133,7 @@ class TrackDescriptor: clips: List["TrackClipDescriptor"] def __init__(self, **kwargs): + self.index = kwargs['index'] self.name = kwargs['name'] self.comments = kwargs['comments'] self.user_delay_samples = kwargs['user_delay_samples'] diff --git a/ptulsconv/docparser/pt_doc_parser.py b/ptulsconv/docparser/pt_doc_parser.py index fd05e05..b9553df 100644 --- a/ptulsconv/docparser/pt_doc_parser.py +++ b/ptulsconv/docparser/pt_doc_parser.py @@ -166,8 +166,8 @@ class DocParserVisitor(NodeVisitor): count_instances=child[10]), visited_children[2])) - @staticmethod - def visit_track_block(_, visited_children): + # @staticmethod + def visit_track_block(self, _, visited_children): track_header, track_clip_list = visited_children clips = [] for clip in track_clip_list: @@ -178,8 +178,12 @@ class DocParserVisitor(NodeVisitor): for plugin_opt in track_header[16]: for plugin in plugin_opt[1]: plugins.append(plugin[1]) + + this_index = self.track_index + self.track_index += 1 return TrackDescriptor( + index=this_index, name=track_header[2], comments=track_header[6], user_delay_samples=track_header[10], @@ -192,8 +196,8 @@ class DocParserVisitor(NodeVisitor): def visit_frame_rate(node, _): return node.text - @staticmethod - def visit_track_listing(_, visited_children): + def visit_track_listing(self, _, visited_children): + self.track_index = 0 return visited_children[1] @staticmethod