import SwiftUI import class AudioEngine.AudioEngine import enum AudioEngine.PlaybackState struct PlaybackControls: 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 } } }