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 #ifndef HOS_CAMERA_IDEVICED_MANAGER_H 17 #define HOS_CAMERA_IDEVICED_MANAGER_H 18 19 #include "icontroller.h" 20 #include "imanager.h" 21 #include "device_manager_adapter.h" 22 #include "isensor.h" 23 #include <vector> 24 25 namespace OHOS { 26 namespace Camera { 27 class IDeviceManager { 28 public: 29 IDeviceManager(); 30 virtual ~IDeviceManager(); 31 static std::shared_ptr<IDeviceManager> GetInstance(); 32 virtual std::shared_ptr<IManager> GetManager(ManagerId managerId) = 0; 33 virtual RetCode CreateManager() = 0; 34 virtual RetCode DestroyManager() = 0; GetController(ManagerId managerId,ControllerId controllerId)35 virtual std::shared_ptr<IController> GetController(ManagerId managerId, ControllerId controllerId) 36 { 37 (void)managerId; 38 (void)controllerId; 39 return nullptr; 40 }; 41 virtual std::shared_ptr<IController> GetController(CameraId cameraId,ManagerId managerId,ControllerId controllerId)42 GetController(CameraId cameraId, ManagerId managerId, ControllerId controllerId) 43 { 44 (void)cameraId; 45 (void)managerId; 46 (void)controllerId; 47 return nullptr; 48 }; 49 virtual RetCode PowerUp(CameraId cameraId) = 0; 50 virtual RetCode PowerDown(CameraId cameraId) = 0; 51 virtual RetCode Init() = 0; 52 virtual std::shared_ptr<ISensor> GetSensor(CameraId cameraId) = 0; 53 virtual std::vector<CameraId> GetCameraId() = 0; Connect(std::string controller,std::string portNum,std::string connectController,std::string connectPortNum)54 virtual RetCode Connect(std::string controller, 55 std::string portNum, std::string connectController, std::string connectPortNum) 56 { 57 (void)controller; 58 (void)portNum; 59 (void)connectController; 60 (void)connectPortNum; 61 return RC_OK; 62 }; UnConnect(std::string controller,std::string portNum,std::string connectController,std::string connectPortNum)63 virtual RetCode UnConnect(std::string controller, 64 std::string portNum, std::string connectController, std::string connectPortNum) 65 { 66 (void)controller; 67 (void)portNum; 68 (void)connectController; 69 (void)connectPortNum; 70 return RC_OK; 71 }; BufferCallback(std::shared_ptr<FrameSpec> buffer)72 virtual void BufferCallback(std::shared_ptr<FrameSpec> buffer) 73 { 74 (void)buffer; 75 return; 76 }; SetAbilityMetaDataTag(std::vector<int32_t> abilityMetaDataTag)77 virtual void SetAbilityMetaDataTag(std::vector<int32_t> abilityMetaDataTag) 78 { 79 (void)abilityMetaDataTag; 80 return; 81 }; 82 virtual RetCode SendFrameBuffer(std::shared_ptr<FrameSpec> buffer, CameraId cameraId = CAMERA_MAX) 83 { 84 (void)buffer; 85 (void)cameraId; 86 return RC_OK; 87 }; 88 virtual void SetNodeCallBack(const NodeBufferCb cb, CameraId cameraId = CAMERA_MAX) 89 { 90 (void)cb; 91 (void)cameraId; 92 return; 93 }; 94 virtual void SetMetaDataCallBack(const MetaDataCb cb, CameraId cameraId = CAMERA_MAX) 95 { 96 (void)cb; 97 (void)cameraId; 98 return; 99 }; SetDevStatusCallBack(const DeviceStatusCb cb)100 virtual void SetDevStatusCallBack(const DeviceStatusCb cb) 101 { 102 (void)cb; 103 return; 104 }; 105 virtual RetCode SetFlashlight(FlashMode flashMode, bool enable, CameraId cameraId = CAMERA_MAX) = 0; 106 virtual void Configure(std::shared_ptr<CameraMetadata> meta) = 0; SetHotplugDevCallBack(HotplugDevCb cb)107 virtual void SetHotplugDevCallBack(HotplugDevCb cb) 108 { 109 (void)cb; 110 return; 111 }; PreConfig(const ModeMeta & meta,const std::vector<DeviceStreamSetting> & settings)112 virtual RetCode PreConfig(const ModeMeta& meta, const std::vector<DeviceStreamSetting>& settings) 113 { 114 (void)meta; 115 (void)settings; 116 return RC_OK; 117 } Flush(int32_t streamId)118 virtual RetCode Flush(int32_t streamId) 119 { 120 (void)streamId; 121 return RC_OK; 122 } StartRecvFrame(int32_t streamId)123 virtual RetCode StartRecvFrame(int32_t streamId) 124 { 125 (void)streamId; 126 return RC_OK; 127 } StopRecvFrame(int32_t streamId)128 virtual RetCode StopRecvFrame(int32_t streamId) 129 { 130 (void)streamId; 131 return RC_OK; 132 } SetSendflag(bool flag)133 virtual void SetSendflag(bool flag) 134 { 135 (void)flag; 136 return; 137 } SetMemoryType(uint8_t & memType)138 virtual void SetMemoryType(uint8_t &memType) 139 { 140 (void)(memType); 141 return; 142 } 143 }; 144 } // namespace Camera 145 } // namespace OHOS 146 #endif 147