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() 割込みのネスト回数の取得