diff options
Diffstat (limited to 'mixer.scm')
| -rw-r--r-- | mixer.scm | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/mixer.scm b/mixer.scm new file mode 100644 index 0000000..e1c563a --- /dev/null +++ b/mixer.scm @@ -0,0 +1,46 @@ +(module downstroke/mixer * + (import scheme + (chicken base) + (chicken foreign)) + + #> #include "SDL2/SDL_mixer.h" <# + + (define-foreign-type mix-chunk* (c-pointer "Mix_Chunk")) + + (define mix-open-audio! + (foreign-lambda int "Mix_OpenAudio" int unsigned-short int int)) + + (define mix-close-audio! + (foreign-lambda void "Mix_CloseAudio")) + + (define mix-load-chunk + (foreign-lambda* mix-chunk* ((c-string path)) + "C_return(Mix_LoadWAV(path));")) + + (define mix-free-chunk! + (foreign-lambda void "Mix_FreeChunk" mix-chunk*)) + + (define mix-play-channel + (foreign-lambda int "Mix_PlayChannel" int mix-chunk* int)) + + (define mix-default-format + ((foreign-lambda* unsigned-short () + "C_return(MIX_DEFAULT_FORMAT);"))) + + (define-foreign-type mix-music* (c-pointer "Mix_Music")) + + (define mix-load-mus + (foreign-lambda mix-music* "Mix_LoadMUS" c-string)) + + (define mix-play-music + (foreign-lambda int "Mix_PlayMusic" mix-music* int)) + + (define mix-free-music! + (foreign-lambda void "Mix_FreeMusic" mix-music*)) + + (define mix-halt-music + (foreign-lambda int "Mix_HaltMusic")) + + (define mix-volume-music + (foreign-lambda int "Mix_VolumeMusic" int)) +) |
