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() 各音源ごとの使用可能な発音数の設定