#ifndef _IMAGER_H #define _IMAGER_H #include "logging/RhoLog.h" #include "common/RhoStd.h" #include "Camera.h" #include"EmdkDefines.h" /* Function pointer for Image Capture APIs (Exposed by image capture library ImgAPI32.dll) */ typedef DWORD (*IMAGE_FINDFIRSTPROC)(LPIMAGE_FINDINFO, PHANDLE); typedef DWORD (*IMAGE_FINDNEXTPROC)(LPIMAGE_FINDINFO, HANDLE); typedef DWORD (*IMAGE_FINDCLOSEPROC)(HANDLE); typedef DWORD (*IMAGE_OPENPROC)(PCTSTR, PHANDLE); typedef DWORD (*IMAGE_CLOSEPROC)(HANDLE); typedef DWORD (*IMAGE_STARTACQUISITIONPROC)(HANDLE); typedef DWORD (*IMAGE_STOPACQUISITIONPROC)(HANDLE); typedef DWORD (*IMAGE_STARTVIEWFINDERPROC)(HANDLE); typedef DWORD (*IMAGE_STOPVIEWFINDERPROC)(HANDLE); typedef DWORD (*IMAGE_GETIMAGEPROC)(HANDLE, LPDWORD, LPVOID); typedef DWORD (*IMAGE_SETCAPCURRVALUEPROC) (HANDLE, DWORD, DWORD, LPVOID); typedef DWORD (*IMAGE_UNLOCKIMAGERPROC)(HANDLE); class CImager : public CCamera { private: static HINSTANCE m_hImagerLibHandle; HANDLE m_hImager;///< Handle to image capture device returned by Image_Open API, used to invoke other APIs static bool m_bImagerLoadFailed; protected: BOOL m_AimMode; public: CImager(LPCTSTR szDeviceName); ~CImager(); virtual BOOL getProperty(LPCTSTR szParameterName, WCHAR* szParameterValue); virtual BOOL setProperty(LPCTSTR szPropertyName, LPCTSTR szPropertyValue); virtual void getSupportedPropertyList(rho::Vector& arrayofNames); static BOOL enumerate(rho::Vector& arIDs, rho::Hashtable& camLookUp); virtual void takeFullScreen(); virtual BOOL showPreview(); virtual BOOL hidePreview(); virtual void Capture(); virtual void getSupportedSizeList(StringifyVector& supportedSizeList){}; virtual void ApplicationFocusChange(bool bAppHasFocus); virtual void OnPowerButton(bool bPowerOn); private: static IMAGE_FINDCLOSEPROC Image_FindClose;///