From dfc202e8df57dd67662710ebc49301910ea851c6 Mon Sep 17 00:00:00 2001 From: w30048789 Date: Sat, 6 Sep 2025 16:24:38 +0800 Subject: [PATCH] record system stream force switch tag Signed-off-by: w30048789 --- .../include/distributedcameramgr/dcamera_source_dev.h | 2 ++ .../src/distributedcameramgr/dcamera_source_dev.cpp | 5 +++++ .../dcamerahdf/dcamera_provider_callback_impl.cpp | 1 + 3 files changed, 8 insertions(+) diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h index 4d637668..d9581285 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h @@ -71,6 +71,7 @@ public: int32_t GetFullCaps(); void SetTokenId(uint64_t token); int32_t UpdateDCameraWorkMode(const WorkModeParam& param); + bool GetForceSwitchFlag(); class DCameraSourceDevEventHandler : public AppExecFwk::EventHandler { public: @@ -123,6 +124,7 @@ private: sptr hdiCallback_; int32_t sceneMode_ = 0; uint64_t tokenId_ = 0; + bool isForceSwitch_ = false; std::map memberFuncMap_; std::map eventResultMap_; diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp index b0fd4bc6..3f6404c3 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp @@ -532,6 +532,7 @@ int32_t DCameraSourceDev::CloseCamera() } CHECK_AND_RETURN_RET_LOG(stateListener_ == nullptr, DCAMERA_BAD_VALUE, "stateListener_ is nullptr."); stateListener_->OnHardwareStateChanged(devId_, dhId_, DcameraBusinessState::IDLE); + isForceSwitch_ = false; return DCAMERA_OK; } @@ -541,6 +542,7 @@ int32_t DCameraSourceDev::ConfigStreams(std::vectormode_; + isForceSwitch_ = info->isForceSwitch_; break; } int32_t ret = input_->ConfigStreams(streamInfos); @@ -891,6 +893,9 @@ int32_t DCameraSourceDev::UpdateDCameraWorkMode(const WorkModeParam& param) int32_t ret = input_->UpdateWorkMode(param); DHLOGI("update dcamera workmode by input_ done, ret %{public}d", ret); return ret; +bool DCameraSourceDev::GetForceSwitchFlag() +{ + return isForceSwitch_; } } // namespace DistributedHardware } // namespace OHOS diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp index 4162fad7..21f06cf1 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.cpp @@ -128,6 +128,7 @@ int32_t DCameraProviderCallbackImpl::ConfigureStreams(const DHBase& dhBase, stream->encodeType_ = iter->encodeType_; stream->type_ = iter->type_; stream->mode_ = iter->mode_; + stream->isForceSwitch_ = iter->isForceSwitch_; streams.push_back(stream); } int32_t ret = sourceDev->ConfigCameraStreams(streams); -- Gitee