broken changes
This commit is contained in:
+11
-2
@@ -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?()
|
||||
|
||||
Reference in New Issue
Block a user