From 1925e39638c6fdf33bbb0407bb8f90b022557748 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 25 Oct 2020 15:14:38 +0100 Subject: Add set-playback-cue-list! and get-playback-cue-number These support re-loading a cue list for live coding --- guile/starlet/playback.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index c340c52..1f2fde1 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -11,10 +11,12 @@ cue cue-part cut-to-cue-number! + get-playback-cue-number run-cue-number! go! cue-list - cue-state)) + cue-state + set-playback-cue-list!)) ;; A "playback" is a state which knows how to run cues @@ -22,7 +24,8 @@ (define-class () (cue-list #:init-keyword #:cue-list - #:getter get-playback-cue-list) + #:getter get-playback-cue-list + #:setter set-playback-cue-list!) (next-cue-index #:init-value 0 @@ -99,6 +102,10 @@ (cue-parts get-cue-parts)) +(define (get-playback-cue-number pb) + (cue-index-to-number (get-playback-cue-list pb) + (max 0 (- (get-next-cue-index pb) 1)))) + (define (qnum a) (/ (inexact->exact (* a 1000)) 1000)) @@ -109,6 +116,10 @@ new-playback)) +(define (cue-index-to-number cue-list cue-index) + (get-cue-number (vector-ref cue-list cue-index))) + + (define (cue-number-to-index cue-list cue-number) (vector-index (lambda (a) (eqv? (get-cue-number a) -- cgit v1.2.3