#ifndef __MOD_FACETRACKING_H #define __MOD_FACETRACKING_H #pragma once #include "SpBase.h" #include "SpIni.h" #include "libvideoqueue.h" #include "libfacecapture.h" #include "../mod_mediacontroller/MediaController_client_g.h" using namespace MediaController; class CFaceTrackingEntity : public CEntityBase, public CHostApi, public CVideoMonitorEvent, public ISysVarListener, public ITimerListener, public ILogListener { public: CFaceTrackingEntity(); virtual ~CFaceTrackingEntity() {} virtual const char* GetEntityName() const { return "FaceTracking"; } virtual void OnPreStart(CAutoArray strArgs, CSmartPointer pTransactionContext); virtual void OnStarted(); virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer pTransactionContext); int TransCameraStateToInt(char cData); 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); ////////////////////////////////////////////////////////////////////////////////////////////////////// // ITimerListener implementation virtual void OnTimeout(DWORD dwTimerID); ////////////////////////////////////////////////////////////////////////////////////////////////////// // CHostApi implementation virtual uint64_t GenerateUUID(); virtual bool IsCustomerChange(); virtual void GetFaceImgName(char* FaceName, uint32_t uLen); virtual bool LoadConfig(CFaceCaptureConfig& config); virtual void Debug(facecap_loglevel elevel, const char* fmt, ...); //////////////////////////////////////////////////////////////////////////////////// // CVideoMonitorEvent void GenerateMonitorEvent(video_monitor_event_type eType, char* strMsg); private: virtual void OnSysVarEvent(const char* pszKey, const char* pszValue, const char* pszOldValue, const char* pszEntityName); bool GetCameraOnStatus(); void StartFaceDetect(); private: CUUID m_UUid1, m_UUid2, m_UUid3, m_UUid4; bool bIsSessionChange; bool bIsCustomerChange; CSimpleStringA strCustomerID; CSimpleStringA strSessionID; CUUID m_lastUUID; Clibfacecapture* m_facecapture; bool m_bSingleCamera; }; class MediaControlClient : public MediaService_ClientBase { public: MediaControlClient(CFaceTrackingEntity* pEntity); }; #endif __MOD_FACETRACKING_H