• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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::Camera {
26 class IDeviceManager {
27 public:
28     IDeviceManager();
29     virtual ~IDeviceManager();
30     static std::shared_ptr<IDeviceManager> GetInstance();
31     virtual std::shared_ptr<IManager> GetManager(ManagerId managerId) = 0;
32     virtual RetCode CreateManager() = 0;
33     virtual RetCode DestroyManager() = 0;
GetController(ManagerId managerId,ControllerId controllerId)34     virtual std::shared_ptr<IController> GetController(ManagerId managerId, ControllerId controllerId)
35     {
36         return nullptr;
37     };
38     virtual std::shared_ptr<IController>
GetController(CameraId cameraId,ManagerId managerId,ControllerId controllerId)39         GetController(CameraId cameraId, ManagerId managerId, ControllerId controllerId)
40     {
41         return nullptr;
42     };
43     virtual RetCode PowerUp(CameraId cameraId) = 0;
44     virtual RetCode PowerDown(CameraId cameraId) = 0;
45     virtual RetCode Init() = 0;
46     virtual std::shared_ptr<ISensor> GetSensor(CameraId cameraId) = 0;
47     virtual std::vector<CameraId> GetCameraId() = 0;
Connect(std::string controller,std::string portNum,std::string connectController,std::string connectPortNum)48     virtual RetCode Connect(std::string controller,
49         std::string portNum, std::string connectController, std::string connectPortNum)
50     {
51         return RC_OK;
52     };
UnConnect(std::string controller,std::string portNum,std::string connectController,std::string connectPortNum)53     virtual RetCode UnConnect(std::string controller,
54         std::string portNum, std::string connectController, std::string connectPortNum)
55     {
56         return RC_OK;
57     };
BufferCallback(std::shared_ptr<FrameSpec> buffer)58     virtual void BufferCallback(std::shared_ptr<FrameSpec> buffer) {};
SetAbilityMetaDataTag(std::vector<int32_t> abilityMetaDataTag)59     virtual void SetAbilityMetaDataTag(std::vector<int32_t> abilityMetaDataTag) {};
60     virtual RetCode SendFrameBuffer(std::shared_ptr<FrameSpec> buffer, CameraId cameraId = CAMERA_MAX)
61     {
62         return RC_OK;
63     };
64     virtual void SetNodeCallBack(const NodeBufferCb cb, CameraId cameraId = CAMERA_MAX) {};
65     virtual void SetMetaDataCallBack(const MetaDataCb cb, CameraId cameraId = CAMERA_MAX) {};
SetDevStatusCallBack(const DeviceStatusCb cb)66     virtual void SetDevStatusCallBack(const DeviceStatusCb cb) {};
67     virtual RetCode SetFlashlight(FlashMode flashMode, bool enable, CameraId cameraId = CAMERA_MAX) = 0;
68     virtual void Configure(std::shared_ptr<CameraStandard::CameraMetadata> meta) = 0;
SetCallBack(UvcMetaDataCb cb)69     virtual void SetCallBack(UvcMetaDataCb cb) {};
PreConfig(const ModeMeta & meta,const std::vector<DeviceStreamSetting> & settings)70     virtual RetCode PreConfig(const ModeMeta& meta, const std::vector<DeviceStreamSetting>& settings)
71     {
72         return RC_OK;
73     }
Flush(int32_t streamId)74     virtual RetCode Flush(int32_t streamId)
75     {
76         return RC_OK;
77     }
StartRecvFrame(int32_t streamId)78     virtual RetCode StartRecvFrame(int32_t streamId)
79     {
80         return RC_OK;
81     }
StopRecvFrame(int32_t streamId)82     virtual RetCode StopRecvFrame(int32_t streamId)
83     {
84         return RC_OK;
85     }
86 };
87 } // namespace OHOS::Camera
88 #endif
89