diff options
Diffstat (limited to 'guile/starlet/playback.scm')
-rw-r--r-- | guile/starlet/playback.scm | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index 51eb999..3cbcd61 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -7,7 +7,10 @@ cue cut-to-cue-number! run-cue-number! - go!)) + go! + cue-list + cue-state + track-state)) ;; A "playback" is a state which knows how to run cues @@ -233,3 +236,24 @@ (down-time cue) (down-delay cue)) (add-fade! pb (make-fade-from-cue cue tnow)))) + + +(define-syntax cue-state + (syntax-rules () + + ((_) + make-empty-state) + + ((_ body ...) + (lambda () + (parameterize ((current-state (make-empty-state))) + body ... + (current-state)))))) + + +(define-syntax cue-list + (identifier-syntax list)) + + +(define-syntax track-state + (identifier-syntax cue-state)) |