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

# sdPstmOnMemSetWaveData

オンメモリPCM Streamの再生を行う波形の設定

### 書式

> `SDE_ERR sdPstmOnMemSetWaveData( handle, target_slot, src_handle )
> SDPSTM handle
> const Sint8 target_slot
> SDMEMBLK src_handle
> `

### 引数

> handle | PCM Streamポートのハンドル
> target_slot | スロット番号
> src_handle | メモリブロックのハンドル

### 戻り値

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

### 解説

> オンメモリPCM Stream再生の設定を行います。

### 用例

>     /*
>      * Monaural on-memory PCM stream sample
>      */
>     /* Base parameters */
>     #define BASE_VOL	(0x7F)
>     #define BASE_PAN	(0x40)
>     #define BASE_FX_CH	(0x00)
>     #define BASE_FX_LEV	(0x00)
>     #define BASE_DRCT_LEV	(0x7F)
>     #define BASE_FILTER_LEV	(SDD_PSTM_PORT_SLOT_FILTER_THROUGH)
>     #define BASE_FILER_Q	(0x00)
>     /* Playback waveform size */
>     #define WAVE_SZ		(0x10000)
>     /* Size to transfer to ring buffer */
>     #define TRANSFER_SZ	(0x1000)
>     /* Loop or not */
>     #define LOOP_FLG		(true)
>     SDPSTM  pstm_handle;
>     SDMEMBLK        memblk;
>     Void    *src_wave;      /* Source waveform value must be divisible by transfer_sz */
>     src_wave = syMalloc( WAVE_SZ);  /* Address of wavefore for actual playback */
>     sdMemBlkCreate( &memblk);
>     sdMemBlkSetPrm( memblk, src_wave, WAVE_SZ, SDD_MEMBLK_NO_FUNC, NULL);
>     /* Get PCM stream port access permission, using PCM stream ring buffer index 0 */
>     sdPstmOpen( &pstm_handle, 1, 0);
>     /* Set base parameters */
>     sdPstmSetBasePrm( pstm_handle, SDD_PSTM_PORT_SLOT_ALL,
>     		BASE_VOL, BASE_PAN, BASE_FX_CH, BASE_FX_LEV,
>     		BASE_DRCT_LEV, BASE_FILTER_LEV, BASE_FILTER_Q);
>     /* Set source memory block for on-memory playback */
>     sdPstmOnMemSetWaveData( pstm_handle, 0, memblk);
>     /* On-memory playback */
>     sdPstmOnMemPlay( pstm_handle, SDE_PCM_TYPE_16BIT_LINEAR,
>     		44100, TRANSFER_SZ, LOOP_FLG);
>     /* Game processing */
>     main_loop();
>     /* Stop playback */
>     sdPstmStop( pstm_handle);
>     /* Termination processing */
>     sdMemBlkDestroy( memblk);
>     sdPstmClose( pstm_handle);
>     syMalloc( src_wave);

sdPstmOnMemSetWaveData

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000