##### Sound Library - PCM Streamモジュールコントロール関数

# sdPstmOpen

PCM Streamポートのアクセス権の取得

### 書式

> `SDE_ERR sdPstmOpen( handle, allocate_slot_num, ... )
> SDPSTM *handle
> const Sint8 allocate_slot_num
> Sint8 use_ring_buf_num
> `

### 引数

> handle | ポート番号を格納する変数のポインタ
> allocate_slot_num | 確保するスロット数
> use_ring_buf_num | 使用するリングバッファ番号

### 戻り値

> SDE_ERR_NOTHING | エラーなし
> SDE_ERR_NO_INIT | Sound Library が初期化されていない
> SDE_ERR_HANDLE_NULL | ハンドルがNULL
> SDE_ERR_PRM_OVER_RANGE | 引数が正常な値の範囲外
> SDE_ERR_HANDLE_NO_ENOUGH | ハンドルを取得できない

### 解説

> PCM Streamポートのアクセス権を取得します。

> 確保するスロット数を指定する引数 allocate_slot_numの範囲は 1〜(マクロ定数 SDD_PSTM_PORT_SLOT_NUM)です。 use_ring_buf_num移行には使用するリングバッファ番号を指定します。 可変長引数になっているので必要分のリングバッファ番号を指定します。

> 戻り値がSDE_ERR_HANDLE_NO_ENOUGHの場合は音源の発音数が足りなかったか、取得できるハンドルをすべて使いきったかのどちらかを意味します。

### 用例

>     SDPSTM pstm_handle;
>     /*  case 1  */
>     sdPstmOpen( pstm_handle, 1, 0);  /*  Allocate one slot and use PCM stream ring buffer 0 */
>     /*  case 2  */
>     sdPstmOpen( pstm_handle, 2, 0, 1);  /*  Allocate two slots and use PCM stream ring buffers 0 and 1 */

### 備考

> 1ポート内で複数スロット確保すると同時に確保できるポート数が減少します。 使用するPCM Stream リングバッファ番号はデータ作成時に決定しておいてください。 アクセス権の確保・破棄を頻繁に行うとCPU負荷が大きくなります。 できるだけハンドルを使いまわすようにしてください。 例えば、ステージの初期化時に確保して、終了時に破棄すればCPU負荷は小さく押さえられます。 標準ではPCM Stream音源は全ポートで8 Slot確保されています.これを変更するにはsdSysSetSlotNum()関数を使用します。

### 参照

> sdPstmClose() | 1つのPCM Streamポートのアクセス権の放棄
> sdPstmCloseAll() | 全てのPCM Streamポートのアクセス権の放棄
> sdSysSetSlotNum() | 各音源ごとの使用可能な発音数の設定

sdPstmOpen

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000