mod_livenessdetection.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #ifndef MOD_LIVENESSDETECTION_H
  2. #define MOD_LIVENESSDETECTION_H
  3. #pragma once
  4. #define CLOSE_CAPTURE
  5. #ifdef RVC_OS_WIN
  6. #include "stdafx.h"
  7. #endif // RVC_OS_WIN
  8. #include "SpBase.h"
  9. #include "SpIni.h"
  10. #include "rec_common.h"
  11. #include "Event.h"
  12. #include "sysvar.h"
  13. #ifdef RVC_OS_WIN
  14. #include "LivenessDetectionFSM.h"
  15. #endif // RVC_OS_WIN
  16. #ifndef CLOSE_CAPTURE
  17. #include "RvcFaceCapturer.h"
  18. #endif // !CLOSE_CAPTURE
  19. #include "LivenessDetection_def_g.h"
  20. #include "LivenessDetection_msg_g.h"
  21. #include "LivenessDetection_server_g.h"
  22. #include <assert.h>
  23. #include "EventCode.h"
  24. using namespace LivenessDetection;
  25. class CLivenessDetectionEntity;
  26. class LivenessDetectionServerSession : public LivenessDetectionService_ServerSessionBase
  27. {
  28. public:
  29. LivenessDetectionServerSession(CLivenessDetectionEntity* pEntity) : m_pEntity(pEntity) {}
  30. virtual ~LivenessDetectionServerSession() {}
  31. virtual void Handle_StartLivenessDetection(SpReqAnsContext<LivenessDetectionService_StartLivenessDetection_Req, LivenessDetectionService_StartLivenessDetection_Ans>::Pointer ctx);
  32. virtual void Handle_StopLivenessDetection(SpReqAnsContext<LivenessDetectionService_StopLivenessDetection_Req, LivenessDetectionService_StopLivenessDetection_Ans>::Pointer ctx);
  33. private:
  34. CLivenessDetectionEntity* m_pEntity;
  35. };
  36. class CLivenessDetectionEntity : public CEntityBase, /*public CDemoHostApi, */public ILogListener, public ISysVarListener
  37. {
  38. public:
  39. CLivenessDetectionEntity();
  40. virtual ~CLivenessDetectionEntity();
  41. virtual const char *GetEntityName() const;
  42. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
  43. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext);
  44. // CAviHostAPI
  45. virtual void Debug(const char *fmt, ...);
  46. virtual int GetActiveCamera();
  47. ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError);
  48. ErrorCodeEnum __OnClose(ErrorCodeEnum preOperationError);
  49. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  50. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  51. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage);
  52. virtual bool IsService() const { return true; }
  53. virtual bool IsMultiThread() const { return false; }
  54. // 实体服务化
  55. virtual CServerSessionBase* OnNewSession(const char*, const char*)
  56. {
  57. return new LivenessDetectionServerSession(this);
  58. }
  59. void StartLivenessDetection(SpReqAnsContext<LivenessDetectionService_StartLivenessDetection_Req, LivenessDetectionService_StartLivenessDetection_Ans>::Pointer ctx);
  60. void StopLivenessDetection(SpReqAnsContext<LivenessDetectionService_StopLivenessDetection_Req, LivenessDetectionService_StopLivenessDetection_Ans>::Pointer ctx);
  61. DeviceTypeEnum GetDeviceType() const { return m_eDeviceType; }
  62. private:
  63. virtual void OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  64. virtual void OnSelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext);
  65. ErrorCodeEnum DecideCameraCount(int &nCount);
  66. DeviceTypeEnum m_eDeviceType;
  67. int nActiveCamera;
  68. int m_iCameraState;
  69. CAutoArray<CUUID> m_arrListener;
  70. BOOL m_bStarted;
  71. //Clibvtmdemo *m_pDemo;
  72. int m_nCaptureType;
  73. private:
  74. #ifdef RVC_OS_WIN
  75. CLivenessDetectionFSM *m_pFsm;
  76. #endif
  77. #ifndef CLOSE_CAPTURE
  78. RvcFaceCapture::RvcFaceCapturer *m_pCapturer;
  79. #endif // !CLOSE_CAPTURE
  80. };
  81. #endif