mod_interactivecontrol.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. #pragma once
  2. #include "SpBase.h"
  3. #include "SpIni.h"
  4. #include "../include/EventCode.h"
  5. #include "InteractiveControl_msg_g.h"
  6. #include "InteractiveControl_server_g.h"
  7. using namespace InteractiveControl;
  8. #include "../mod_assistantchannel/AssistantChannel_client_g.h"
  9. #include "../mod_assistantchannel/chan_protocol.h"
  10. using namespace AssistantChannel;
  11. #include "../mod_localmediaplay/LocalMediaPlay_msg_g.h"
  12. #include "../mod_localmediaplay/LocalMediaPlay_client_g.h"
  13. using namespace LocalMediaPlay;
  14. #include "../mod_SalesRecorder/SalesRecorder_client_g.h"
  15. #include "../mod_SalesRecorder/SalesRecorder_def_g.h"
  16. using namespace SalesRecorder;
  17. #define ISSUCCEEDED(hr) ((hr) == Error_Succeed)
  18. #define FAILURED(hr) (!(ISSUCCEEDED(hr)))
  19. enum eRecordDeviceState{
  20. eNormal,
  21. eMicStarting,
  22. eEnvCamStarting,
  23. eOptCamStarting,
  24. eEwsCamStarting,
  25. eMicBreakDown,
  26. eEnvCamError,
  27. eOptCamError,
  28. eEwsCamError,
  29. eAllError
  30. };
  31. class CITCtrlEntity;
  32. class ChannelClient : public ChannelService_ClientBase
  33. {
  34. public:
  35. ChannelClient(CITCtrlEntity *pEntity);
  36. virtual void OnMessage(ErrorCodeEnum Error, ChannelService_Packet_Info &Msg, CSmartPointer<IReleasable> pData);
  37. virtual void OnMessage(ErrorCodeEnum Error, ChannelService_State_Info &Msg, CSmartPointer<IReleasable> pData);
  38. };
  39. class LocalPlayClient : public PlayService_ClientBase
  40. {
  41. public:
  42. LocalPlayClient(CITCtrlEntity *pEntity);
  43. };
  44. class SalesRecordClient : public SalesRecorderSerVice_ClientBase
  45. {
  46. public:
  47. SalesRecordClient(CITCtrlEntity* pEntity);
  48. };
  49. class CITCtrlEntity : public CEntityBase, public ISysVarListener, public ILogListener, public IBroadcastListener, public ITimerListener
  50. {
  51. public:
  52. CITCtrlEntity() : m_pChannelClient(NULL), m_pPlayClient(NULL), m_pSalesRecordClient(NULL), m_bConnected(FALSE), m_bSalesRecording(FALSE),
  53. m_bSalesRecordPriorityEws(true),m_bSalesRecordUseEws(false),m_bDeskToPadFlag(true), m_bConnectAssist(FALSE)
  54. {
  55. m_bAdvOnFlag = false;
  56. }
  57. virtual ~CITCtrlEntity() {}
  58. virtual const char *GetEntityName() const { return "InteractiveControl"; }
  59. virtual bool IsService()const{return true;}
  60. void OnAudioPlayRet(const char *pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, LocalMediaPlay::AudioPlayRet &evt);
  61. virtual CServerSessionBase *OnNewSession(const char* /*pszRemoteEntityName*/, const char * /*pszParam*/);
  62. virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITransactionContext> pTransactionContext);
  63. virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext);
  64. virtual void OnStarted();
  65. DeviceTypeEnum RvcGetDeviceType();
  66. ErrorCodeEnum __OnStart(ErrorCodeEnum preOperationError);
  67. ErrorCodeEnum __OnClose(ErrorCodeEnum preOperationError);
  68. void AdverPlayManage(const char* pszValue, const char* pszOldValue);
  69. void BcastCustomerState(const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  70. void BcastSessionid(const char *sessionid,const char *pszEntityName);
  71. void OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName);
  72. void SyncMenuTree(int tree, int path);
  73. ErrorCodeEnum SendAgentText(CSimpleStringW strText);
  74. void SetMenuTree(CSimpleStringW strMenuTree);
  75. void SetMenuTreePath(CSimpleStringW strMenuPath);
  76. ErrorCodeEnum SendFrontSyncData(int id, CSimpleStringW strContent);
  77. ErrorCodeEnum SendH5SyncData(CSimpleStringW strContent);
  78. void SetConnected(BOOL bConnected);
  79. void OnReceivePacket(int type,int sub_type, const char *data, int size);
  80. void SendAnswer(int sub_type, ErrorCodeEnum Error);
  81. void SendAnswertoMobile(CSimpleStringW packet);
  82. ErrorCodeEnum StartPlayVideo(int nCfgInx, int nWndX, int nWndY, int nWndWidth, int nWndHeight, DWORD dwTimeout);
  83. ErrorCodeEnum StartPlayAudio(CSimpleStringW AudioNames, DWORD dwTimeout);
  84. ErrorCodeEnum StartPlayImage(int nCfgInx, int nWndX, int nWndY, int nWndWidth, int nWndHeight, DWORD dwTimeout);
  85. ErrorCodeEnum StopPlayVideo(int nCfgInx, DWORD dwTimeout);
  86. ErrorCodeEnum StopPlayAudio(DWORD dwTimeout);
  87. ErrorCodeEnum StopPlayImage(int nCfgInx, DWORD dwTimeout);
  88. ErrorCodeEnum GetLocalVideoVolume(int nCfgInx, int &nVolume, DWORD dwTimeout);
  89. ErrorCodeEnum GetLocalAudioVolume(int& nVolume, DWORD dwTimeout);
  90. ErrorCodeEnum SetLocalVideoVolume(int nCfgInx, int nVolume, DWORD dwTimeout);
  91. ErrorCodeEnum SetLocalAudioVolume(int nVolume, DWORD dwTimeout);
  92. ErrorCodeEnum SendBusinessDesktopCmd(CSimpleStringA xapName, CSimpleStringA command);
  93. ErrorCodeEnum GetHandfreeCallOutVolume(int& nVolume, DWORD dwTimeout);
  94. ErrorCodeEnum SetHandfreeCallOutVolume(int nVolume, DWORD dwTimeout);
  95. ErrorCodeEnum GetPickupCallOutVolume(int& nVolume, DWORD dwTimeout);
  96. ErrorCodeEnum SetPickupCallOutVolume(int nVolume, DWORD dwTimeout);
  97. void OnLog(const CAutoArray<CUUID> &SubIDs, const CUUID nLogID,const LogTypeEnum eLogType, const SeverityLevelEnum eLevel,
  98. const DWORD dwSysError,const DWORD dwUserCode,const DWORD dwEntityInstanceID, const WORD wEntityDevelID,
  99. const CAutoArray<DWORD> &Param, const char *pszEntityName, const char *pszModuleName,const char *pszMessage, const linkContext &pLinkInfo);
  100. ErrorCodeEnum StartEwsCamera(CSimpleStringA &errMsg);
  101. ErrorCodeEnum StopEwsCamera();
  102. // 播放录像
  103. ErrorCodeEnum PlayVideo(CSimpleStringA strVideoName);
  104. // 播放录像
  105. ErrorCodeEnum StartPlaySalesRecordVideo(CSimpleStringA strVideoName, int iWndX, int iWndY, int iWndWidth, int iWndHeight);
  106. ErrorCodeEnum StopShowVideo(CSimpleStringA strVideoName);
  107. ErrorCodeEnum SaveVideo(CSimpleStringA strVideoName);
  108. ErrorCodeEnum StartRemoteRecord(CSimpleStringA strVideoName);
  109. ErrorCodeEnum StopRecord(CSimpleStringA strVideoName);
  110. eRecordDeviceState GetRecordDeviceState();
  111. CSimpleStringA EncryptString(LPCTSTR lpszText);
  112. //隐藏录像文件信息中的卡号信息
  113. CSimpleStringA EncryptVideoNameCarNumber(CSimpleStringA StrVideoName);
  114. ErrorCodeEnum ConnectAssistChannel();
  115. virtual void OnTimeout(DWORD dwTimerID);
  116. ErrorCodeEnum ConnectToLocalPlay(bool blogevt = true);
  117. ErrorCodeEnum ConnectToSalesRecord(bool blogevt = true);
  118. bool IsLocalPlayConnectSessionOK();
  119. bool IsSalesRecordConnectSessionOK();
  120. void FreeLocalPlayClient();
  121. void FreeSalesRecordClient();
  122. LocalPlayClient* GetLocalPlayClient();
  123. SP_BEGIN_MSG_DISPATCH_MAP(CITCtrlEntity)
  124. SP_BEGIN_ENTITY_MSG("LocalMediaPlay")
  125. #ifdef RVC_OS_WIN
  126. SP_MSG_HANDLE_NS(LocalMediaPlay, AudioPlayRet, OnAudioPlayRet)
  127. #else
  128. case eMsg_AudioPlayRet:\
  129. if (eMsgSig_AudioPlayRet == dwMessageSignature) {
  130. \
  131. LocalMediaPlay::AudioPlayRet t; \
  132. ErrorCodeEnum Error = SpBuffer2Object(Buffer, t); \
  133. if (Error == Error_Succeed)\
  134. OnAudioPlayRet(pszEntityName, dwMessageId, dwMessageSignature, t); \
  135. }
  136. else {
  137. \
  138. LOG_TRACE("%s signature mismatched!", "AudioPlayRet"); \
  139. }\
  140. break;
  141. #endif
  142. SP_END_ENTITY_MSG()
  143. SP_END_MSG_DISPATCH_MAP()
  144. private:
  145. CSimpleStringA m_SessionID;
  146. BOOL m_bConnected;
  147. CSimpleStringW m_strMenuTree;
  148. CSimpleStringW m_strMenuPath;
  149. ChannelClient *m_pChannelClient;
  150. LocalPlayClient *m_pPlayClient;
  151. SalesRecordClient* m_pSalesRecordClient;
  152. CAutoArray<CUUID> m_arrListener;
  153. CUUID m_uidLocalMediaListenser;
  154. int m_nSysCallType;//0:普通模式,1:p2p模式
  155. BOOL m_bConnectAssist;
  156. BOOL m_bConnectPlayer;
  157. public:
  158. DeviceTypeEnum m_eDeviceType;
  159. BOOL m_bSalesRecording; // add by ly@2018/10
  160. bool m_bSalesRecordPriorityEws;
  161. bool m_bSalesRecordUseEws;
  162. bool m_bDeskToPadFlag;
  163. bool m_bAdvOnFlag;
  164. };
  165. class UIServiceSession : public UIService_ServerSessionBase
  166. {
  167. public:
  168. UIServiceSession(CITCtrlEntity *pEntity) : m_pEntity(pEntity) {}
  169. virtual void Handle_SetUIState(SpOnewayCallContext<UIService_SetUIState_Info>::Pointer ctx);
  170. virtual void Handle_SendAgentText(SpReqAnsContext<UIService_SendAgentText_Req, UIService_SendAgentText_Ans>::Pointer ctx);
  171. virtual void Handle_SetMenuTree(SpOnewayCallContext<UIService_SetMenuTree_Info>::Pointer ctx);
  172. virtual void Handle_SetMenuPath(SpOnewayCallContext<UIService_SetMenuPath_Info>::Pointer ctx);
  173. virtual void Handle_SendFrontSyncData(SpOnewayCallContext<UIService_SendFrontSyncData_Info>::Pointer ctx);
  174. virtual void Handle_SendH5SyncData(SpOnewayCallContext<UIService_SendH5SyncData_Info>::Pointer ctx);
  175. virtual void Handle_StartRecordVideo(SpReqAnsContext<UIService_StartRecordVideo_Req, UIService_StartRecordVideo_Ans>::Pointer ctx);
  176. virtual void Handle_StopRecordVideo(SpReqAnsContext<UIService_StopRecordVideo_Req, UIService_StopRecordVideo_Ans>::Pointer ctx);
  177. virtual void Handle_ShowVideo(SpReqAnsContext<UIService_ShowVideo_Req, UIService_ShowVideo_Ans>::Pointer ctx);
  178. virtual void Handle_SaveVideo(SpReqAnsContext<UIService_SaveVideo_Req, UIService_SaveVideo_Ans>::Pointer ctx);
  179. virtual void Handle_DeleteVideo(SpReqAnsContext<UIService_DeleteVideo_Req, UIService_DeleteVideo_Ans>::Pointer ctx);
  180. virtual void Handle_StartPhotograph(SpOnewayCallContext<UIService_StartPhotograph_Info>::Pointer ctx);
  181. virtual void Handle_StopPhotograph(SpOnewayCallContext<UIService_StopPhotograph_Info>::Pointer ctx);
  182. virtual void Handle_StartPlayVideo(SpReqAnsContext<UIService_StartPlayVideo_Req, UIService_StartPlayVideo_Ans>::Pointer ctx);
  183. virtual void Handle_StartPlayAudio(SpReqAnsContext<UIService_StartPlayAudio_Req, UIService_StartPlayAudio_Ans>::Pointer ctx);
  184. virtual void Handle_StartPlayImage(SpReqAnsContext<UIService_StartPlayImage_Req, UIService_StartPlayImage_Ans>::Pointer ctx);
  185. virtual void Handle_StopPlayVideo(SpReqAnsContext<UIService_StopPlayVideo_Req, UIService_StopPlayVideo_Ans>::Pointer ctx);
  186. virtual void Handle_StopPlayAudio(SpReqAnsContext<UIService_StopPlayAudio_Req, UIService_StopPlayAudio_Ans>::Pointer ctx);
  187. virtual void Handle_StopPlayImage(SpReqAnsContext<UIService_StopPlayImage_Req, UIService_StopPlayImage_Ans>::Pointer ctx);
  188. virtual void Handle_SendOperateState(SpOnewayCallContext<UIService_SendOperateState_Info>::Pointer ctx);
  189. virtual void Handle_HideOnlineVideo(SpOnewayCallContext<UIService_HideOnlineVideo_Info>::Pointer ctx);
  190. virtual void Handle_ShowOnlineVideo(SpOnewayCallContext<UIService_ShowOnlineVideo_Info>::Pointer ctx);
  191. virtual void Handle_AnswerPacket(SpReqAnsContext<UIService_AnswerPacket_Req, UIService_AnswerPacket_Ans>::Pointer ctx);
  192. virtual void Handle_GetLocalVideoVolume(SpReqAnsContext<UIService_GetLocalVideoVolume_Req, UIService_GetLocalVideoVolume_Ans>::Pointer ctx);
  193. virtual void Handle_SetLocalVideoVolume(SpReqAnsContext<UIService_SetLocalVideoVolume_Req, UIService_SetLocalVideoVolume_Ans>::Pointer ctx);
  194. virtual void Handle_GetLocalAudioVolume(SpReqAnsContext<UIService_GetLocalAudioVolume_Req, UIService_GetLocalAudioVolume_Ans>::Pointer ctx);
  195. virtual void Handle_SetLocalAudioVolume(SpReqAnsContext<UIService_SetLocalAudioVolume_Req, UIService_SetLocalAudioVolume_Ans>::Pointer ctx);
  196. virtual void Handle_SendBusinessDesktopCmd(SpReqAnsContext<UIService_SendBusinessDesktopCmd_Req, UIService_SendBusinessDesktopCmd_Ans>::Pointer ctx);
  197. virtual void Handle_HideLocalVideo(SpOnewayCallContext<UIService_HideLocalVideo_Info>::Pointer ctx);
  198. virtual void Handle_ShowLocalVideo(SpOnewayCallContext<UIService_ShowLocalVideo_Info>::Pointer ctx);
  199. virtual void Handle_HidePersonArea(SpOnewayCallContext<UIService_HidePersonArea_Info>::Pointer ctx);
  200. virtual void Handle_ShowPersonArea(SpOnewayCallContext<UIService_ShowPersonArea_Info>::Pointer ctx);
  201. virtual void Handle_VideoAppendWaterMark(SpReqAnsContext<UIService_VideoAppendWaterMark_Req, UIService_VideoAppendWaterMark_Ans>::Pointer ctx);
  202. virtual void Handle_StartRemoteRecord(SpReqAnsContext<UIService_StartRemoteRecord_Req, UIService_StartRemoteRecord_Ans>::Pointer ctx);
  203. virtual void Handle_StopRemoteRecord(SpReqAnsContext<UIService_StopRemoteRecord_Req, UIService_StopRemoteRecord_Ans>::Pointer ctx);
  204. virtual void Handle_StartSalesRecord(SpReqAnsContext<UIService_StartSalesRecord_Req, UIService_StartSalesRecord_Ans>::Pointer ctx);
  205. virtual void Handle_StartRecordPreview(SpReqAnsContext<UIService_StartRecordPreview_Req, UIService_StartRecordPreview_Ans>::Pointer ctx);
  206. virtual void Handle_AjustVideoPreviewSize(SpReqAnsContext<UIService_AjustVideoPreviewSize_Req, UIService_AjustVideoPreviewSize_Ans>::Pointer ctx);
  207. virtual void Handle_StartSalesVideoRecord(SpReqAnsContext<UIService_StartSalesVideoRecord_Req, UIService_StartSalesVideoRecord_Ans>::Pointer ctx);
  208. virtual void Handle_StopShowVideo(SpReqAnsContext<UIService_StopShowVideo_Req, UIService_StopShowVideo_Ans>::Pointer ctx);
  209. virtual void Handle_StartPlaySalesRecord(SpReqAnsContext<UIService_StartPlaySalesRecord_Req, UIService_StartPlaySalesRecord_Ans>::Pointer ctx);
  210. virtual void Handle_GetHandfreeOutVolume(SpReqAnsContext<UIService_GetHandfreeOutVolume_Req, UIService_GetHandfreeOutVolume_Ans>::Pointer ctx);
  211. virtual void Handle_SetHandfreeOutVolume(SpReqAnsContext<UIService_SetHandfreeOutVolume_Req, UIService_SetHandfreeOutVolume_Ans>::Pointer ctx);
  212. virtual void Handle_GetPickupOutVolume(SpReqAnsContext<UIService_GetPickupOutVolume_Req, UIService_GetPickupOutVolume_Ans>::Pointer ctx);
  213. virtual void Handle_SetPickupOutVolume(SpReqAnsContext<UIService_SetPickupOutVolume_Req, UIService_SetPickupOutVolume_Ans>::Pointer ctx);
  214. virtual void Handle_StartPlayNotice(SpReqAnsContext<UIService_StartPlayNotice_Req, UIService_StartPlayNotice_Ans>::Pointer ctx);
  215. virtual void Handle_StopPlayNotice(SpReqAnsContext<UIService_StopPlayNotice_Req, UIService_StopPlayNotice_Ans>::Pointer ctx);
  216. private:
  217. CITCtrlEntity *m_pEntity;
  218. };