Files
vorleser/Vorleser-macOS/MacPlaybackControls.swift
2026-03-13 22:29:10 +01:00

47 lines
957 B
Swift

import SwiftUI
import class AudioEngine.AudioEngine
import enum AudioEngine.PlaybackState
struct MacPlaybackControls: View {
@Bindable var engine: AudioEngine
var body: some View {
HStack(spacing: 32) {
Button(action: { engine.skipBackward() }) {
Image(systemName: "backward.fill")
.font(.title2)
}
.disabled(engine.state == .idle)
Button(action: togglePlayback) {
Image(systemName: playButtonIcon)
.font(.title)
}
Button(action: { engine.skipForward() }) {
Image(systemName: "forward.fill")
.font(.title2)
}
.disabled(engine.state == .idle)
}
.padding()
}
private var playButtonIcon: String {
switch engine.state {
case .playing: "pause.fill"
case .synthesizing: "hourglass"
case .paused: "play.fill"
case .idle: "play.fill"
}
}
private func togglePlayback() {
switch engine.state {
case .playing: engine.pause()
case .paused: engine.resume()
default: break
}
}
}