|
@@ -81,6 +81,12 @@ static void __audiomgrlog(void* user_data, const char* fmt, va_list arg)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+static void __capevent(void* user_data, int ierrdevid)
|
|
|
+{
|
|
|
+ CMediaControllerEntity* pEntity = (CMediaControllerEntity*)user_data;
|
|
|
+ pEntity->UpdateCameraState(ierrdevid);
|
|
|
+}
|
|
|
+
|
|
|
static int GetFormatString(char* strVala, size_t uValaLen, char* strValb, size_t uValbLen, const char* pSrc, size_t uSrcLen, char cWord)
|
|
|
{
|
|
|
int iRet = -1;
|
|
@@ -206,7 +212,7 @@ void CMediaControllerEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmar
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
|
- m_arrListener.Init(16);
|
|
|
+ m_arrListener.Init(15);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, MOD_EVENT_SNAPSHOT_START_CAPTURE_ENV);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, MOD_EVENT_SNAPSHOT_START_CAPTURE_OPT);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, MOD_EVENT_SNAPSHOT_START_CAPTURE_ENVOPT);
|
|
@@ -222,7 +228,6 @@ void CMediaControllerEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmar
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_Middle, Error_IgnoreAll, EVENT_MOD_CONNECT_BEGAIN_RECORD_CALL, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STARTCAMERACAPTURE, NULL, false);
|
|
|
GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_UI_STOPCAMERACAPTURE, NULL, false);
|
|
|
- GetFunction()->SubscribeLog(m_arrListener[i++], this, Log_Event, Severity_None, Error_IgnoreAll, LOG_EVT_MEDIACONTROLLER_NOMATCHED_RESOLUTION, NULL, false);
|
|
|
|
|
|
pTransactionContext->SendAnswer(Error_Succeed);
|
|
|
}
|
|
@@ -1650,43 +1655,6 @@ void CMediaControllerEntity::OnLog( const CAutoArray<CUUID> &SubIDs, const CUUID
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
- case LOG_EVT_MEDIACONTROLLER_NOMATCHED_RESOLUTION:
|
|
|
- {
|
|
|
- if (pszMessage) {
|
|
|
- char cdevid = pszMessage[0];
|
|
|
- int idevid = cdevid - '0';
|
|
|
- if (idevid == capture_get_video_device_id(conf.strVideoEnv)) {
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2810")("上摄像分辨率不符合要求");
|
|
|
- if (eStand1SPlusType == m_eDeviceType) {
|
|
|
- m_nCameraErrorCode = Error_AllCamera;
|
|
|
- }
|
|
|
- else {
|
|
|
- if (m_nCameraErrorCode == Error_Succeed) {
|
|
|
- m_nCameraErrorCode = Error_EnvCamera;
|
|
|
- }
|
|
|
- else if (m_nCameraErrorCode == Error_OptCamera) {
|
|
|
- m_nCameraErrorCode = Error_AllCamera;
|
|
|
- }
|
|
|
- }
|
|
|
- ChangeSysvar(m_nCameraErrorCode);
|
|
|
- }
|
|
|
- else if(idevid == capture_get_video_device_id(conf.strVideoOpt)){
|
|
|
- DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2810")("下摄像分辨率不符合要求");
|
|
|
- if (m_nCameraErrorCode == Error_Succeed){
|
|
|
- m_nCameraErrorCode = Error_OptCamera;
|
|
|
- }
|
|
|
- else if (m_nCameraErrorCode == Error_EnvCamera){
|
|
|
- m_nCameraErrorCode = Error_AllCamera;
|
|
|
- }
|
|
|
- ChangeSysvar(m_nCameraErrorCode);
|
|
|
- }
|
|
|
- else {
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("no mathed device id.");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
default:
|
|
|
DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("unknown event.");
|
|
|
break;
|
|
@@ -1802,6 +1770,8 @@ ErrorCodeEnum CMediaControllerEntity::StartCamera(bool bstartaudio)
|
|
|
conf.envopt_mutex = &m_envopt_mutex;
|
|
|
#endif
|
|
|
conf.uintervaltime = m_interValTime;
|
|
|
+ conf.capevent = &__capevent;
|
|
|
+ conf.user_data = this;
|
|
|
Error = (ErrorCodeEnum)capture_create(&conf, &m_capture, bstartaudio);
|
|
|
if (Error == Error_Succeed)
|
|
|
{
|
|
@@ -2336,6 +2306,38 @@ bool CMediaControllerEntity::IsOnlineState()
|
|
|
return bret;
|
|
|
}
|
|
|
|
|
|
+void CMediaControllerEntity::UpdateCameraState(int ierrdevid)
|
|
|
+{
|
|
|
+ if (ierrdevid == capture_get_video_device_id(conf.strVideoEnv)) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2810")("上摄像分辨率不符合要求");
|
|
|
+ if (eStand1SPlusType == m_eDeviceType) {
|
|
|
+ m_nCameraErrorCode = Error_AllCamera;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (m_nCameraErrorCode == Error_Succeed) {
|
|
|
+ m_nCameraErrorCode = Error_EnvCamera;
|
|
|
+ }
|
|
|
+ else if (m_nCameraErrorCode == Error_OptCamera) {
|
|
|
+ m_nCameraErrorCode = Error_AllCamera;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ChangeSysvar(m_nCameraErrorCode);
|
|
|
+ }
|
|
|
+ else if (ierrdevid == capture_get_video_device_id(conf.strVideoOpt)) {
|
|
|
+ DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_USER).setLogCode("QLR0402208V3").setResultCode("RTA2810")("下摄像分辨率不符合要求");
|
|
|
+ if (m_nCameraErrorCode == Error_Succeed) {
|
|
|
+ m_nCameraErrorCode = Error_OptCamera;
|
|
|
+ }
|
|
|
+ else if (m_nCameraErrorCode == Error_EnvCamera) {
|
|
|
+ m_nCameraErrorCode = Error_AllCamera;
|
|
|
+ }
|
|
|
+ ChangeSysvar(m_nCameraErrorCode);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("no mathed device id.");
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
ChannelMediaControllerClient::ChannelMediaControllerClient( CMediaControllerEntity *pEntity ) : ChannelService_ClientBase(pEntity)
|
|
|
{
|
|
|
|