Browse Source

Z991239-5916 #comment 优化打开摄像头功能

80274480 9 months ago
parent
commit
7c22f68fed

+ 1 - 0
Module/mod_interactivecontrol/mod_interactivecontrol.cpp

@@ -1983,6 +1983,7 @@ ErrorCodeEnum CITCtrlEntity::StartCameraCaptrue()
 
 	MediaService_TurnOnCamera_Req req;
 	MediaService_TurnOnCamera_Ans ans;
+	req.bPostCapInfo = true;
 	ErrorCodeEnum rc = (*m_pMediaCtlClient)(EntityResource::getLink().upgradeLink())->TurnOnCamera(req, ans, 10000);
 	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)(CSimpleStringA::Format("turn on camera result is 0x%08x.", rc).GetData());
 

+ 0 - 1
Module/mod_mediacontroller/CMakeLists.txt

@@ -9,7 +9,6 @@ endif(RVC_DEBUG_MODE)
 set(${MODULE_PREFIX}_SRCS
 	capture.h
 	Event.h
-	ExternalCameraMsg.h
 	MediaController_client_g.h
 	MediaController_def_g.h
 	MediaController_msg_g.h

+ 2 - 6
Module/mod_mediacontroller/MediaController_def_g.h

@@ -207,21 +207,20 @@ struct MediaService_SetEnvCamRawBrightness_Ans
 
 struct MediaService_TurnOnCamera_Req
 {
+	bool bPostCapInfo;
 
 	void Serialize(SpBuffer &Buf)
 	{
+		auto & buf = Buf & bPostCapInfo;
 	}
 
 };
 
 struct MediaService_TurnOnCamera_Ans
 {
-	unsigned int ErrorCode;
-	CSimpleStringW ErrorMsg;
 
 	void Serialize(SpBuffer &Buf)
 	{
-		auto & buf = Buf & ErrorCode & ErrorMsg;
 	}
 
 };
@@ -237,12 +236,9 @@ struct MediaService_TurnOffCamera_Req
 
 struct MediaService_TurnOffCamera_Ans
 {
-	unsigned int ErrorCode;
-	CSimpleStringW ErrorMsg;
 
 	void Serialize(SpBuffer &Buf)
 	{
-		auto & buf = Buf & ErrorCode & ErrorMsg;
 	}
 
 };

+ 1 - 8
Module/mod_mediacontroller/MediaService.xml

@@ -69,19 +69,12 @@
     </twoway>
     <twoway name="TurnOnCamera" overlap="true">
       <req>
+        <param name="bPostCapInfo" type="bool"/>
       </req>
-      <res>
-        <param name="ErrorCode" type="uint"/>
-        <param name="ErrorMsg" type="wstring"/>
-      </res>
     </twoway>
     <twoway name="TurnOffCamera" overlap="true">
       <req>
       </req>
-      <res>
-        <param name="ErrorCode" type="uint"/>
-        <param name="ErrorMsg" type="wstring"/>
-      </res>
     </twoway>
     <twoway name="IsCameraOnStatus" overlap="true">
       <req>

+ 20 - 2
Module/mod_mediacontroller/mod_mediacontroller.cpp

@@ -136,6 +136,7 @@ CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_
 #ifdef RVC_OS_WIN
 #else
 	m_PhotoSaveDir = "";
+	m_bPostCapInfo = false;
 #endif
 #endif
 }
@@ -2185,6 +2186,17 @@ void CMediaControllerEntity::HandleStopCameraCapture()
 		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Stop Save EnvCam Photo failed.");
 	}
 }
+
+void CMediaControllerEntity::SetPostCapInfoFlag(bool bpostcapinfo)
+{
+	m_bPostCapInfo = bpostcapinfo;
+}
+
+bool CMediaControllerEntity::GetPostCapInfoFlag()
+{
+	return m_bPostCapInfo;
+}
+
 #endif
 #endif
 
@@ -2416,7 +2428,10 @@ void MediaServiceSession::Handle_TurnOnCamera(SpReqAnsContext<MediaService_TurnO
 #else
 #ifdef RVC_OS_WIN
 #else
-	m_pEntity->GetFunction()->SetTimer(RVC_CAMERA_CAP_PROCESS, m_pEntity, 5 * 1000);
+	if (ctx->Req.bPostCapInfo) {
+		m_pEntity->GetFunction()->SetTimer(RVC_CAMERA_CAP_PROCESS, m_pEntity, 5 * 1000);
+		m_pEntity->SetPostCapInfoFlag(true);
+	}
 #endif
 #endif
 
@@ -2430,7 +2445,10 @@ void MediaServiceSession::Handle_TurnOffCamera(SpReqAnsContext<MediaService_Turn
 #else
 #ifdef RVC_OS_WIN
 #else
-	m_pEntity->GetFunction()->KillTimer(RVC_CAMERA_CAP_PROCESS);
+	if (m_pEntity->GetPostCapInfoFlag()) {
+		m_pEntity->GetFunction()->KillTimer(RVC_CAMERA_CAP_PROCESS);
+		m_pEntity->SetPostCapInfoFlag(false);
+	}
 #endif
 #endif
 	ErrorCodeEnum CamRet = m_pEntity->StopAllCameras();

+ 3 - 0
Module/mod_mediacontroller/mod_mediacontroller.h

@@ -133,6 +133,8 @@ public:
 	ErrorCodeEnum StopSaveEnvCamPhoto();
 	void HandleStartCameraCapture(const char* pszMessage);
 	void HandleStopCameraCapture();
+	void SetPostCapInfoFlag(bool bpostcapinfo);
+	bool GetPostCapInfoFlag();
 #endif
 #endif
 
@@ -179,6 +181,7 @@ private:
 #ifdef RVC_OS_WIN
 #else
 	CSimpleStringA m_PhotoSaveDir;
+	bool m_bPostCapInfo;
 #endif
 #endif
 };