SNDWaveData

定義

#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 サンプルフォーマットです。
loopflag ループフラグです。0ならループ無し、非0ならループ有りです。
rate サンプリングレートです。単位はHzです。
timer 再生タイマー値です。SND_TIMER_CLOCK / rate に相当します。
loopstart ループ開始ポイントです。単位はワード(32bit)です。
looplen ループ長です。ループ無しの場合は、波形長に相当します。 単位はワード(32bit)です。
samples サンプルデータの配列です。配列の大きさは、 loopstart+looplen[word]です。

説明

波形データ構造体です。波形データのヘッダ情報及びサンプルデータを保持しています。

サンプルフォーマットformatは以下の値を取ります。

表 . SNDWaveFormat

ラベル 説明
SND_WAVE_FORMAT_PCM8 8bit PCM
SND_WAVE_FORMAT_PCM16 16bit PCM
SND_WAVE_FORMAT_ADPCM IMA-ADPCM

サンプルフォーマットがSND_WAVE_FORMAT_ADPCMの場合、 サンプルデータsamplesの先頭1wordには、 次のようなADPCMのヘッダ情報が格納されます。

struct {
    s16 prevsample; // 前のサンプル値
    u8  previndex;  // 前のインデックス値
    u8  padding;    // パディング(常に0)
};

参照

なし。

履歴

2005/01/19 初版