Shinobi Library - コールバック関数

syCallbackAddHandler

コールバック関数の登録

書式

SYCALLBACK syCallbackAddHandler( event, usrCallbackFunc, priority, arg )
SY_CALLBACK_EVENT event
Void (*usrCallbackFunc)(Void *)
Uint8 priority
Void *arg

引数

event   コールバックを登録するイベント
usrCallbackFunc   登録する関数
priority   イベント発生時に呼び出す優先順位
arg   関数をコールバックするときに引数として渡す値

戻り値

コールバックハンドル

解説

引数 event で指定される割込みが発生したときに、呼び出されるユーザのコールバック関数 usrCallbackFunc を登録します。

引数 event は次の指定が可能です。

 定義   値   意味 
 SYD_CALLBACK_EVENT_VBLANKIN   0x0900   VBLANK-IN 
 SYD_CALLBACK_EVENT_HBLANK   0x0920   HBLANK 
 SYD_CALLBACK_EVENT_EOR   0x0950   End Of Render 
 SYD_CALLBACK_EVENT_EOYUV   0x0960   End Of YUV 
 SYD_CALLBACK_EVENT_PDPORT   0x0A00   Maple ポート割込み 
 SYD_CALLBACK_EVENT_GDEND   0x0A40   GD 読み込み終了 
 SYD_CALLBACK_EVENT_AICADM   0x0A60   AICA DMA 終了 

ここで、HBLANKにはグラフィックライブラリ関数を使用して、事前にHライン割込みの発生位置の設定が必要です。

1つのイベントに対して複数のコールバック関数を引数 priority で指定される順番で呼び出します。

引数priority に指定する値の範囲は、0x00 〜 0x10 までです。 この値が小さいほど割込み発生時に先に呼び出されますが、同じ値を指定した場合には後から登録された関数が先に実行されます。


備考

戻り値となるコールバックハンドルは、 登録したコールバック関数を削除するときに用います。 コールバック関数の登録を削除するには、syCallbackDeleteHandler()関数を用います。

同じイベント番号を指定しても上書きはされません。

登録したコールバック関数は、割込み状態で実行されるため、処理内で割込みを必要とする処理を行わないでください。


参照

syCallbackInit()
 コールバックライブラリの初期化
syCallbackFinish()
 コールバックライブラリの終了
syCallbackDeleteHandler()
 登録したコールバック関数の削除
syCallbackGetNestCount()
 割込みのネスト回数の取得

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