# NNS_SndArcLoadBank*

## 構文

      #include <nnsys/snd.h>

      #define NNS_SND_ARC_LOAD_BANK ( 1 << 1 )
      #define NNS_SND_ARC_LOAD_WAVE ( 1 << 2 )

      BOOL NNS_SndArcLoadBank( int bankNo, NNSSndHeapHandle heap );
      BOOL NNS_SndArcLoadBankEx(
              int bankNo,
              u32 loadFlag,
              NNSSndHeapHandle heap );

## 引数

`bankNo` | バンク番号です。
`heap` | サウンドヒープハンドルです。
`loadFlag` | どのデータをロードするかを指定するフラグです。

## 返り値

ロードに成功したかどうかを返します。

## 説明

バンクデータをヒープへロードします。

`NNS_SndArcLoadBank`関数は、バンクデータに関連づけられた波形アーカイブも同時にロードします。 `NNS_SndArcLoadBankEx`関数は、これら２つのデータの内、どちらをロードするかを`loadFlag`で指定します。 `loadFlag`には、下記のマクロを入れます。

表 . ロードフラグ

マクロ | 値 | 説明
--- | --- | ---
NNS_SND_ARC_LOAD_BANK | 1 << 1 | バンクデータ
NNS_SND_ARC_LOAD_WAVE | 1 << 2 | 波形アーカイブ

ロードに必要なメモリは、サウンドヒープ`heap`から、 `NNS_SndHeapAlloc`関数で自動的に確保されます。 メモリの確保に失敗すると、処理を中断して、FALSEを返します。

既にメモリ上にあるサウンドデータについては、ロードは実行されません。 サウンドデータがメモリ上にあるかどうかの判定は、 `NNS_SndArcGetFileAddress`関数で行っています。 また、ロードに成功したデータは、 `NNS_SndArcSetFileAddress`関数で、 アドレスをセットしています。

一度に行う読み込みサイズを制限したい場合は、 `NNS_SndArcSetLoadBlockSize`関数で、 ロードブロックサイズを設定してください。

### 注意

この関数は、 `NNS_SndArcInit`関数で初期化されたサウンドアーカイブに対して使います。 `NNS_SndArcInitOnMemory`関数で 初期化されたサウンドアーカイブに対しては使えません。

## 参照

NNS_SndHeapAlloc, NNS_SndArcGetFileAddress, NNS_SndArcSetFileAddress, NNS_SndArcSetLoadBlockSize, NNS_SndArcInit, NNS_SndArcInitOnMemory

## 履歴

2007/10/17 NNS_SndArcSetLoadBlockSize関数に関する説明追加
2004/06/01 初版