CTRDG_SetPulledOutCallback

構文

#include <nitro/ctrdg.h>
void CTRDG_SetPulledOutCallback( CTRDGPulledOutCallback callback );
  

引数

callback カートリッジ抜きを検出したときに呼び出されるコールバック関数

返り値

なし。

説明

カートリッジ抜きを検出したときに呼び出されるコールバック関数を設定します。

CTRDGPulledOutCallback

typedef BOOL ( *CTRDGPulledOutCallback )( void );

で定義されるコールバック関数 callback の型です。

callback に NULL が指定されると、コールバックの呼び出しは行いません。




コールバックについて

コールバックの返り値には、コールバックから抜けてすぐに停止する場合 TRUE を指定してください。FALSEを指定すると停止しません。必要な処理の後停止する場合は後から CTRDG_TerminateForPulledOut() を呼び出してください。ただし停止処理はPXIを使用してARM7に通達するので、割り込み禁止状態であるコールバックの中からは呼び出せません。

例えば、抜けを検出したときに「DON'T PULL OUT CARTRIDGE」と表示して停止するには以下のようにします。
(init処理など、多くの行を端折ってあります)

Example:

BOOL isPulledOut = FALSE;

void NitroMain( void )
{
 initializeRoutine();
 CTRDG_Init(); // maybe called in OS_Init()
 CTRDG_SetPulledOutCallback( myCallback ); // set callback

 while(1)
 {
   usualGameProcedure();
   if ( isPulledOut == TRUE ) // check if cartridge is pulled out
   {
     drawMessageRoutine( "DON'T PULL OUT CARTRIDGE" );
     CTRDG_TerminateForPulledOut(); // termination
     // program halted. never reached.
   }
 }
}

//---- callback for cartridge pulled out
BOOL myCallback( void )
{
 isPulledOut = TRUE; // remember that cartridge is pulled out
 return FALSE; // means not to terminate
}

参照

CTRDG_Init, CTRDG_TerminateForPulledOut

履歴

2004/09/15 初版