broken changes

This commit is contained in:
Mark Gregory
2026-11-05 13:42:20 +00:00
parent d5b24bff29
commit d565e40215
7 changed files with 808 additions and 258 deletions
+11 -2
View File
@@ -27,7 +27,11 @@ import CoreAudio
guard canJog else { return }
pauseDeck();loopEnabled = false;seek(0)
}
func setCue() { guard canJog else { return };cuePosition = time }
func setCue(at seconds: Double? = nil) {
guard canJog else { return }
if let seconds { guard seconds.isFinite else { return };cuePosition = min(duration,max(0,seconds)) }
else { tick();cuePosition = time }
}
func returnToCue() { guard canJog else { return };pauseDeck();seek(cuePosition) }
private func pauseDeck() {
cancelPendingPlayback()
@@ -45,6 +49,10 @@ import CoreAudio
func markLoopOut() {
guard let loopIn,time-loopIn >= 0.1 else { return };loopOut = time;loopEnabled = true
}
func defineLoop(start: Double,end: Double) {
guard canJog,start.isFinite,end.isFinite,start >= 0,end <= duration,end-start >= 0.1 else { return }
loopIn = start;loopOut = end;loopEnabled = true
}
func clearLoop() { loopEnabled = false;loopIn = nil;loopOut = nil }
func jog(_ seconds: Double) { guard seconds.isFinite,canJog else { return };seek(time+seconds) }
private var graphicsGeneration = UUID()
@@ -241,7 +249,8 @@ import CoreAudio
Task { @MainActor in
guard let self, self.generation == token else { return }
if self.fading { return }
if self.repeating { self.schedule(at:0,play:true) }
if self.loopEnabled,let start = self.loopIn { self.schedule(at:start,play:true) }
else if self.repeating { self.schedule(at:0,play:true) }
else {
self.playing = false; self.time = self.duration; self.render()
self.timer?.invalidate(); self.timer = nil; self.onFinished?()