|
@@ -184,6 +184,7 @@ CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_
|
|
|
m_bOnBusiness = false;
|
|
|
m_bJsOccupyCamera = false;
|
|
|
m_bCameraOffTimerOn = false;
|
|
|
+ m_bVirtualCamOpened = false;
|
|
|
m_eDeviceType = eStand2sType;
|
|
|
m_nCameraErrorCode = Error_Succeed;
|
|
|
memset(&conf, 0, sizeof(capture_config_t));
|
|
@@ -285,11 +286,13 @@ bool CMediaControllerEntity::HandleVirtucalCamMsg(const char* strMsg)
|
|
|
|
|
|
if (strstr(strMsg, "Start")) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Start virtual Camera %s.", strMsg);
|
|
|
+ m_bVirtualCamOpened = true;
|
|
|
StartAllCameras();
|
|
|
bRet = true;
|
|
|
}
|
|
|
else if (strstr(strMsg, "Stop")) {
|
|
|
DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Stop virtual Camera %s.", strMsg);
|
|
|
+ m_bVirtualCamOpened = false;
|
|
|
CSimpleStringA strState;
|
|
|
GetFunction()->GetSysVar("UIState", strState);
|
|
|
if (strState.GetLength() > 0 && strState[0] == 'M') {
|
|
@@ -1114,7 +1117,7 @@ ErrorCodeEnum CMediaControllerEntity::GetMediaConfig()
|
|
|
m_iDelayTime = iDelayTime;
|
|
|
}
|
|
|
|
|
|
- if (intervaltime <= RVC_CAM_INTERVAL_TIME && intervaltime >= RVC_CAM_INTERVAL_TIME / 3) {
|
|
|
+ if (intervaltime <= 10*RVC_CAM_INTERVAL_TIME && intervaltime >= RVC_CAM_INTERVAL_TIME / 3) {
|
|
|
m_interValTime = intervaltime;
|
|
|
}
|
|
|
|
|
@@ -1208,7 +1211,7 @@ void CMediaControllerEntity::OnTimeout(DWORD dwTimerID)
|
|
|
if (eCameraOpened == m_eCameraState) {
|
|
|
CSimpleStringA strCallState("");
|
|
|
if (Error_Succeed == GetFunction()->GetSysVar(SYSVAR_CALLSTATE, strCallState)) {
|
|
|
- if (strCallState.Compare("O") == 0) {
|
|
|
+ if ((strCallState.Compare("O") == 0) && (false == m_bVirtualCamOpened)) {
|
|
|
if (m_capture) {
|
|
|
GetFunction()->KillTimer(RVC_MEDIADEV_STATUS_CHECK_TIMER);
|
|
|
capture_stop(m_capture);
|
|
@@ -1227,6 +1230,9 @@ void CMediaControllerEntity::OnTimeout(DWORD dwTimerID)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CallState is %s, and current virtual camera is %s.", strCallState.GetData(), m_bVirtualCamOpened?"on":"off");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1750,6 +1756,14 @@ void CMediaControllerEntity::DelayCloseCameras()
|
|
|
m_bCameraOffTimerOn = true;
|
|
|
}
|
|
|
}
|
|
|
+ else {
|
|
|
+ if (Error_Succeed == GetFunction()->ResetTimer(RVC_CAMERA_OFF_TIMER, m_iDelayTime * 1000)) {
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("Retset camera off timer success!");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Retset camera off timer failed!");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|