Skip to content

Commit e71576a

Browse files
committed
Cubase.TrackArchive: extractDAWMarkers() method now returns [DAWMarkerTrack]
1 parent fd11b11 commit e71576a

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

Sources/DAWFileKit/Cubase/TrackArchive/Conversion/TrackArchive Extract DAWMarkers.swift

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@ import TimecodeKit
1111

1212
extension Cubase.TrackArchive {
1313
/// Parses the contents and extracts marker events from marker tracks.
14-
public func extractDAWMarkers() throws -> [[DAWMarker]] {
14+
public func extractDAWMarkers() throws -> [DAWMarkerTrack] {
1515
guard let frameRate = main.frameRate else {
1616
throw ParseError.general(
1717
"Could not determine frame rate."
1818
)
1919
}
2020

21+
// init array so we can append to it
22+
var dawMarkerTracks: [DAWMarkerTrack] = []
23+
2124
// filter just marker tracks (in case there are other non-marker tracks in the data set)
2225

2326
var markerTracks = tracks?.compactMap { $0 as? Cubase.TrackArchive.MarkerTrack } ?? []
@@ -42,15 +45,22 @@ extension Cubase.TrackArchive {
4245
}
4346
}
4447

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(
4951
originalFrameRate: frameRate
5052
)
53+
54+
let dawMarkerTrack = DAWMarkerTrack(
55+
trackType: .track,
56+
name: markerTrack.name ?? "",
57+
markers: markers
58+
)
59+
60+
dawMarkerTracks.append(dawMarkerTrack)
5161
}
5262

53-
return markers
63+
return dawMarkerTracks
5464
}
5565
}
5666

Sources/DAWFileKit/ProTools/SessionInfo/Conversion/SessionInfo Extract DAWMarkers.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extension Array where Element == ProTools.SessionInfo.Marker {
3232
let subFramesBase: Timecode.SubFramesBase = .max100SubFrames
3333

3434
// init array so we can append to it
35-
var markerTracks: [DAWMarkerTrack] = []
35+
var dawMarkerTracks: [DAWMarkerTrack] = []
3636

3737
for marker in self {
3838
// 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 {
5656
// create new track if necessary.
5757

5858
let trackIndex: Int
59-
if let ti = markerTracks.firstIndex(where: { dawMarkerTrack in
59+
if let ti = dawMarkerTracks.firstIndex(where: { dawMarkerTrack in
6060
dawMarkerTrack.name == marker.trackName &&
6161
dawMarkerTrack.trackType == marker.trackType
6262
}) {
@@ -67,14 +67,14 @@ extension Array where Element == ProTools.SessionInfo.Marker {
6767
name: marker.trackName,
6868
markers: []
6969
)
70-
markerTracks.append(newMarkerTrack)
71-
trackIndex = markerTracks.indices.last!
70+
dawMarkerTracks.append(newMarkerTrack)
71+
trackIndex = dawMarkerTracks.indices.last!
7272
}
7373

74-
markerTracks[trackIndex].markers.append(newMarker)
74+
dawMarkerTracks[trackIndex].markers.append(newMarker)
7575
}
7676

77-
return markerTracks
77+
return dawMarkerTracks
7878
}
7979
}
8080

0 commit comments

Comments
 (0)