Sound Library - One Shotモジュールコントロール関数

sdShotSetPlayTime

One Shotの再生時間の設定

書式

SDE_ERR sdShotSetPlayTime( handle, scale_type, time_value )
SDSHOT handle
const SDE_SHOT_PLAY_TIME scale_type
Sint32 time_value

引数

handle   One Shotポートのハンドル
scale_type   設定する時間のタイプ
time_value   再生時間

戻り値

SDE_ERR_NOTHING   エラーなし
SDE_ERR_NO_INIT   Sound Library が初期化されていない
SDE_ERR_HANDLE_NULL   ハンドルがNULL
SDE_ERR_PRM_OVER_RANGE   引数が正常な値の範囲外
SDE_ERR_HOST_CMD_BUF_NO_ENOUGH   ホストコマンドのバッファが不足

解説

指定したポートでOne Shotストリームの再生時間を設定します。

再生時間は引数time_valueで指定し、この引数のタイプは引数 scale_typeによって指定します。

引数scale_type指定するタイプは次のように定義されています。

 定義   意味 
 SDE_SHOT_PLAY_TIME_RELATIVE   相対値(One Shot Data内の時間パラメータから直接加減した時間を利用する) 
 SDE_SHOT_PLAY_TIME_RATIO   割合値(One Shot Data内の時間パラメータから割合を算出した時間を利用する) 
 SDE_SHOT_PLAY_TIME_ABSOLUTE   絶対値(単位はミリ秒) 


用例

SDSHOT	gShotHandle;

UserInit()
{
	sdShotOpen( &gShotHandle);
	/* gShotHandleのポートは常に100msでOne Shot Dataを再生する */
	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_ABSOLUTE, 100);

	/* gShotHandleのポートは常にOne Shot Data内の再生時間していを2.8倍して再生する */
	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_RATIO, 0x280);

	/* gShotHandleのポートは常にOne Shot Data内の再生時間していより100ms短く再生する */
	sdShotSetPlayTime( SDE_SHOT_PLAY_TIME_RELATIVE, -100);
}

備考

Sound Driverは4msのタイミングで動作しているので、設定する時間を4ms以下にしても意味がありません。 また、数msの誤差が出ることもあります。 この関数の効果はサウンドクリエイタが波形のループ再生を指定した時のみ有効です。もしうまく効果が出ない時はサウンドクリエイタに確認してください。

定期的なタイミングで行うアプリケーションで用意したサーバ関数などで、V同期で変化のない値を毎回設定し続けることは効率的なHost Command Bufferの利用方法でないばかりか、Sound Driverの負荷を増やす原因になります。 なるべく行わないでください。


参照

SDE_SHOT_PLAY_TIME()
 One Shotの再生時間の指定方法

sdShotSetPlayTime
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000