diff options
Diffstat (limited to 'guile/starlet/playback.scm')
-rw-r--r-- | guile/starlet/playback.scm | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index c9153d8..9d372bf 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -304,7 +304,28 @@ (lambda (time) (cond ((< time fade-start-time) start-val) - ((> time (+ preset-start-time preset-time)) preset-val) + ((and (not (eq? 'no-value preset-val)) + (> time (+ preset-start-time preset-time))) + preset-val) + (else target-val)))) + + +(define (make-colour-fade start-val + target-val + preset-val + fade-time + fade-start-time + preset-time + preset-start-time) + (lambda (time) + (cond + + ((< time fade-start-time) start-val) + + ((and (not (eq? 'no-value preset-val)) + (> time (+ preset-start-time preset-time))) + preset-val) + (else target-val)))) @@ -449,6 +470,7 @@ (cond ((eq? type 'continuous) make-continuous-attr-fade) ((eq? type 'list) make-list-attr-fade) + ((eq? type 'colour) make-colour-fade) (else (raise-exception (make-exception (make-exception-with-message |