diff options
-rw-r--r-- | guile/starlet/playback.scm | 6 | ||||
-rw-r--r-- | guile/starlet/utils.scm | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index 39ccbe0..126d014 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -130,9 +130,9 @@ (define (cut-to-cue-number! pb cue-number) (let* ((cue-list (get-playback-cue-list pb)) (cue-index (cue-number-to-index cue-list (qnum cue-number)))) - (set-state-hash-table! pb (get-state-hash-table - (realize-state cue-list - cue-index))) + (set-state-hash-table! pb (copy-hash-table + (get-state-hash-table + (realize-state cue-list cue-index)))) (set-next-cue-index! pb (+ cue-index 1)) ;; Wipe out the old fade params diff --git a/guile/starlet/utils.scm b/guile/starlet/utils.scm index 13ee585..be87321 100644 --- a/guile/starlet/utils.scm +++ b/guile/starlet/utils.scm @@ -1,6 +1,7 @@ (define-module (starlet utils) #:export (return-unspecified - print-hash-table)) + print-hash-table + copy-hash-table)) (define (return-unspecified) @@ -13,3 +14,10 @@ (display value) (newline)) ht)) + +(define (copy-hash-table ht) + (let ((new-ht (make-hash-table))) + (hash-for-each (lambda (key value) + (hash-set! new-ht key value)) + ht) + new-ht)) |