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 #include "isensor.h"
17
18 namespace OHOS::Camera {
ISensor()19 ISensor::ISensor() {}
20
ISensor(std::string sensorName)21 ISensor::ISensor(std::string sensorName) : sensorName_(sensorName) {}
22
~ISensor()23 ISensor::~ISensor() {}
24
InitPhysicalSize(CameraStandard::CameraMetadata & camera_meta_data)25 void ISensor::InitPhysicalSize(CameraStandard::CameraMetadata& camera_meta_data)
26 {
27 std::vector<float> physicalSize = {
28 2592,
29 1944,
30 };
31 camera_meta_data.addEntry(OHOS_SENSOR_INFO_PHYSICAL_SIZE, physicalSize.data(),
32 physicalSize.size());
33 }
InitAntiBandingModes(CameraStandard::CameraMetadata & camera_meta_data)34 void ISensor::InitAntiBandingModes(CameraStandard::CameraMetadata& camera_meta_data)
35 {
36 std::vector<uint8_t> aeAvailableAntiBandingModes = {
37 OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
38 OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
39 OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
40 OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
41 };
42 camera_meta_data.addEntry(OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES, aeAvailableAntiBandingModes.data(),
43 aeAvailableAntiBandingModes.size());
44 }
InitAvailableModes(CameraStandard::CameraMetadata & camera_meta_data)45 void ISensor::InitAvailableModes(CameraStandard::CameraMetadata& camera_meta_data)
46 {
47 std::vector<uint8_t> aeAvailableModes = {
48 OHOS_CAMERA_AE_MODE_ON,
49 };
50 camera_meta_data.addEntry(OHOS_CONTROL_AE_AVAILABLE_MODES, aeAvailableModes.data(),
51 aeAvailableModes.size());
52 }
InitFpsTarget(CameraStandard::CameraMetadata & camera_meta_data)53 void ISensor::InitFpsTarget(CameraStandard::CameraMetadata& camera_meta_data)
54 {
55 std::vector<int32_t> availableAeFpsTarget = {
56 15,
57 30,
58 };
59 camera_meta_data.addEntry(OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, availableAeFpsTarget.data(),
60 availableAeFpsTarget.size());
61 }
InitCompensationRange(CameraStandard::CameraMetadata & camera_meta_data)62 void ISensor::InitCompensationRange(CameraStandard::CameraMetadata& camera_meta_data)
63 {
64 std::vector<int32_t> aeCompensationRange = {
65 0,
66 0,
67 };
68 camera_meta_data.addEntry(OHOS_CONTROL_AE_COMPENSATION_RANGE, aeCompensationRange.data(),
69 aeCompensationRange.size());
70 }
71
InitAwbModes(CameraStandard::CameraMetadata & camera_meta_data)72 void ISensor::InitAwbModes(CameraStandard::CameraMetadata& camera_meta_data)
73 {
74 std::vector<uint8_t> availableAwbModes = {
75 OHOS_CAMERA_AWB_MODE_OFF,
76 };
77 camera_meta_data.addEntry(OHOS_CONTROL_AWB_AVAILABLE_MODES, availableAwbModes.data(),
78 availableAwbModes.size());
79 }
80
InitSensitivityRange(CameraStandard::CameraMetadata & camera_meta_data)81 void ISensor::InitSensitivityRange(CameraStandard::CameraMetadata& camera_meta_data)
82 {
83 int32_t sensitivityRange[] = {
84 32,
85 2400,
86 };
87 camera_meta_data.addEntry(OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
88 &sensitivityRange,
89 sizeof(sensitivityRange) / sizeof(int32_t)); // sensor灵敏度范围
90 }
91 } // namespace OHOS::Camera