#pragma once
#include "gobiapiservice.h"

class CFuncList;

class CGobiApiFwMgmt : public CGobiApiService
{
public:
	CGobiApiFwMgmt(HMODULE hQCDll);
	~CGobiApiFwMgmt(void);

	BOOL GetAvailFuncList(CFuncList* pFuncList);
	UINT ExecuteFunctions(CFuncList* pFuncList, UINT &nTotalExec);

protected:
	static const TableFuncEntry m_TableFunc[];

	static BOOL FuncGetFirmwareInfo(CParamList* pParams = NULL);
	static BOOL FuncGetImageInfo(CParamList* pParams = NULL);
	static BOOL FuncGetImageStoreW(CParamList* pParams = NULL);
	static BOOL FuncUpgradeFirmware2kW(CParamList* pParams = NULL);
	static BOOL FuncSetImagesPreference(CParamList* pParams = NULL);
	static BOOL FuncGetImagesPreference(CParamList* pParams = NULL);
	static BOOL FuncGetStoredImages(CParamList* pParams = NULL);
	static BOOL FuncDeleteStoredImages(CParamList* pParams = NULL);
	static BOOL FuncResetDevice(CParamList* pParams = NULL);
	static BOOL FuncGetBARMode(CParamList* pParams = NULL);
	static BOOL FuncSetBARMode(CParamList* pParams = NULL);
	static BOOL FuncDeleteAllImages(CParamList* pParams = NULL);

	static CParamList m_sUpgradeFirmware2kW;
	static CParamList m_sGetImageInfo;
	static CParamList m_sSetImagesPreference;
	static CParamList m_sDeleteStoredImages;
	static CParamList m_sDeleteAllImageType;
};
