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