mod_livenessdetection.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #ifndef MOD_LIVENESSDETECTION_H
  2. #define MOD_LIVENESSDETECTION_H
  3. #pragma once
  4. #ifdef RVC_OS_WIN
  5. #include "stdafx.h"
  6. #endif // RVC_OS_WIN
  7. #include "SpBase.h"
  8. #include "SpIni.h"
  9. #include "rvc_media_common.h"
  10. #include "Event.h"
  11. #include "mod_customeraware/Event.h"
  12. #include "mod_mediacontroller/Event.h"
  13. #include "mod_facetracking/sysvar.h"
  14. #include "LivenessDetection_def_g.h"
  15. #include "LivenessDetection_msg_g.h"
  16. #include "LivenessDetection_server_g.h"
  17. #include <assert.h>
  18. #include "EventCode.h"
  19. #include "RvcWsServer.h"
  20. #include "RvcFaceVideo.h"
  21. using namespace LivenessDetection;
  22. class CLivenessDetectionEntity;
  23. class LivenessDetectionServerSession : public LivenessDetectionService_ServerSessionBase
  24. {
  25. public:
  26. LivenessDetectionServerSession(CLivenessDetectionEntity* pEntity) : m_pEntity(pEntity) {}
  27. virtual ~LivenessDetectionServerSession() {}
  28. private:
  29. CLivenessDetectionEntity* m_pEntity;
  30. };
  31. class CLivenessDetectionEntity : public CEntityBase, public ILogListener, public ISysVarListener
  32. {
  33. public:
  34. CLivenessDetectionEntity();
  35. virtual ~CLivenessDetectionEntity();
  36. virtual const char *GetEntityName() const;
  37. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
  38. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext);
  39. virtual void OnStarted();
  40. virtual int GetActiveCamera();
  41. ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError);
  42. ErrorCodeEnum __OnClose(ErrorCodeEnum preOperationError);
  43. virtual void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  44. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  45. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext& pLinkInfo);
  46. virtual bool IsService() const { return true; }
  47. virtual bool IsMultiThread() const { return false; }
  48. // 实体服务化
  49. virtual CServerSessionBase* OnNewSession(const char*, const char*)
  50. {
  51. return new LivenessDetectionServerSession(this);
  52. }
  53. DeviceTypeEnum GetDeviceType() const { return m_eDeviceType; }
  54. int on_get_videodata(eVideoType eType, eCameraType ecameraid, int* width, int* height, unsigned char* bmpdata, int isize);
  55. RvcWsServer* GetWsServer() { return m_WsServer; }
  56. int GetWsPort() { return m_iWsPort; }
  57. ErrorCodeEnum GetEntityConfigure();
  58. private:
  59. virtual void OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  60. virtual void OnSelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext);
  61. void InitVideoQueueInfo();
  62. DeviceTypeEnum m_eDeviceType;
  63. int nActiveCamera;
  64. int m_iCameraState;
  65. CAutoArray<CUUID> m_arrListener;
  66. RvcWsServer* m_WsServer;
  67. RvcFaceVideo* m_pFaceVideo;
  68. #ifdef RVC_OS_WIN
  69. HANDLE m_hWsServerThread;
  70. #else
  71. pthread_t m_hWsServerThreadId;
  72. #endif //RVC_OS_WIN
  73. int m_iWsPort;
  74. };
  75. #endif