File tree 2 files changed +22
-12
lines changed
Cubase/TrackArchive/Conversion
ProTools/SessionInfo/Conversion
2 files changed +22
-12
lines changed Original file line number Diff line number Diff line change @@ -11,13 +11,16 @@ import TimecodeKit
11
11
12
12
extension Cubase . TrackArchive {
13
13
/// Parses the contents and extracts marker events from marker tracks.
14
- public func extractDAWMarkers( ) throws -> [ [ DAWMarker ] ] {
14
+ public func extractDAWMarkers( ) throws -> [ DAWMarkerTrack ] {
15
15
guard let frameRate = main. frameRate else {
16
16
throw ParseError . general (
17
17
" Could not determine frame rate. "
18
18
)
19
19
}
20
20
21
+ // init array so we can append to it
22
+ var dawMarkerTracks : [ DAWMarkerTrack ] = [ ]
23
+
21
24
// filter just marker tracks (in case there are other non-marker tracks in the data set)
22
25
23
26
var markerTracks = tracks? . compactMap { $0 as? Cubase . TrackArchive . MarkerTrack } ?? [ ]
@@ -42,15 +45,22 @@ extension Cubase.TrackArchive {
42
45
}
43
46
}
44
47
45
- // translate to native Marker objects
46
-
47
- let markers = markerTracks. map {
48
- $0. events. convertToDAWMarkers (
48
+ for markerTrack in markerTracks {
49
+ // translate to native Marker objects
50
+ let markers = markerTrack. events. convertToDAWMarkers (
49
51
originalFrameRate: frameRate
50
52
)
53
+
54
+ let dawMarkerTrack = DAWMarkerTrack (
55
+ trackType: . track,
56
+ name: markerTrack. name ?? " " ,
57
+ markers: markers
58
+ )
59
+
60
+ dawMarkerTracks. append ( dawMarkerTrack)
51
61
}
52
62
53
- return markers
63
+ return dawMarkerTracks
54
64
}
55
65
}
56
66
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ extension Array where Element == ProTools.SessionInfo.Marker {
32
32
let subFramesBase : Timecode . SubFramesBase = . max100SubFrames
33
33
34
34
// init array so we can append to it
35
- var markerTracks : [ DAWMarkerTrack ] = [ ]
35
+ var dawMarkerTracks : [ DAWMarkerTrack ] = [ ]
36
36
37
37
for marker in self {
38
38
// TODO: handle PT Session info text files that don't use Timecode as the primary time format
@@ -56,7 +56,7 @@ extension Array where Element == ProTools.SessionInfo.Marker {
56
56
// create new track if necessary.
57
57
58
58
let trackIndex : Int
59
- if let ti = markerTracks . firstIndex ( where: { dawMarkerTrack in
59
+ if let ti = dawMarkerTracks . firstIndex ( where: { dawMarkerTrack in
60
60
dawMarkerTrack. name == marker. trackName &&
61
61
dawMarkerTrack. trackType == marker. trackType
62
62
} ) {
@@ -67,14 +67,14 @@ extension Array where Element == ProTools.SessionInfo.Marker {
67
67
name: marker. trackName,
68
68
markers: [ ]
69
69
)
70
- markerTracks . append ( newMarkerTrack)
71
- trackIndex = markerTracks . indices. last!
70
+ dawMarkerTracks . append ( newMarkerTrack)
71
+ trackIndex = dawMarkerTracks . indices. last!
72
72
}
73
73
74
- markerTracks [ trackIndex] . markers. append ( newMarker)
74
+ dawMarkerTracks [ trackIndex] . markers. append ( newMarker)
75
75
}
76
76
77
- return markerTracks
77
+ return dawMarkerTracks
78
78
}
79
79
}
80
80
You can’t perform that action at this time.
0 commit comments