# 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 初版