(define-sdl-func int sdl-get-num-audio-drivers () "SDL_GetNumAudioDrivers")
(define-sdl-func string sdl-get-audio-driver ((index int)) "SDL_GetAudioDriver")
(define-sdl-func int sdl-audio-init ((driver_name string)) "SDL_AudioInit")
(define-sdl-func void sdl-audio-quit () "SDL_AudioQuit")
(define-sdl-func string sdl-get-current-audio-driver () "SDL_GetCurrentAudioDriver")
(define-sdl-func int sdl-open-audio ((desired (* sdl-audio-spec-t)) (obtained (* sdl-audio-spec-t))) "SDL_OpenAudio")
(define-sdl-func int sdl-get-num-audio-devices ((iscapture int)) "SDL_GetNumAudioDevices")
(define-sdl-func string sdl-get-audio-device-name ((index int) (iscapture int)) "SDL_GetAudioDeviceName")
(define-sdl-func sdl-audio-device-id-t sdl-open-audio-device ((device string) (iscapture int) (desired (* sdl-audio-spec-t)) (obtained (* sdl-audio-spec-t)) (allowed_changes int)) "SDL_OpenAudioDevice")
(define-sdl-func sdl-audio-status-t sdl-get-audio-status () "SDL_GetAudioStatus")
(define-sdl-func sdl-audio-status-t sdl-get-audio-device-status ((dev sdl-audio-device-id-t)) "SDL_GetAudioDeviceStatus")
(define-sdl-func void sdl-pause-audio ((pause_on int)) "SDL_PauseAudio")
(define-sdl-func void sdl-pause-audio-device ((dev sdl-audio-device-id-t) (pause_on int)) "SDL_PauseAudioDevice")
(define-sdl-func (* sdl-audio-spec-t) sdl-load-wav-rw ((src (* sdl-rw-ops-t)) (freesrc int) (spec (* sdl-audio-spec-t)) (audio_buf (* uint8)) (audio_len (* uint32))) "SDL_LoadWAV_RW")
(define-sdl-func void sdl-free-wav ((audio_buf (* uint8))) "SDL_FreeWAV")
(define-sdl-func int sdl-build-audio-cvt ((cvt (* sdl-audio-cvt-t)) (src_format sdl-audio-format-t) (src_channels uint8) (src_rate int) (dst_format sdl-audio-format-t) (dst_channels uint8) (dst_rate int)) "SDL_BuildAudioCVT")
(define-sdl-func int sdl-convert-audio ((cvt (* sdl-audio-cvt-t))) "SDL_ConvertAudio")
(define-sdl-func (* sdl-audio-stream-t) sdl-new-audio-stream ((src_format sdl-audio-format-t) (src_channels uint8) (src_rate int) (dst_format sdl-audio-format-t) (dst_channels uint8) (dst_rate int)) "SDL_NewAudioStream")
(define-sdl-func int sdl-audio-stream-put ((stream (* sdl-audio-stream-t)) (buf void*) (len int)) "SDL_AudioStreamPut")
(define-sdl-func int sdl-audio-stream-get ((stream (* sdl-audio-stream-t)) (buf void*) (len int)) "SDL_AudioStreamGet")
(define-sdl-func int sdl-audio-stream-available ((stream (* sdl-audio-stream-t))) "SDL_AudioStreamAvailable")
(define-sdl-func int sdl-audio-stream-flush ((stream (* sdl-audio-stream-t))) "SDL_AudioStreamFlush")
(define-sdl-func void sdl-audio-stream-clear ((stream (* sdl-audio-stream-t))) "SDL_AudioStreamClear")
(define-sdl-func void sdl-free-audio-stream ((stream (* sdl-audio-stream-t))) "SDL_FreeAudioStream")
(define-sdl-func void sdl-mix-audio ((dst (* uint8)) (src (* uint8)) (len uint32) (volume int)) "SDL_MixAudio")
(define-sdl-func void sdl-mix-audio-format ((dst (* uint8)) (src (* uint8)) (format sdl-audio-format-t) (len uint32) (volume int)) "SDL_MixAudioFormat")
(define-sdl-func int sdl-queue-audio ((dev sdl-audio-device-id-t) (data void*) (len uint32)) "SDL_QueueAudio")
(define-sdl-func uint32 sdl-dequeue-audio ((dev sdl-audio-device-id-t) (data void*) (len uint32)) "SDL_DequeueAudio")
(define-sdl-func uint32 sdl-get-queued-audio-size ((dev sdl-audio-device-id-t)) "SDL_GetQueuedAudioSize")
(define-sdl-func void sdl-clear-queued-audio ((dev sdl-audio-device-id-t)) "SDL_ClearQueuedAudio")
(define-sdl-func void sdl-lock-audio () "SDL_LockAudio")
(define-sdl-func void sdl-lock-audio-device ((dev sdl-audio-device-id-t)) "SDL_LockAudioDevice")
(define-sdl-func void sdl-unlock-audio () "SDL_UnlockAudio")
(define-sdl-func void sdl-unlock-audio-device ((dev sdl-audio-device-id-t)) "SDL_UnlockAudioDevice")
(define-sdl-func void sdl-close-audio () "SDL_CloseAudio")
(define-sdl-func void sdl-close-audio-device ((dev sdl-audio-device-id-t)) "SDL_CloseAudioDevice")
