#ifndef OEM_FELICA_H
#define OEM_FELICA_H

#include "AEE.h"
#include "AEEComdef.h"

typedef enum
{
   FELICA_URL_DIVIDE,  // メモリ分割
   FELICA_URL_MEMCLR,  // メモリクリア
   FELICA_URL_UNLOCK,  // 強制ロック解除
   FELICA_URL_PORTAL   // FeliCaポータル
} FeliCaURLType;

// イベント：☆仮にここで定義しておくOEM側で定義してもらう必要有り☆
#define			EVT_FSA_LAUNCH_OK			(EVT_USER + 1)			// 20050222 ADD
#define			EVT_FSA_LAUNCH_NG			(EVT_USER + 2)			// 20050222 ADD

/*
 *  OEM_FeliCaGetURL()
 *
 *  Description:
 *     移動機のNV領域に保存されているFeliCa用のURLを取得する関数
 *
 *  Prototype
 *     boolean OEM_FeliCaGetURL( FeliCaURLType t, char* url )
 *
 *  Parameters
 *     FeliCaURLType t: 取得するFeliCa SSFのURLの種類
 *     char* url      : URL格納用バッファ
 *
 *  Return Value
 *     char* url : 取得したURL(デリミタを含む)
 *     TRUE : 取得成功
 *     FALSE: 取得失敗
 *
 *  Comments
 *     None
 *
 *  See Also
 *     None
 */

boolean OEM_FeliCaGetURL( FeliCaURLType t, char* url );

/*
 *  OEM_UpDateHotkeyIsFeliCaApplet()
 *
 *  Description:
 *               一発起動に設定されているAppがFeliCaアプリかどうかを
 *               判別するFlagを設定する。(引数なし版)
 *  Prototype
 *     boolean OEM_UpDateHotkeyIsFeliCaApplet( void )
 *
 *  Parameters None
 *
 *  Return Value
 *     TRUE : 設定成功
 *     FALSE: 設定失敗（エラー）
 *
 *  Comments
 *     None
 *
 *  See Also
 *     None
 */

extern boolean OEM_UpDateHotkeyIsFeliCaApplet( void );

/*
 *  OEM_GetHotkeyIsFeliCaApplet()
 *
 *  Description:
 *               一発起動に設定されているAppがFeliCaアプリかどうかを
 *               判別するFlagを設定する。
 *  Prototype
 *     boolean OEM_GetHotkeyIsFeliCaApplet(int kind)
 *
 *  Parameters
 *      int kind       : 設定する一発起動の種類（アプリKeyかFeliCaKeyか）
 *                       HOTKEY_ISAPPKEY or HOTKEY_ISFELICAKEY
 *  Return Value
 *     一発起動に設定されているアプリがFeliCaアプリかどうか返す。
 *     TRUE : FeliCaアプリ
 *     FALSE: FelCaアプリ以外または未設定時
 *
 *  Comments
 *     None
 *
 *  See Also
 *     None
 */
extern boolean OEM_GetHotkeyIsFeliCaApplet(int kind);

/*
 *  OEM_FeliCa_AppIsInGroup()
 *
 *  Description:
 *     FeliCaアプリかどうかを判定するためのAppIsInGroup()のWrapper
 *
 *  Prototype
 *     int OEM_FeliCa_AppIsInGroup(IShell *ps, AEECLSID idApp)
 *
 *  Parameters
 *     IShell *ps     : Shellのポインタ
 *     AEECLSID idApp : FeliCaアプリか比較するCLSID
 *
 *  Return Value
 *     SUCCESS : FeliCaアプリである
 *     others  : FeliCaアプリではない
 *
 *  Comments
 *     DependencyでAEECLSID_KDDI_APPLET_FELICAが含まれるもののみ
 *     FeliCaアプリと判定される
 *     返り値は ISHELL_AppIsInGroup()に合わせる
 *
 *  See Also
 *     None
 */

//int OEM_FeliCa_AppIsInGroup(IShell *ps, AEECLSID idApp);
extern int OEM_FeliCa_AppIsInGroup(IShell *ps, AEECLSID idApp);


extern void OEM_FeliCa_SetResetOperation(unsigned char val);

extern boolean OEM_FeliCa_CheckResetOperation( void );

/*
 *  OEM_FeliCa_AppDeleteStart()
 *
 *  Description:
 *     アプリ削除処理開始時にFeliCaICにアクセス可能にする処理
 *
 *  Prototype
 *     void OEM_FeliCa_AppDeleteStart(void)
 *
 *  Parameters
 *     なし
 *
 *  Return Value
 *     なし
 *
 *  Comments
 *     FeliCaIC電源OFF時のみONする
 *
 *  See Also
 *     None
 */

extern void OEM_FeliCa_AppDeleteStart(void);

/*
 *  OEM_FeliCa_AppDeleteEnd()
 *
 *  Description:
 *     アプリ削除処理終了時にFeliCaICに電源を再設定する処理
 *
 *  Prototype
 *     void OEM_FeliCa_AppDeleteEnd(void)
 *
 *  Parameters
 *     なし
 *
 *  Return Value
 *     なし
 *
 *  Comments
 *     なし
 *
 *  See Also
 *     None
 */

extern void OEM_FeliCa_AppDeleteEnd(void);


#endif // OEM_FELICA_H
