Add separate track export mode

This commit is contained in:
Mikei386
2026-06-07 12:26:14 +02:00
parent 9f4d06ec4c
commit ce47ceb176
3 changed files with 142 additions and 41 deletions
+22 -4
View File
@@ -31,6 +31,7 @@ private struct ConversionToolView: View {
@State private var writeReport = true
@State private var cleanAfterExport = true
@State private var validateAfterExport = true
@State private var trackMode: TonUinoExportOptions.TrackMode = .merged
@State private var isExporting = false
private var canExport: Bool {
@@ -90,6 +91,13 @@ private struct ConversionToolView: View {
Spacer()
Picker("Modus", selection: $trackMode) {
Text("Zusammenführen").tag(TonUinoExportOptions.TrackMode.merged)
Text("Getrennt").tag(TonUinoExportOptions.TrackMode.separate)
}
.pickerStyle(.segmented)
.frame(width: 230)
HStack(spacing: 12) {
Toggle("Überschreiben", isOn: $overwriteExisting)
Toggle("Bericht", isOn: $writeReport)
@@ -152,11 +160,11 @@ private struct ConversionToolView: View {
}
.width(64)
TableColumn("Zieldatei") { _ in
Text("001.mp3")
TableColumn("Zieldatei") { episode in
Text(targetFileDescription(for: episode))
.monospacedDigit()
}
.width(82)
.width(108)
TableColumn("Erste Quelle") { episode in
Text(episode.tracks.first?.source.lastPathComponent ?? "-")
@@ -233,7 +241,8 @@ private struct ConversionToolView: View {
outputURL: outputURL,
options: TonUinoExportOptions(
overwriteExisting: overwriteExisting,
writeReport: writeReport
writeReport: writeReport,
trackMode: trackMode
)
)
@@ -251,6 +260,15 @@ private struct ConversionToolView: View {
}
}
}
private func targetFileDescription(for episode: EpisodePlan) -> String {
switch trackMode {
case .merged:
"001.mp3"
case .separate:
episode.tracks.count <= 1 ? "001.mp3" : "001...\(String(format: "%03d", episode.tracks.count)).mp3"
}
}
}
private struct SDCardToolView: View {