• 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 #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