Make MP3Gain options configurable
This commit is contained in:
@@ -398,11 +398,22 @@ private struct MP3GainToolView: View {
|
||||
@State private var targetURL: URL?
|
||||
@State private var messages: [ExportMessage] = []
|
||||
@State private var isWorking = false
|
||||
@State private var gainMode: MP3GainNormalizer.Options.GainMode = .track
|
||||
@State private var preventClipping = true
|
||||
@State private var dbOffset = "4"
|
||||
|
||||
private var canRun: Bool {
|
||||
targetURL != nil && !isWorking
|
||||
}
|
||||
|
||||
private var options: MP3GainNormalizer.Options {
|
||||
MP3GainNormalizer.Options(
|
||||
gainMode: gainMode,
|
||||
preventClipping: preventClipping,
|
||||
dbOffset: dbOffset
|
||||
)
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
VStack(spacing: 0) {
|
||||
HStack(spacing: 10) {
|
||||
@@ -434,10 +445,34 @@ private struct MP3GainToolView: View {
|
||||
Text("MP3Gain Normalisierung")
|
||||
.font(.title2.weight(.semibold))
|
||||
PathRow(label: "Ordner", url: targetURL)
|
||||
Text("Verwendet rekursiv: mp3gain -r -k -d 4")
|
||||
Text("Generierter Befehl: \(options.commandDescription)")
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
|
||||
VStack(alignment: .leading, spacing: 10) {
|
||||
Text("Optionen")
|
||||
.font(.headline)
|
||||
|
||||
Picker("Modus", selection: $gainMode) {
|
||||
Text("Track-Gain (-r)").tag(MP3GainNormalizer.Options.GainMode.track)
|
||||
Text("Album-Gain (-a)").tag(MP3GainNormalizer.Options.GainMode.album)
|
||||
}
|
||||
.pickerStyle(.segmented)
|
||||
.frame(width: 300)
|
||||
|
||||
Toggle("Clipping vermeiden (-k)", isOn: $preventClipping)
|
||||
.toggleStyle(.checkbox)
|
||||
|
||||
HStack(spacing: 8) {
|
||||
Text("dB-Offset (-d)")
|
||||
.font(.caption.weight(.semibold))
|
||||
.foregroundStyle(.secondary)
|
||||
TextField("", text: $dbOffset)
|
||||
.textFieldStyle(.roundedBorder)
|
||||
.frame(width: 80)
|
||||
}
|
||||
}
|
||||
|
||||
VStack(alignment: .leading, spacing: 10) {
|
||||
Text("Protokoll")
|
||||
.font(.headline)
|
||||
@@ -455,10 +490,11 @@ private struct MP3GainToolView: View {
|
||||
guard let targetURL else { return }
|
||||
|
||||
isWorking = true
|
||||
messages = [.info("MP3Gain gestartet: -r -k -d 4")]
|
||||
let currentOptions = options
|
||||
messages = [.info("MP3Gain gestartet: \(currentOptions.commandDescription)")]
|
||||
|
||||
DispatchQueue.global(qos: .userInitiated).async {
|
||||
let result = MP3GainNormalizer(fileManager: .default).normalize(rootURL: targetURL)
|
||||
let result = MP3GainNormalizer(fileManager: .default).normalize(rootURL: targetURL, options: currentOptions)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
messages = result
|
||||
|
||||
Reference in New Issue
Block a user