#pragma section-numbers off #pragma disable-camelcase = SDL_LoadWAV_RW = Use this function to load a WAVE from the data source, automatically freeing that source if '''freesrc''' is non-zero. <> == Syntax == {{{#!highlight cpp SDL_AudioSpec* SDL_LoadWAV_RW(SDL_RWops* src, int freesrc, SDL_AudioSpec* spec, Uint8** audio_buf, Uint32* audio_len) }}} == Function Parameters == ||'''src'''||the data source for the wave file; see [[CategoryIO|the RWOPS interface]]() for more info|| ||'''freesrc'''||non-zero to automatically free the data source|| ||'''spec'''||an [[SDL_AudioSpec]] structure that will be filled in with the wave file's format details|| ||'''audio_buf'''||the audio buffer|| ||'''audio_len'''||the length of the audio buffer in bytes|| == Return Value == This function, if successfully called, returns a pointer to an [[SDL_AudioSpec]] structure filled with the audio data format of the wave source data. '''audio_buf''' is filled with a pointer to an allocated buffer containing the audio data, and '''audio_len''' is filled with 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. When the application is done with the data returned in '''audio_buf''', it should call [[SDL_FreeWAV]]() to dispose of it. == Code Examples == {{{#!highlight cpp extern SDL_RWops *myRWops; SDL_AudioSpec wav_spec; Uint32 wav_length; Uint8 *wav_buffer; /* Load the WAV */ if (SDL_LoadWAV_RW(myRWops, 1, &wav_spec, &wav_buffer, &wav_length) == NULL) { fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError()); } else { /* Do stuff with the WAV data, and then... */ 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. == Related Functions == .[[SDL_FreeWAV]] .[[SDL_LoadWAV]] ---- [[CategoryAPI]], [[CategoryAudio]]