• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 iSoftStone Device Co., Ltd.
3  *
4  * HDF is dual licensed: you can use it either under the terms of
5  * the GPL, or the BSD license, at your option.
6  * See the LICENSE file in the root of this repository for complete details.
7  */
8 
9 #include "imx600.h"
10 #include <vector>
11 
12 namespace OHOS::Camera {
IMPLEMENT_SENSOR(Imx600)13 IMPLEMENT_SENSOR(Imx600)
14 Imx600::Imx600() : ISensor("imx600") {}
15 
~Imx600()16 Imx600::~Imx600() {}
17 
InitPhysicalSize(CameraStandard::CameraMetadata & camera_meta_data)18 void Imx600::InitPhysicalSize(CameraStandard::CameraMetadata& camera_meta_data)
19 {
20     ISensor::InitPhysicalSize(camera_meta_data);
21 }
22 
InitAntiBandingModes(CameraStandard::CameraMetadata & camera_meta_data)23 void Imx600::InitAntiBandingModes(CameraStandard::CameraMetadata& camera_meta_data)
24 {
25     ISensor::InitAntiBandingModes(camera_meta_data);
26 }
27 
InitAeFpsTarget(CameraStandard::CameraMetadata & camera_meta_data)28 void Imx600::InitAeFpsTarget(CameraStandard::CameraMetadata& camera_meta_data)
29 {
30     std::vector<int32_t> availableAeFpsTarget = {
31         15,
32         30,
33     };
34     camera_meta_data.addEntry(OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, availableAeFpsTarget.data(),
35                               availableAeFpsTarget.size());
36 }
37 
InitCompensationRange(CameraStandard::CameraMetadata & camera_meta_data)38 void Imx600::InitCompensationRange(CameraStandard::CameraMetadata& camera_meta_data)
39 {
40     ISensor::InitCompensationRange(camera_meta_data);
41 }
42 
InitSensitivityRange(CameraStandard::CameraMetadata & camera_meta_data)43 void Imx600::InitSensitivityRange(CameraStandard::CameraMetadata& camera_meta_data)
44 {
45     ISensor::InitSensitivityRange(camera_meta_data);
46 }
47 
Init(CameraStandard::CameraMetadata & camera_meta_data)48 void Imx600::Init(CameraStandard::CameraMetadata& camera_meta_data)
49 {
50     InitPhysicalSize(camera_meta_data);
51     InitAntiBandingModes(camera_meta_data);
52 
53     std::vector<uint8_t> aeAvailableModes = {
54         OHOS_CAMERA_AE_MODE_ON,
55     };
56     camera_meta_data.addEntry(OHOS_CONTROL_AE_AVAILABLE_MODES, aeAvailableModes.data(),
57                               aeAvailableModes.size());
58 
59     InitAeFpsTarget(camera_meta_data);
60     InitCompensationRange(camera_meta_data);
61 
62     const camera_rational_t aeCompensationStep[] = {{0, 1}};
63     camera_meta_data.addEntry(OHOS_CONTROL_AE_COMPENSATION_STEP, aeCompensationStep, 1);
64 
65     std::vector<uint8_t> availableAwbModes = {
66         OHOS_CAMERA_AWB_MODE_OFF,
67     };
68     camera_meta_data.addEntry(OHOS_CONTROL_AWB_AVAILABLE_MODES, availableAwbModes.data(),
69                               availableAwbModes.size());
70 
71     InitSensitivityRange(camera_meta_data);
72 
73     uint8_t faceDetectMode = OHOS_CAMERA_FACE_DETECT_MODE_OFF;
74     camera_meta_data.addEntry(OHOS_STATISTICS_FACE_DETECT_MODE, &faceDetectMode,
75                               1);
76 }
77 } // namespace OHOS::Camera
78