From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
#ifndef aTHX_
#define aTHX_
#endif
#include <SDL.h>
#ifdef HAVE_SDL_MIXER
#include <SDL_mixer.h>
#endif
#ifdef HAVE_SMPEG
#include <smpeg/smpeg.h>
#ifdef HAVE_SDL_MIXER
static int sdl_perl_use_smpeg_audio = 0;
#endif
#endif
MODULE = SDL::Mixer::Samples PACKAGE = SDL::Mixer::Samples PREFIX = mixsam_
=for documentation
SDL_mixer bindings
See: http:/*www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer.html */
=cut
#ifdef HAVE_SDL_MIXER
#if (SDL_MIXER_MAJOR_VERSION >= 1 && SDL_MIXER_MINOR_VERSION >= 2 && SDL_MIXER_PATCHLEVEL >= 10)
int
mixsam_get_num_chunk_decoders()
CODE:
RETVAL = Mix_GetNumChunkDecoders();
OUTPUT:
RETVAL
char *
mixsam_get_chunk_decoder( index )
int index
CODE:
RETVAL = (char *)Mix_GetChunkDecoder(index);
OUTPUT:
RETVAL
#else
int
mixsam_get_num_chunk_decoders( )
CODE:
warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_num_chunk_decoders()");
XSRETURN_UNDEF;
OUTPUT:
RETVAL
char *
mixsam_get_chunk_decoder( index )
int index
CODE:
warn("SDL_mixer >= 1.2.10 needed for SDL::Mixer::Samples::get_chunk_decoder( index )");
XSRETURN_UNDEF;
OUTPUT:
RETVAL
#endif
Mix_Chunk *
mixsam_load_WAV ( filename )
char *filename
PREINIT:
char * CLASS = "SDL::Mixer::MixChunk";
CODE:
Mix_Chunk * mixchunk;
mixchunk = Mix_LoadWAV(filename);
RETVAL = mixchunk;
OUTPUT:
RETVAL
Mix_Chunk *
mixsam_load_WAV_RW ( src, freesrc)
SDL_RWops * src
int freesrc
PREINIT:
char * CLASS = "SDL::Mixer::MixChunk";
CODE:
Mix_Chunk * mixchunk;
mixchunk = Mix_LoadWAV_RW(src, freesrc);
RETVAL = mixchunk;
OUTPUT:
RETVAL
Mix_Chunk *
mixsam_quick_load_WAV ( buf )
Uint8 *buf
PREINIT:
char * CLASS = "SDL::Mixer::MixChunk";
CODE:
RETVAL = Mix_QuickLoad_WAV(buf);
OUTPUT:
RETVAL
Mix_Chunk *
mixsam_quick_load_RAW ( buf , len)
Uint8 *buf
int len
PREINIT:
char * CLASS = "SDL::Mixer::MixChunk";
CODE:
RETVAL = Mix_QuickLoad_RAW( buf, len );
OUTPUT:
RETVAL
int
mixsam_volume_chunk ( chunk, volume )
Mix_Chunk *chunk
int volume
CODE:
RETVAL = Mix_VolumeChunk(chunk,volume);
OUTPUT:
RETVAL
void
mixsam_free_chunk( chunk )
Mix_Chunk *chunk
CODE:
Mix_FreeChunk(chunk);
#endif