aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/playback.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/playback.scm')
-rw-r--r--guile/starlet/playback.scm26
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))