#ifndef _FMAE_H_
#define _FMAE_H_

#ifdef __cplusplus
extern "C" {
#endif
	typedef void *FMAE_HANDLE;
	
	typedef void(*FMAEWkupCallBack)(short angle, short channel, float power, short CMScore, short beam, char *param1, void *param2, void *userData);
	
	typedef void(*FMAEAudioCallBack)(const void *audioData, unsigned int audioLen, int param1, const void *param2, void *userData);
	
	int FMAENew(FMAE_HANDLE *fmae, const char *resPath, FMAEWkupCallBack wkupCb, FMAEAudioCallBack audioCb, const char *param, void *userData);
	
	int FMAEAudioWrite(FMAE_HANDLE fmae, const void *audioData, unsigned int audioLen);
	
	int FMAEDestroy(FMAE_HANDLE fmae);
	
	int FMAEResetEngine(FMAE_HANDLE fmae);

	int FMAESetAngle(FMAE_HANDLE fmae, int angle);
	
	int FMAESetWParam(FMAE_HANDLE fmae, const char* param, const char* value);

	int FMAESetShowLog(int show_log);

	int FMAEGetVersion();

	int FMAEGetChannel();

#ifdef __cplusplus
};
#endif

#endif // _FMAE_H_