From f1906c3e41a66e89b51d5c3947790bef030a3476 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Mon, 6 Jun 2022 18:44:10 +0200 Subject: run-cue-index!: Add an implicit transitiom to 0/no-value for values in playback --- guile/starlet/playback.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'guile/starlet/playback.scm') diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index f9ed25d..732be51 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -243,12 +243,36 @@ 'next-cue-unspecified)) +(define (blank-everything state) + (state-map + (lambda (fix attr val) + (if (intensity? attr) + 0.0 + 'no-value)) + state)) + + (define (run-cue-index! pb cue-index) (let* ((the-cue (vector-ref (get-playback-cue-list pb) cue-index)) (overlay-state (make-empty-state)) (cue-clock (get-cue-clock the-cue)) (fade-time 0)) + ;; Start by fading the previous contents of the playback down, using the + ;; "main" transition effect + (receive + (overlay-part transition-time) + ((transition-func (get-cue-part-transition + (car (get-cue-parts the-cue)))) + (blank-everything pb) + pb + cue-clock) + (atomically-overlay-state! + overlay-state + overlay-part) + (set! fade-time transition-time)) + + ;; Stack all the cue parts on top (for-each (lambda (part) (receive -- cgit v1.2.3