sample04.hsp

sample\hspdsp\sample04.hsp » Plain Format

// sample04.hsp ループ再生 (HSP自前処理)
#include "hspdsp.as"

	dsp_Init	; 初期化

	dialog "*",16,"メディアファイル"
	if stat=0:end

	// システム標準のレンダラーで開く
	dsp_Open refstr,OPEN_DEFAULT_RENDERER,0,0,0
	
	onexit *exit	; 終了時開放するため

	dsp_SetEvHWND hwnd	;イベントがメッセージとして通知されます。
	oncmd gosub *change,WM_GRAPH_NOTIFY	;イベント通知

	dsp_Play hwnd,0,0,640,480		; 0,0 座標に 640x480 の大きさで表示
	
	stop

*exit
	
	dsp_Close	; メディアファイルを閉じる
	dsp_Exit	; 開放
	end

*change
	
	// 自前で処理する場合は dsp_GetStopped()を使ってイベントID をとります。
	// この際、- 値に変わるまでループしてください。(取りこぼしを防ぐため。)
	
	repeat
	
		tmp=dsp_GetStopped()	;tmp に イベントID が入ります。
		
		if tmp<0:break			;値が - を返すまでループ
		
		// 1 はグラフの再生が終了したときに返ります。
		if tmp=1:dsp_SetSeek 0:dsp_play2	;位置を0まで戻して再生

		//せっかくなのでイベント内容を見る
		sdim tt,128
		dupptr tt,dsp_getmediaevstr(tmp),128,2
		title ""+tmp+":"+tt
		
	loop

	return