11c1b0f19Sopenharmony_ci/*
21c1b0f19Sopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
31c1b0f19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
41c1b0f19Sopenharmony_ci * you may not use this file except in compliance with the License.
51c1b0f19Sopenharmony_ci * You may obtain a copy of the License at
61c1b0f19Sopenharmony_ci *
71c1b0f19Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
81c1b0f19Sopenharmony_ci *
91c1b0f19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
101c1b0f19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
111c1b0f19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121c1b0f19Sopenharmony_ci * See the License for the specific language governing permissions and
131c1b0f19Sopenharmony_ci * limitations under the License.
141c1b0f19Sopenharmony_ci */
151c1b0f19Sopenharmony_ci
161c1b0f19Sopenharmony_ci#ifndef OHOS_ICAMERA_CONTROLLER_H
171c1b0f19Sopenharmony_ci#define OHOS_ICAMERA_CONTROLLER_H
181c1b0f19Sopenharmony_ci
191c1b0f19Sopenharmony_ci#include "dcamera_capture_info_cmd.h"
201c1b0f19Sopenharmony_ci#include "dcamera_channel_info_cmd.h"
211c1b0f19Sopenharmony_ci#include "dcamera_event_cmd.h"
221c1b0f19Sopenharmony_ci#include "dcamera_info_cmd.h"
231c1b0f19Sopenharmony_ci#include "dcamera_index.h"
241c1b0f19Sopenharmony_ci#include "dcamera_open_info_cmd.h"
251c1b0f19Sopenharmony_ci
261c1b0f19Sopenharmony_cinamespace OHOS {
271c1b0f19Sopenharmony_cinamespace DistributedHardware {
281c1b0f19Sopenharmony_ciclass ICameraController {
291c1b0f19Sopenharmony_cipublic:
301c1b0f19Sopenharmony_ci    ICameraController() = default;
311c1b0f19Sopenharmony_ci    virtual ~ICameraController() = default;
321c1b0f19Sopenharmony_ci
331c1b0f19Sopenharmony_ci    virtual int32_t StartCapture(std::vector<std::shared_ptr<DCameraCaptureInfo>>& captureInfos,
341c1b0f19Sopenharmony_ci        int32_t sceneMode) = 0;
351c1b0f19Sopenharmony_ci    virtual int32_t StopCapture() = 0;
361c1b0f19Sopenharmony_ci    virtual int32_t ChannelNeg(std::shared_ptr<DCameraChannelInfo>& info) = 0;
371c1b0f19Sopenharmony_ci    virtual int32_t DCameraNotify(std::shared_ptr<DCameraEvent>& events) = 0;
381c1b0f19Sopenharmony_ci    virtual int32_t UpdateSettings(std::vector<std::shared_ptr<DCameraSettings>>& settings) = 0;
391c1b0f19Sopenharmony_ci    virtual int32_t GetCameraInfo(std::shared_ptr<DCameraInfo>& camInfo) = 0;
401c1b0f19Sopenharmony_ci    virtual int32_t OpenChannel(std::shared_ptr<DCameraOpenInfo>& openInfo) = 0;
411c1b0f19Sopenharmony_ci    virtual int32_t CloseChannel() = 0;
421c1b0f19Sopenharmony_ci    virtual int32_t Init(std::vector<DCameraIndex>& indexs) = 0;
431c1b0f19Sopenharmony_ci    virtual int32_t UnInit() = 0;
441c1b0f19Sopenharmony_ci    virtual int32_t PauseDistributedHardware(const std::string &networkId) = 0;
451c1b0f19Sopenharmony_ci    virtual int32_t ResumeDistributedHardware(const std::string &networkId) = 0;
461c1b0f19Sopenharmony_ci    virtual int32_t StopDistributedHardware(const std::string &networkId) = 0;
471c1b0f19Sopenharmony_ci};
481c1b0f19Sopenharmony_ci} // namespace DistributedHardware
491c1b0f19Sopenharmony_ci} // namespace OHOS
501c1b0f19Sopenharmony_ci#endif // OHOS_ICAMERA_CONTROLLER_H
51