#include <nitro/snd.h>
typedef struct SNDWaveParam
{
u8 format;
u8 loopflag;
u16 rate;
u16 timer;
u16 loopstart;
u32 looplen;
} SNDWaveParam;
typedef struct SNDWaveData
{
struct SNDWaveParam param;
u8 samples[0];
} SNDWaveData;
format |
This is the sample format. |
loopflag |
The loop flag. There is no loop if zero, and a loop exists if non-zero. |
rate |
This is the sampling rate. It is expressed in MHz. |
timer |
Description It corresponds to SND_TIMER_CLOCK / rate. |
loopstart |
This is the starting point of the loop. It is expressed in words (32-bit). |
looplen |
This is the length of the loop. If there is no loop, this corresponds to the length of the waveform. It is expressed in words (32-bit). |
samples |
This is an array of the sample data. The size of the array is loopstart +looplen [in words].
|
Waveform data structure. It holds the header information and the sample data for the waveform data.
The sample format format
takes one of the following values.
Table. SNDWaveFormat
Label | Description |
---|---|
SND_WAVE_FORMAT_PCM8 | 8bit PCM |
SND_WAVE_FORMAT_PCM16 | 16bit PCM |
SND_WAVE_FORMAT_ADPCM | IMA-ADPCM |
If the sample format is SND_WAVE_FORMAT_ADPCM
, ADPCM header information similar to the following is stored in the first word of the sample data samples
.
struct { s16 prevsample; // Previous sample value u8 previndex; // Previous index value u8 padding; // Padding (always 0) };
None.
01/19/2005 Initial version