diff --git a/common/include/constants/distributed_camera_constants.h b/common/include/constants/distributed_camera_constants.h index 26a748d99cec874868006159d8d8197ef20db224..e105f0e7a7487de840bdbc3b5fbabf7c57cf8b1b 100644 --- a/common/include/constants/distributed_camera_constants.h +++ b/common/include/constants/distributed_camera_constants.h @@ -44,6 +44,7 @@ typedef enum { DCAMERA_MESSAGE = 0, DCAMERA_OPERATION = 1, DCAMERA_SINK_STOP = 2, + DCAMERE_GETFULLCAP = 3, } DCameraEventType; typedef enum { diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h index 0f9a1d2120800555de5eb8dd7dc8a3ed0f99eb8f..5635378583587910f6f743fa18f33002626f5402 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamera_source_dev.h @@ -52,6 +52,7 @@ public: int32_t StartCameraCapture(const std::vector>& captureInfos); int32_t StopCameraCapture(const std::vector& streamIds); int32_t UpdateCameraSettings(const std::vector>& settings); + int32_t ProcessHDFEvent(const DCameraHDFEvent& event); int32_t GetStateInfo(); std::string GetVersion(); diff --git a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.h b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.h index 6cdc653583b740c2c8171a568ba82c11b93c5190..9d5d3aa4c9cd9650542a2f378764f984c41c8402 100644 --- a/services/cameraservice/sourceservice/include/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.h +++ b/services/cameraservice/sourceservice/include/distributedcameramgr/dcamerahdf/dcamera_provider_callback_impl.h @@ -34,6 +34,7 @@ public: int32_t StartCapture(const DHBase& dhBase, const std::vector& captureInfos) override; int32_t StopCapture(const DHBase& dhBase, const std::vector& streamIds) override; int32_t UpdateSettings(const DHBase& dhBase, const std::vector& settings) override; + int32_t NotifyEvent(const DHBase& dhBase, const DCameraHDFEvent& event) override; private: bool CheckDHBase(const DHBase& dhBase); diff --git a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp index 89525c1636312e9b63bda143ea944d2821a8c431..5bd3d6cee4950fd9ed03a08b41019a89ea1c910b 100644 --- a/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp +++ b/services/cameraservice/sourceservice/src/distributedcameramgr/dcamera_source_dev.cpp @@ -254,6 +254,17 @@ int32_t DCameraSourceDev::UpdateCameraSettings(const std::vectortype_ == DCameraEventType::DCAMERE_GETFULLCAP) { + + } +} + void DCameraSourceDev::DoHicollieProcess() { SetHicollieFlag(true); 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 045471f1bd3aeb0f5ac083c36bb41e19b179669b..71b7f62109047db45f99d429acbb1c5f72f0f515 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 @@ -298,5 +298,26 @@ int32_t DCameraProviderCallbackImpl::UpdateSettings(const DHBase& dhBase, const } return SUCCESS; } + +int32_t DCameraProviderCallbackImpl::NotifyEvent(const DHBase& dhBase, const DCameraHDFEvent& event) +{ + if (!CheckDHBase(dhBase) || event == nullptr) { + DHLOGE("input is invalid"); + return FAILED; + } + std::shared_ptr sourceDev = sourceDev_.lock(); + if (sourceDev == nullptr) { + DHLOGE("Process Event failed, can not get device, devId: %{public}s, dhId: %{public}s", + GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); + return FAILED; + } + int32_t ret = sourceDev->ProcessHDFEvent(event); + if (ret != DCAMERA_OK) { + DHLOGE("Process Event failed, ret: %{public}d, devId: %{public}s, dhId: %{public}s", ret, + GetAnonyString(devId_).c_str(), GetAnonyString(dhId_).c_str()); + return FAILED; + } + return SUCCESS; +} } // namespace DistributedHardware } // namespace OHOS