#include <nnsys/snd.h>BOOL NNS_SndArcLoadWaveArc( int waveArcNo, NNSSndHeapHandle heap );
波形アーカイブをヒープへロードします。
ロードに必要なメモリは、サウンドヒープheapから、
NNS_SndHeapAlloc関数で自動的に確保されます。
メモリの確保に失敗すると、処理を中断して、FALSEを返します。
既にメモリ上にあるサウンドデータについては、ロードは実行されません。 サウンドデータがメモリ上にあるかどうかの判定は、 NNS_SndArcGetFileAddress関数で行っています。 また、ロードに成功したデータは、 NNS_SndArcSetFileAddress関数で、 アドレスをセットしています。
一度に行う読み込みサイズを制限したい場合は、 NNS_SndArcSetLoadBlockSize関数で、 ロードブロックサイズを設定してください。
この関数は、 NNS_SndArcInit関数で初期化されたサウンドアーカイブに対して使います。 NNS_SndArcInitOnMemory関数で 初期化されたサウンドアーカイブに対しては使えません。
サウンドアーカイブ定義ファイルの波形アーカイブセクションで、 s オプションをつけると波形の個別ロードができるようになりますが、 このとき本関数は波形アーカイブのヘッダーと波形テーブルだけをロードします (波形本体は、NNS_SndArcLoadBank 関数などとともにロードされます)。 一方、s オプションをつけない場合、本関数は波形アーカイブ全体をロードします。
s オプションをつけた場合にロードされる波形テーブルは、 どの波形がロード済みなのかを管理するために NITRO コンポーザ内部で利用されます。 波形テーブルのサイズは、波形アーカイブに含まれる波形の数に比例し、 波形 4 つにつき 32 バイトずつ増えていきます。
NNS_SndHeapAlloc, NNS_SndArcGetFileAddress, NNS_SndArcSetFileAddress, NNS_SndArcSetLoadBlockSize, NNS_SndArcInit, NNS_SndArcInitOnMemory
2009/06/29 個別ロードに関する説明を追記
2007/10/17 NNS_SndArcSetLoadBlockSize関数に関する説明追加
2004/06/01 初版