diff --git a/ptulsconv/docparser/doc_entity.py b/ptulsconv/docparser/doc_entity.py index 2a17721..f20afd8 100644 --- a/ptulsconv/docparser/doc_entity.py +++ b/ptulsconv/docparser/doc_entity.py @@ -19,11 +19,17 @@ class SessionDescriptor: self.tracks = kwargs['tracks'] self.markers = kwargs['markers'] - def markers_timed(self) -> Iterator[Tuple['MarkerDescriptor', Fraction]]: + def markers_timed(self, + only_ruler_markers: bool = True) -> \ + Iterator[Tuple['MarkerDescriptor', Fraction]]: """ Iterate each marker in the session with its respective time reference. """ for marker in self.markers: + + if marker.track_marker and only_ruler_markers: + continue + marker_time = Fraction(marker.time_reference, int(self.header.sample_rate)) # marker_time = self.header.convert_timecode(marker.location) @@ -182,6 +188,7 @@ class MarkerDescriptor: units: str name: str comments: str + track_marker: bool def __init__(self, **kwargs): self.number = kwargs['number'] @@ -190,3 +197,4 @@ class MarkerDescriptor: self.units = kwargs['units'] self.name = kwargs['name'] self.comments = kwargs['comments'] + self.track_marker = kwargs['track_marker'] diff --git a/ptulsconv/docparser/pt_doc_parser.py b/ptulsconv/docparser/pt_doc_parser.py index abb5a9e..f5e9edf 100644 --- a/ptulsconv/docparser/pt_doc_parser.py +++ b/ptulsconv/docparser/pt_doc_parser.py @@ -244,15 +244,17 @@ class DocParserVisitor(NodeVisitor): @staticmethod def visit_marker_record(_, visited_children): + is_track_marker = False if isinstance(visited_children[12], list): - pass + is_track_marker = visited_children[12][2] == "Track" return MarkerDescriptor(number=visited_children[0], location=visited_children[3], time_reference=visited_children[5], units=visited_children[8], name=visited_children[10], - comments=visited_children[13]) + comments=visited_children[13], + track_marker=is_track_marker) @staticmethod def visit_formatted_clip_name(_, visited_children):