1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "dcamera_source_event.h" 17 18 #include "distributed_camera_errno.h" 19 #include "distributed_hardware_log.h" 20 21 namespace OHOS { 22 namespace DistributedHardware { GetDCameraIndex(DCameraIndex & index)23int32_t DCameraSourceEvent::GetDCameraIndex(DCameraIndex& index) 24 { 25 auto indexPtr = std::get_if<DCameraIndex>(&eventParam_); 26 if (indexPtr == nullptr) { 27 DHLOGE("DCameraSourceEvent can not get_if DCameraIndex"); 28 return DCAMERA_NOT_FOUND; 29 } 30 31 index = *indexPtr; 32 return DCAMERA_OK; 33 } 34 GetDCameraRegistParam(std::shared_ptr<DCameraRegistParam> & param)35int32_t DCameraSourceEvent::GetDCameraRegistParam(std::shared_ptr<DCameraRegistParam>& param) 36 { 37 auto paramPtr = std::get_if<std::shared_ptr<DCameraRegistParam>>(&eventParam_); 38 if (paramPtr == nullptr) { 39 DHLOGE("DCameraSourceEvent can not get_if DCameraRegistParam"); 40 return DCAMERA_NOT_FOUND; 41 } 42 param = *paramPtr; 43 return DCAMERA_OK; 44 } 45 GetStreamInfos(std::vector<std::shared_ptr<DCStreamInfo>> & streamInfos)46int32_t DCameraSourceEvent::GetStreamInfos(std::vector<std::shared_ptr<DCStreamInfo>>& streamInfos) 47 { 48 auto streamInfosPtr = std::get_if<std::vector<std::shared_ptr<DCStreamInfo>>>(&eventParam_); 49 if (streamInfosPtr == nullptr) { 50 DHLOGE("DCameraSourceEvent can not get_if DCStreamInfo"); 51 return DCAMERA_NOT_FOUND; 52 } 53 streamInfos = std::move(*streamInfosPtr); 54 return DCAMERA_OK; 55 } 56 GetCaptureInfos(std::vector<std::shared_ptr<DCCaptureInfo>> & captureInfos)57int32_t DCameraSourceEvent::GetCaptureInfos(std::vector<std::shared_ptr<DCCaptureInfo>>& captureInfos) 58 { 59 auto captureInfosPtr = std::get_if<std::vector<std::shared_ptr<DCCaptureInfo>>>(&eventParam_); 60 if (captureInfosPtr == nullptr) { 61 DHLOGE("DCameraSourceEvent can not get_if DCCaptureInfo"); 62 return DCAMERA_NOT_FOUND; 63 } 64 captureInfos = std::move(*captureInfosPtr); 65 return DCAMERA_OK; 66 } 67 GetCameraSettings(std::vector<std::shared_ptr<DCameraSettings>> & settings)68int32_t DCameraSourceEvent::GetCameraSettings(std::vector<std::shared_ptr<DCameraSettings>>& settings) 69 { 70 auto settingsPtr = std::get_if<std::vector<std::shared_ptr<DCameraSettings>>>(&eventParam_); 71 if (settingsPtr == nullptr) { 72 DHLOGE("DCameraSourceEvent can not get_if DCameraSettings"); 73 return DCAMERA_NOT_FOUND; 74 } 75 settings = std::move(*settingsPtr); 76 return DCAMERA_OK; 77 } 78 GetStreamIds(std::vector<int> & streamIds)79int32_t DCameraSourceEvent::GetStreamIds(std::vector<int>& streamIds) 80 { 81 auto streamIdsPtr = std::get_if<std::vector<int>>(&eventParam_); 82 if (streamIdsPtr == nullptr) { 83 DHLOGE("DCameraSourceEvent can not get_if streamIds"); 84 return DCAMERA_NOT_FOUND; 85 } 86 streamIds = std::move(*streamIdsPtr); 87 return DCAMERA_OK; 88 } 89 GetCameraEvent(std::shared_ptr<DCameraEvent> & camEvent)90int32_t DCameraSourceEvent::GetCameraEvent(std::shared_ptr<DCameraEvent>& camEvent) 91 { 92 auto camEventPtr = std::get_if<std::shared_ptr<DCameraEvent>>(&eventParam_); 93 if (camEventPtr == nullptr) { 94 DHLOGE("DCameraSourceEvent can not get_if camEventPtr"); 95 return DCAMERA_NOT_FOUND; 96 } 97 camEvent = *camEventPtr; 98 return DCAMERA_OK; 99 } 100 GetEventType()101DCAMERA_EVENT DCameraSourceEvent::GetEventType() 102 { 103 return eventType_; 104 } 105 } // namespace DistributedHardware 106 } // namespace OHOS 107