CARD_SetPulledOutCallback

構文

#include <nitro/card.h>
void CARD_SetPulledOutCallback( CARDPulledOutCallback callback );
  

引数

callback カード抜きを検出したときに呼び出されるコールバック関数
このコールバックは割り込みハンドラ内か、CARD_CheckPulledut( )の内部から呼び出されます。

返り値

なし。

説明

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

この関数を使用するためには、CARD_Init() が予め呼ばれている必要があります。

CARDPulledOutCallback

typedef BOOL ( *CARDPulledOutCallback )( void );

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

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




コールバックについて

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

例えば、抜けを検出したときに「DON'T PULL OUT CARD」と表示して停止するには以下のようにします。

Example:

void NitroMain( void )
{
 initializeRoutine();
 CARD_SetPulledOutCallback( myCallback ); // set callback

 while(1)
 {
   usualGameProcedure();
   if ( CARD_IsPulledOut() ) // check if card is pulled out
   {
     drawMessageRoutine( "DON'T PULL OUT CARD" );
     CARD_TerminateForPulledOut(); // termination
     // program halted. never reached here.
   }
 }
}

//---- callback for card pulled out
BOOL myCallback( void )
{
 return FALSE; // means that not terminate
}

参照

CARD_Init, CARD_TerminateForPulledOut, CARD_IsPulledOut, CARD_CheckPulledOut

履歴

2005/06/01 コールバックが割り込みハンドラから呼び出される旨を補足
2004/12/16 サンプルコードを CARD_IsPulledOut() を使うように修正
2004/11/10 コールバックから戻った後の停止処理で蓋が閉じられていれば電源オフと追記
2004/09/16 初版