DRAFT |
SDL_LoadWAV
Use this function to load a WAVE file.
Contents
Syntax
green
SDL_AudioSpec* SDL_LoadWAV(const char* filename,
SDL_AudioSpec* spec,
Uint8** audio_buf,
Uint32* audio_len)
SDL_LoadWAV(file, spec, audio_buf, audio_len) \
SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)
Function Parameters
filename |
the name of the file to load |
spec |
specifies the target audio format; see SDL_AudioSpec for more info |
audio_buf |
specifies the audio buffer |
audio_len |
specifies the length of the audio buffer in bytes |
Return Value
green
If this function succeeds, it returns the given SDL_AudioSpec, filled with the audio data format of the wave data, sets *audio_buf to a malloc()'d buffer containing the audio data, and sets *audio_len to the length of that audio buffer, in bytes.
This function returns NULL if the wave file cannot be opened, uses an unknown data format, or is corrupt; call SDL_GetError() for more information.
Code Examples
*
green
SDL_AudioSpec wav_spec;
Uint32 wav_length;
Uint8 *wav_buffer;
/* Load the WAV */
if( SDL_LoadWAV("test.wav", &wav_spec, &wav_buffer, &wav_length) == NULL ){
fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError());
exit(-1);
}
.
.
.
/* Do stuff with the WAV */
.
.
/* Free It */
SDL_FreeWAV(wav_buffer);
*
Remarks
Currently raw and MS-ADPCM WAVE files are supported.
You need to free the audio buffer with SDL_FreeWAV() when you are done with it.
