/*
* gauche-sdl-mixer.c - Gauche SDL_mixer binding
*
* 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: gauche-sdl-mixer.c,v 1.3 2003/02/25 02:21:07 mikiso Exp $
*/
#include <gauche.h>
#include <gauche/extend.h>
#include "gauche-sdl-mixer.h"
/*****************************************************************************
* Mixer
*/
/* Chunk */
void mix_chunk_finalize(ScmObj obj, void * data)
{
Mix_FreeChunk(SCM_MIX_CHUNK(obj));
}
static void mix_chunk_print(ScmObj obj, ScmPort *out, ScmWriteContext *ctx)
{
Scm_Printf(out, "#<mix-chunk>");
}
SCM_DEFINE_BUILTIN_CLASS(Scm_MixChunkClass,
mix_chunk_print, NULL, NULL, NULL,
SCM_CLASS_DEFAULT_CPL);
/* Music */
void mix_music_finalize(ScmObj obj, void *data)
{
Mix_FreeMusic(SCM_MIX_MUSIC(obj));
}
static void mix_music_print(ScmObj obj, ScmPort *out, ScmWriteContext *ctx)
{
Scm_Printf(out, "#<mix-music>");
}
SCM_DEFINE_BUILTIN_CLASS(Scm_MixMusicClass,
mix_music_print, NULL, NULL, NULL,
SCM_CLASS_DEFAULT_CPL);
/*****************************************************************************
* Initialization
*/
extern void Scm_Init_sdl_mixer_lib(ScmModule *mod);
extern void Scm_Init_sdl_mixer_syms(ScmModule *mod);
void Scm_Init_gauche_sdl_mixer(void)
{
ScmModule *mod;
SCM_INIT_EXTENSION(gauche_sdl_mixer);
mod = SCM_MODULE(SCM_FIND_MODULE("sdl.mixer", TRUE));
Scm_InitBuiltinClass(&Scm_MixChunkClass, "<mix-chunk>",
NULL, sizeof(Scm_MixChunkClass)/sizeof(ScmObj),
mod);
Scm_InitBuiltinClass(&Scm_MixMusicClass, "<mix-music>",
NULL, sizeof(Scm_MixMusicClass)/sizeof(ScmObj),
mod);
Scm_Init_sdl_mixer_lib(mod);
Scm_Init_sdl_mixer_syms(mod);
}
syntax highlighted by Code2HTML, v. 0.9.1