/* * Copyright (c) 2021 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef STREAM_OPERATOR_STREAM_OPERATOR_H #define STREAM_OPERATOR_STREAM_OPERATOR_H #include "istream_operator.h" #include "stream_operator_c_if.h" #include "stream_operator_stub.h" namespace OHOS::Camera { class StreamOperator : public StreamOperatorStub { public: void Init(StreamOperatorCIF* op); CamRetCode IsStreamsSupported(OperationMode mode, const std::shared_ptr &modeSetting, const std::shared_ptr &pInfo, StreamSupportType &pType) override; CamRetCode CreateStreams(const std::vector> &streamInfos) override; CamRetCode ReleaseStreams(const std::vector &streamIds) override; CamRetCode CommitStreams(OperationMode mode, const std::shared_ptr &modeSetting) override; CamRetCode GetStreamAttributes(std::vector> &attributes) override; CamRetCode AttachBufferQueue(int streamId, const OHOS::sptr &producer) override; CamRetCode DetachBufferQueue(int streamId) override; CamRetCode Capture(int captureId, const std::shared_ptr &pInfo, bool isStreaming) override; CamRetCode CancelCapture(int captureId) override; CamRetCode ChangeToOfflineStream(const std::vector &streamIds, OHOS::sptr &callback, OHOS::sptr &offlineOperator) override; public: StreamOperator(); virtual ~StreamOperator(); StreamOperator(const StreamOperator &other) = delete; StreamOperator(StreamOperator &&other) = delete; StreamOperator& operator=(const StreamOperator &other) = delete; StreamOperator& operator=(StreamOperator &&other) = delete; private: StreamOperatorCIF* operator_ = nullptr; }; } // end namespace OHOS::Camera #endif // STREAM_OPERATOR_STREAM_OPERATOR_H