libdragon
Data Structures | Functions
wav64.h File Reference

Support for WAV64 audio files. More...

Go to the source code of this file.

Data Structures

struct  wav64_t
 WAV64 structure. More...
 

Functions

void wav64_open (wav64_t *wav, const char *fn)
 Open a WAV64 file for playback. More...
 
void wav64_set_loop (wav64_t *wav, bool loop)
 Configure a WAV64 file for looping playback.
 
void wav64_play (wav64_t *wav, int ch)
 Start playing a WAV64 file. More...
 

Detailed Description

Support for WAV64 audio files.


Data Structure Documentation

◆ wav64_t

struct wav64_t

WAV64 structure.

This structure is initialized by wav64_open to refer to an opened WAV64 file. It is meant to be played back through the audio mixer, implementing the waveform_t interface. As such, samples are not preloaded in memory but rather loaded on request when needed for playback, streaming directly from ROM. See waveform_t for more details.

Use wav64_play to playback. For more advanced usage, call directly the mixer functions, accessing the wave structure field.

Data Fields
waveform_t wave waveform_t for this WAV64.

Access and use this field directly with the mixer, if needed.

uint32_t rom_addr Absolute ROM address of WAV64.

Function Documentation

◆ wav64_open()

void wav64_open ( wav64_t wav,
const char *  fn 
)

Open a WAV64 file for playback.

This function opens the file, parses the header, and initializes for playing back through the audio mixer.

Parameters
wavPointer to wav64_t structure
fnFilename of the wav64 (with filesystem prefix). Currently, only files on DFS ("rom:/") are supported.

◆ wav64_play()

void wav64_play ( wav64_t wav,
int  ch 
)

Start playing a WAV64 file.

This is just a simple wrapper that calls mixer_ch_play on the WAV64's waveform (wav64_t::wave). For advanced usages, please call directly the mixer functions.

Parameters
wavPointer to wav64_t structure
chChannel of the mixer to use for playback.