# NNS_SndPlayerCreateHeap

## 構文

      #include <nnsys/snd.h>

      BOOL NNS_SndPlayerCreateHeap(
              int playerNo,
              NNSSndHeapHandle heap,
              u32 size );

## 引数

`playerNo` | プレイヤー番号です。
`heap` | プレイヤーヒープを確保するためのヒープです。
`size` | プレイヤーヒープのサイズです。

## 返り値

プレイヤーヒープの作成に成功したかどうかを返します。

## 説明

プレイヤーヒープを作成します。

サウンドヒープ`heap`上に、サイズ`size`のプレイヤーヒープを作成します。 プレイヤーヒープの管理領域が必要なため、実際にはサイズ`size`より多くのメモリを消費します。 元のサウンドヒープ`heap`に十分な空き容量が無い場合、関数は失敗します。

作成されたサウンドヒープは、指定したプレイヤー`playerNo`に接続されます。 `NNS_SndArcPlayerStartSeq`関数を使って、 指定プレイヤー`playerNo`でシーケンスを再生しようとしたときに、 このプレイヤーヒープが使用されます。

この関数を繰り返し呼びだすと、指定したプレイヤー`playerNo`に対し、 プレイヤーヒープが追加されていきます。通常、プレイヤー毎のシーケンス同時再生最大数と 同じだけのプレイヤーヒープを作成します。 （ただし、再生に必要なサウンドデータがサウンドヒープ上にある場合は、プレイヤーヒープを 作成する必要はありません。）

元のサウンドヒープ`heap`のヒープ操作によって、 プレイヤーヒープを確保した領域が開放されたとき、自動的にプレイヤーからプレイヤーヒープが 切り離されます。

### 注意

この関数は、`NNS_SndArcPlayerSetup`関数内で、 呼びだされています。再度、この関数を呼びだすと、サウンドアーカイブでの設定に加える形で、プレイヤーヒープが追加されます。

プレイヤーヒープのサイズsizeは、各プレイヤー毎に同じ値を指定してください。 １つのプレイヤーに、異なるサイズのプレイヤーヒープが接続されていると、 データのロードに成功したり失敗したりといった不安定な動作をするようになります。

## 参照

NNS_SndArcPlayerStartSeq, NNS_SndArcPlayerSetup

## 履歴

2004/06/01 初版