diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-05 19:47:05 +0100 |
| commit | 027053b11a3a5d861ed2fa2db245388bd95ac246 (patch) | |
| tree | 84dfd90642bb6d8eb4e0e3fa3a9d651ba29b41e8 /mixer.scm | |
| parent | 927f37639a3d5a0d881a5c8709f2cf577aadb15e (diff) | |
Progress
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)) +) |
