;;; ;;; sdl-mixer-lib.stub - glue functions for SDL_mixer ;;; ;;; Copyright(C) 2003 by Michael Vess (mvess@michaelvess.com) ;;; ;;; Permission to use, copy, modify, distribute this software and ;;; accompanying documentation for any purpose is hereby granted, ;;; provided that existing copyright notices are retained in all ;;; copies and that this notice is included verbatim in all ;;; distributions. ;;; This software is provided as is, without express or implied ;;; warranty. In no circumstances the author(s) shall be liable ;;; for any damages arising out of the use of this software. ;;; ;;; $Id: sdl-mixer-lib.stub,v 1.4 2003/02/25 02:21:07 mikiso Exp $ ;;; " #include \"gauche-sdl-mixer.h\" " ;;============================================================= ;; Miscellaneous ;; (define-type "ScmU8Vector*" "u8vector" "SCM_U8VECTORP" "SCM_U8VECTOR") ;;============================================================= ;; Chunk ;; (define-type "Mix_Chunk*" #f "SCM_MIX_CHUNK_P" "SCM_MIX_CHUNK") (define-cproc mix-chunk? (obj) (return "SCM_MIX_CHUNK_P")) ;;============================================================= ;; Music ;; (define-type "Mix_Music*" #f "SCM_MIX_MUSIC_P" "SCM_MIX_MUSIC") (define-cproc mix-music? (obj) (return "SCM_MIX_MUSIC_P")) ;;============================================================= ;; RWops ;; (define-type "SDL_RWops*" #f "SCM_SDL_RWOPS_P" "SCM_SDL_RWOPS") (define-type -or-null "SDL_RWops*" #f "SCM_SDL_RWOPS_OR_NULL_P" "SCM_SDL_RWOPS_OR_NULL") (define-cproc sdl-rwops? (obj) (return "SCM_SDL_RWOPS_P")) ;;============================================================= ;; Functions ;; (define-cproc mix-open-audio (frequency:: format:: channels:: chunksize::) (return "Mix_OpenAudio")) (define-cproc mix-allocate-channels (numchans::) (return "Mix_AllocateChannels")) (define-cproc mix-query-spec () "int freq, channels; Uint16 format; int result = Mix_QuerySpec(&freq, &format, &channels); if (result == 0) SCM_RETURN(SCM_UNDEFINED); SCM_RETURN(SCM_LIST3(SCM_MAKE_INT(freq), SCM_MAKE_INT(format), SCM_MAKE_INT(channels)));") (define-cproc mix-load-wav-rw (src::) "ScmMixChunk *s = SCM_NEW(ScmMixChunk); SCM_SET_CLASS(s, SCM_CLASS_MIX_CHUNK); s->chunk = Mix_LoadWAV_RW(src, 0); Scm_RegisterFinalizer(SCM_OBJ(s), mix_chunk_finalize, NULL); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-load-wav (file::) "ScmMixChunk *s = SCM_NEW(ScmMixChunk); SCM_SET_CLASS(s, SCM_CLASS_MIX_CHUNK); s->chunk = Mix_LoadWAV(Scm_GetStringConst(file)); Scm_RegisterFinalizer(SCM_OBJ(s), mix_chunk_finalize, NULL); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-load-mus (file::) "ScmMixMusic *s = SCM_NEW(ScmMixMusic); SCM_SET_CLASS(s, SCM_CLASS_MIX_MUSIC); s->music = Mix_LoadMUS(Scm_GetStringConst(file)); Scm_RegisterFinalizer(SCM_OBJ(s), mix_music_finalize, NULL); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-quick-load-wav (mem::) "ScmMixChunk *s = SCM_NEW(ScmMixChunk); SCM_SET_CLASS(s, SCM_CLASS_MIX_CHUNK); s->chunk = Mix_QuickLoad_WAV(SCM_U8VECTOR_ELEMENTS(mem)); Scm_RegisterFinalizer(SCM_OBJ(s), mix_chunk_finalize, NULL); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-quick-load-RAW (mem::) "ScmMixChunk *s = SCM_NEW(ScmMixChunk); SCM_SET_CLASS(s, SCM_CLASS_MIX_CHUNK); s->chunk = Mix_QuickLoad_RAW(SCM_U8VECTOR_ELEMENTS(mem), SCM_U8VECTOR_SIZE(mem)); Scm_RegisterFinalizer(SCM_OBJ(s), mix_chunk_finalize, NULL); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-get-music-type (music::) (return "Mix_GetMusicType")) ;; MISSING: ;; MISSING: Mix_SetPostMix ;; MISSING: ;; MISSING: ;; MISSING: Mix_HookMusic ;; MISSING: ;; MISSING: ;; MISSING: Mix_HookMusicFinished ;; MISSING: ;; MISSING: ;; MISSING: Mix_GetMusicHookData ;; MISSING: ;; MISSING: ;; MISSING: Mix_ChannelFinished ;; MISSING: ;; MISSING: ;; MISSING: Mix_RegisterEffect ;; MISSING: ;; MISSING: ;; MISSING: Mix_UnregisterEffect ;; MISSING: (define-cproc mix-unregister-all-effects (channel::) (return "Mix_UnregisterAllEffects")) (define-cproc mix-set-panning (channel:: left:: right::) (return "Mix_SetPanning")) (define-cproc mix-set-position (channel:: angle:: distance::) (return "Mix_SetPosition")) (define-cproc mix-set-distance (channel:: distance::) (return "Mix_SetDistance")) (define-cproc mix-set-reverse-stereo (channel:: flip::) (return "Mix_SetReverseStereo")) (define-cproc mix-reserve-channels (num::) (return "Mix_ReserveChannels")) (define-cproc mix-group-channel (which:: tag::) (return "Mix_GroupChannel")) (define-cproc mix-group-channels (from:: to:: tag::) (return "Mix_GroupChannels")) (define-cproc mix-group-available (tag::) (return "Mix_GroupAvailable")) (define-cproc mix-group-count (tag::) (return "Mix_GroupCount")) (define-cproc mix-group-oldest (tag::) (return "Mix_GroupOldest")) (define-cproc mix-group-newer (tag::) (return "Mix_GroupNewer")) (define-cproc mix-play-channel (channel:: chunk:: loops::) (return "Mix_PlayChannel")) (define-cproc mix-play-channel-timed (channel:: chunk:: loops:: ticks::) (return "Mix_PlayChannelTimed")) (define-cproc mix-play-music (music:: loops::) (return "Mix_PlayMusic")) (define-cproc mix-fade-in-music (music:: loops:: ms::) (return "Mix_FadeInMusic")) (define-cproc mix-fade-in-music-pos (music:: loops:: ms:: position::) (return "Mix_FadeInMusicPos")) (define-cproc mix-fade-in-channel (channel:: chunk:: loops:: ms::) (return "Mix_FadeInChannel")) (define-cproc mix-fade-in-channel-timed (channel:: chunk:: loops:: ms:: ticks::) (return "Mix_FadeInChannelTimed")) (define-cproc mix-volume (channel:: volume::) (return "Mix_Volume")) (define-cproc mix-volume-chunk (chunk:: volume::) (return "Mix_VolumeChunk")) (define-cproc mix-volume-music (volume::) (return "Mix_VolumeMusic")) (define-cproc mix-halt-channel (channel::) (return "Mix_HaltChannel")) (define-cproc mix-halt-group (tag::) (return "Mix_HaltGroup")) (define-cproc mix-halt-music () (return "Mix_HaltMusic")) (define-cproc mix-expire-channel (channel:: ticks::) (return "Mix_ExpireChannel")) (define-cproc mix-fade-out-channel (which:: ms::) (return "Mix_FadeOutChannel")) (define-cproc mix-fade-out-group (tag:: ms::) (return "Mix_FadeOutGroup")) (define-cproc mix-fade-out-music (ms::) (return "Mix_FadeOutMusic")) (define-cproc mix-fading-music () (return "Mix_FadingMusic")) (define-cproc mix-fading-channel (which::) (return "Mix_FadingChannel")) (define-cproc mix-pause (channel::) (return "Mix_Pause")) (define-cproc mix-resume (channel::) (return "Mix_Resume")) (define-cproc mix-paused (channel::) (return "Mix_Paused")) (define-cproc mix-pause-music () (return "Mix_PauseMusic")) (define-cproc mix-resume-music () (return "Mix_ResumeMusic")) (define-cproc mix-rewind-music () (return "Mix_RewindMusic")) (define-cproc mix-paused-music () (return "Mix_PausedMusic")) (define-cproc mix-set-music-postion (position::) (return "Mix_SetMusicPosition")) (define-cproc mix-playing (channel::) (return "Mix_Playing")) (define-cproc mix-playing-music () (return "Mix_PlayingMusic")) (define-cproc mix-set-music-cmd (command::) "SCM_RETURN(SCM_MAKE_INT(Mix_SetMusicCMD(Scm_GetStringConst(command))));") (define-cproc mix-set-synchro-value (value::) (return "Mix_SetSynchroValue")) (define-cproc mix-get-synchro-value () (return "Mix_GetSynchroValue")) (define-cproc mix-get-chunk (channel::) "ScmMixChunk *s = SCM_NEW(ScmMixChunk); SCM_SET_CLASS(s, SCM_CLASS_MIX_CHUNK); s->chunk = Mix_GetChunk(channel); SCM_RETURN(SCM_OBJ(s));") (define-cproc mix-close-audio () (return "Mix_CloseAudio")) (define-cproc mix-get-error () "SCM_RETURN(SCM_MAKE_STR(Mix_GetError()));") ;; Local variables: ;; mode: scheme ;; end: