diff options
Diffstat (limited to 'sound.scm')
| -rw-r--r-- | sound.scm | 88 |
1 files changed, 44 insertions, 44 deletions
@@ -1,45 +1,45 @@ (module (downstroke sound) * -(import scheme - (chicken base) - (only srfi-1 for-each) - (downstroke mixer)) - -(define *sound-registry* '()) -(define *music* #f) - -(define (init-audio!) - (mix-open-audio! 44100 mix-default-format 2 512)) - -(define (load-sounds! sound-alist) - (set! *sound-registry* - (map (lambda (pair) - (cons (car pair) (mix-load-chunk (cdr pair)))) - sound-alist))) - -(define (play-sound sym) - (let ((entry (assq sym *sound-registry*))) - (when (and entry (cdr entry)) - (mix-play-channel -1 (cdr entry) 0)))) - -(define (load-music! path) - (set! *music* (mix-load-mus path))) - -(define (play-music! volume) - (when *music* - (mix-play-music *music* -1) - (mix-volume-music (inexact->exact (round (* volume 128)))))) - -(define (stop-music!) (mix-halt-music)) - -(define (set-music-volume! volume) - (mix-volume-music (inexact->exact (round (* volume 128))))) - -(define (cleanup-audio!) - (when *music* - (mix-halt-music) - (mix-free-music! *music*) - (set! *music* #f)) - (for-each (lambda (pair) (mix-free-chunk! (cdr pair))) - *sound-registry*) - (set! *sound-registry* '()) - (mix-close-audio!))) + (import scheme + (chicken base) + (only srfi-1 for-each) + (downstroke mixer)) + + (define *sound-registry* '()) + (define *music* #f) + + (define (init-audio!) + (mix-open-audio! 44100 mix-default-format 2 512)) + + (define (load-sounds! sound-alist) + (set! *sound-registry* + (map (lambda (pair) + (cons (car pair) (mix-load-chunk (cdr pair)))) + sound-alist))) + + (define (play-sound sym) + (let ((entry (assq sym *sound-registry*))) + (when (and entry (cdr entry)) + (mix-play-channel -1 (cdr entry) 0)))) + + (define (load-music! path) + (set! *music* (mix-load-mus path))) + + (define (play-music! volume) + (when *music* + (mix-play-music *music* -1) + (mix-volume-music (inexact->exact (round (* volume 128)))))) + + (define (stop-music!) (mix-halt-music)) + + (define (set-music-volume! volume) + (mix-volume-music (inexact->exact (round (* volume 128))))) + + (define (cleanup-audio!) + (when *music* + (mix-halt-music) + (mix-free-music! *music*) + (set! *music* #f)) + (for-each (lambda (pair) (mix-free-chunk! (cdr pair))) + *sound-registry*) + (set! *sound-registry* '()) + (mix-close-audio!))) |
