NNS_SndArcInitOnMemory

構文

#include <nnsys/snd.h>
void NNS_SndArcInitOnMemory( NNSSndArc* arc, void* data );

引数

arc サウンドアーカイブを管理する NNSSndArc構造体のポインタです。
data サウンドアーカイブデータのポインタです。32バイトアライメントされている必要があります。

返り値

なし。

説明

メモリ上のサウンドアーカイブデータを使って、サウンドアーカイブ構造体を初期化します。 サウンドアーカイブ構造体は静的に確保することを推奨します。 動的に確保する場合は、後述の注意点に気をつけてください。

サウンドアーカイブの初期化は、この関数か NNS_SndArcInit関数で行います。 この関数でサウンドアーカイブを初期化すると、サウンドデータのメモリ管理やロードが不要になります。 また、ファイルシステムが有効である必要はありません。 ただし、より多くのメモリが必要となります。

初期化したサウンドアーカイブは、自動的にカレントサウンドアーカイブに設定されます。 カレントサウンドアーカイブを変更するには、 NNS_SndArcSetCurrent関数を使います。

注意

サウンドアーカイブ構造体は、サウンドアーカイブが不要になった時点で破棄することができます。 ただし、破棄するサウンドアーカイブ構造体のポインタが、 カレントサウンドアーカイブとして、セットされている可能性について留意してください。

また、サウンドアーカイブを破棄し、 同じアドレスに異なるサウンドアーカイブデータを展開する場合、 前のサウンドアーカイブを破棄する前に、


SND_InvalidateSeqData(data, (u8*)data + dataSize);
SND_InvalidateBankData(data, (u8*)data + dataSize);
SND_InvalidateWaveData(data, (u8*)data + dataSize);
u32 tag = SND_GetCurrentCommandTag();
(void)SND_FlushCommand( SND_COMMAND_BLOCK );
SND_WaitForCommandProc(tag);

のようにし、各データを無効化しておくようにしてください。

参照

NNS_SndArcInit, NNS_SndArcSetCurrent

履歴

2009/02/19 異なるサウンドアーカイブを同じアドレスにロードして使用する場合の注意書きを追加
2005/10/18 アライメント値の誤記修正
2004/09/06 NNS_SndArc構造体の動的確保に関する注意書き追加
2004/06/01 初版