#ifndef MOD_LIVENESSDETECTION_H #define MOD_LIVENESSDETECTION_H #pragma once #ifdef RVC_OS_WIN #include "stdafx.h" #endif // RVC_OS_WIN #include "SpBase.h" #include "SpIni.h" #include "rvc_media_common.h" #include "Event.h" #include "mod_customeraware/Event.h" #include "mod_mediacontroller/Event.h" #include "mod_facetracking/sysvar.h" #include "LivenessDetection_def_g.h" #include "LivenessDetection_msg_g.h" #include "LivenessDetection_server_g.h" #include #include "EventCode.h" #include "RvcWsServer.h" #include "RvcFaceVideo.h" using namespace LivenessDetection; class CLivenessDetectionEntity; class LivenessDetectionServerSession : public LivenessDetectionService_ServerSessionBase { public: LivenessDetectionServerSession(CLivenessDetectionEntity* pEntity) : m_pEntity(pEntity) {} virtual ~LivenessDetectionServerSession() {} private: CLivenessDetectionEntity* m_pEntity; }; class CLivenessDetectionEntity : public CEntityBase, public ILogListener, public ISysVarListener { public: CLivenessDetectionEntity(); virtual ~CLivenessDetectionEntity(); virtual const char *GetEntityName() const; virtual void OnPreStart(CAutoArray strArgs,CSmartPointer pTransactionContext); virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer pTransactionContext); virtual void OnStarted(); virtual int GetActiveCamera(); ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError); ErrorCodeEnum __OnClose(ErrorCodeEnum preOperationError); virtual void OnLog(const CAutoArray &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel, const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID, const CAutoArray &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo); virtual bool IsService() const { return true; } virtual bool IsMultiThread() const { return false; } // 实体服务化 virtual CServerSessionBase* OnNewSession(const char*, const char*) { return new LivenessDetectionServerSession(this); } DeviceTypeEnum GetDeviceType() const { return m_eDeviceType; } int on_get_videodata(eVideoType eType, eCameraType ecameraid, int* width, int* height, unsigned char* bmpdata, int isize); RvcWsServer* GetWsServer() { return m_WsServer; } int GetWsPort() { return m_iWsPort; } ErrorCodeEnum GetEntityConfigure(); private: virtual void OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName); virtual void OnSelfTest(EntityTestEnum eTestType,CSmartPointer pTransactionContext); void InitVideoQueueInfo(); DeviceTypeEnum m_eDeviceType; int nActiveCamera; int m_iCameraState; CAutoArray m_arrListener; RvcWsServer* m_WsServer; RvcFaceVideo* m_pFaceVideo; #ifdef RVC_OS_WIN HANDLE m_hWsServerThread; #else pthread_t m_hWsServerThreadId; #endif //RVC_OS_WIN int m_iWsPort; }; #endif