mod_livenessdetection.h 3.2 KB

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