(import (scheme) (chicken base) (chicken bitwise) (chicken foreign)) (foreign-declare "#include ") (define init-audio (foreign-value "SDL_INIT_AUDIO" unsigned-int32)) (define init-video (foreign-value "SDL_INIT_VIDEO" unsigned-int32)) (define init-joystick (foreign-value "SDL_INIT_JOYSTICK" unsigned-int32)) (define init-haptic (foreign-value "SDL_INIT_HAPTIC" unsigned-int32)) (define init-gamepad (foreign-value "SDL_INIT_GAMEPAD" unsigned-int32)) (define init-events (foreign-value "SDL_INIT_EVENTS" unsigned-int32)) (define init-sensor (foreign-value "SDL_INIT_SENSOR" unsigned-int32)) (define init-camera (foreign-value "SDL_INIT_CAMERA" unsigned-int32)) (define (init #!rest flags) ((foreign-lambda bool "SDL_Init" unsigned-int32) (foldl bitwise-ior (car flags) (cdr flags)))) (define (init-sub-system #!rest flags) ((foreign-lambda bool "SDL_InitSubSystem" unsigned-int32) (foldl bitwise-ior (car flags) (cdr flags)))) (define quit (foreign-lambda void "SDL_Quit" void)) (define (quit-sub-system #!rest flags) ((foreign-lambda void "SDL_QuitSubSystem" unsigned-int32) (foldl bitwise-ior (car flags) (cdr flags)))) (define set-app-metadata (foreign-lambda bool "SDL_SetAppMetadata" c-string c-string c-string)) (define set-app-metadata-property (foreign-lambda bool "SDL_SetAppMetadataProperty" c-string c-string)) (define get-app-metadata-property (foreign-lambda c-string "SDL_GetAppMetadataProperty" c-string)) (define (was-init #!rest flags) ((foreign-lambda unsigned-int32 "SDL_WasInit" unsigned-int32) (foldl bitwise-ior (car flags) (cdr flags))))