1/* 2 * Copyright (c) 2022 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 OHOS_HDI_CAMERA_V1_0_ICAMERADEVICE_H 17#define OHOS_HDI_CAMERA_V1_0_ICAMERADEVICE_H 18 19#include <stdint.h> 20#include <vector> 21#include <hdf_base.h> 22#include <hdi_base.h> 23#include "camera/v1_0/istream_operator.h" 24#include "camera/v1_0/istream_operator_callback.h" 25#include "camera/v1_0/types.h" 26 27#ifndef HDI_BUFF_MAX_SIZE 28#define HDI_BUFF_MAX_SIZE (1024 * 200) 29#endif 30 31#ifndef HDI_CHECK_VALUE_RETURN 32#define HDI_CHECK_VALUE_RETURN(lv, compare, rv, ret) do { \ 33 if ((lv) compare (rv)) { \ 34 return ret; \ 35 } \ 36} while (false) 37#endif 38 39#ifndef HDI_CHECK_VALUE_RET_GOTO 40#define HDI_CHECK_VALUE_RET_GOTO(lv, compare, rv, ret, value, table) do { \ 41 if ((lv) compare (rv)) { \ 42 ret = value; \ 43 goto table; \ 44 } \ 45} while (false) 46#endif 47 48namespace OHOS { 49namespace HDI { 50namespace Camera { 51namespace V1_0 { 52using namespace OHOS; 53using namespace OHOS::HDI; 54 55enum { 56 CMD_CAMERA_DEVICE_GET_VERSION = 0, 57 CMD_CAMERA_DEVICE_GET_STREAM_OPERATOR = 1, 58 CMD_CAMERA_DEVICE_UPDATE_SETTINGS = 2, 59 CMD_CAMERA_DEVICE_SET_RESULT_MODE = 3, 60 CMD_CAMERA_DEVICE_GET_ENABLED_RESULTS = 4, 61 CMD_CAMERA_DEVICE_ENABLE_RESULT = 5, 62 CMD_CAMERA_DEVICE_DISABLE_RESULT = 6, 63 CMD_CAMERA_DEVICE_CLOSE = 7, 64}; 65 66class ICameraDevice : public HdiBase { 67public: 68 DECLARE_HDI_DESCRIPTOR(u"ohos.hdi.camera.v1_0.ICameraDevice"); 69 70 virtual ~ICameraDevice() = default; 71 72 virtual int32_t GetStreamOperator(const sptr<OHOS::HDI::Camera::V1_0::IStreamOperatorCallback>& callbackObj, 73 sptr<OHOS::HDI::Camera::V1_0::IStreamOperator>& streamOperator) = 0; 74 75 virtual int32_t UpdateSettings(const std::vector<uint8_t>& settings) = 0; 76 77 virtual int32_t SetResultMode(OHOS::HDI::Camera::V1_0::ResultCallbackMode mode) = 0; 78 79 virtual int32_t GetEnabledResults(std::vector<int32_t>& results) = 0; 80 81 virtual int32_t EnableResult(const std::vector<int32_t>& results) = 0; 82 83 virtual int32_t DisableResult(const std::vector<int32_t>& results) = 0; 84 85 virtual int32_t Close() = 0; 86 87 virtual int32_t GetVersion(uint32_t& majorVer, uint32_t& minorVer) 88 { 89 majorVer = 1; 90 minorVer = 0; 91 return HDF_SUCCESS; 92 } 93 94 virtual bool IsProxy() 95 { 96 return false; 97 } 98 99 virtual const std::u16string GetDesc() 100 { 101 return metaDescriptor_; 102 } 103}; 104} // V1_0 105} // Camera 106} // HDI 107} // OHOS 108 109#endif // OHOS_HDI_CAMERA_V1_0_ICAMERADEVICE_H 110 111