Merge "Cleanup Obsolete LOCAL_PRELINK_MODULE."
[GitHub/LineageOS/android_hardware_samsung_slsi_exynos5.git] / libcamera2 / ExynosCamera2.h
CommitLineData
daa1fcd6
SK
1/*
2**
3** Copyright 2008, The Android Open Source Project
4** Copyright 2012, Samsung Electronics Co. LTD
5**
6** Licensed under the Apache License, Version 2.0 (the "License");
7** you may not use this file except in compliance with the License.
8** You may obtain a copy of the License at
9**
10** http://www.apache.org/licenses/LICENSE-2.0
11**
12** Unless required by applicable law or agreed to in writing, software
13** distributed under the License is distributed on an "AS IS" BASIS,
14** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15** See the License for the specific language governing permissions and
16** limitations under the License.
17*/
18
19/*!
20 * \file ExynosCamera2.h
21 * \brief header file for static information of camera2
22 * \author Sungjoong Kang(sj3.kang@samsung.com)
23 * \date 2012/08/06
24 *
25 * <b>Revision History: </b>
26 * - 2012/08/06 : Sungjoong Kang(sj3.kang@samsung.com) \n
27 * Initial Release
28 *
29 */
30
17071e43
RB
31#ifndef EXYNOS_CAMERA_2_H
32#define EXYNOS_CAMERA_2_H
33
daa1fcd6
SK
34#include <hardware/camera2.h>
35#include <camera/Camera.h>
36#include <camera/CameraParameters.h>
37#include "exynos_format.h"
f3312f8b 38#include "fimc-is-metadata.h"
daa1fcd6
SK
39
40namespace android {
41
17071e43
RB
42extern int32_t SUPPORT_THUMBNAIL_REAR_SIZE[3][2];
43extern int32_t SUPPORT_THUMBNAIL_FRONT_SIZE[4][2];
44
daa1fcd6
SK
45struct ExynosCamera2Info
46{
47public:
48 int32_t sensorW;
49 int32_t sensorH;
50 int32_t sensorRawW;
51 int32_t sensorRawH;
52 int numScalerResolution;
53 const int32_t *scalerResolutions;
54 int numJpegResolution;
55 const int32_t *jpegResolutions;
0f26b20f
SK
56 float minFocusDistance;
57 float focalLength;
58 float aperture;
e00f6591 59 float fnumber;
73c6337d
SK
60 const uint8_t *availableAfModes;
61 const uint8_t *sceneModeOverrides;
62 const uint8_t *availableAeModes;
63 int numAvailableAfModes;
64 int numSceneModeOverrides;
65 int numAvailableAeModes;
fd2d78a2
SK
66
67 /* FD information */
68 int32_t maxFaceCount;
daa1fcd6
SK
69};
70
71struct ExynosCamera2InfoS5K4E5 : public ExynosCamera2Info
72{
73public:
74 ExynosCamera2InfoS5K4E5();
75 ~ExynosCamera2InfoS5K4E5();
76};
77
78struct ExynosCamera2InfoS5K6A3 : public ExynosCamera2Info
79{
80public:
81 ExynosCamera2InfoS5K6A3();
82 ~ExynosCamera2InfoS5K6A3();
83};
84
85class ExynosCamera2 {
86public:
87 ExynosCamera2(int cameraId);
88 ~ExynosCamera2();
89
90 ExynosCamera2Info *m_curCameraInfo;
91
92 int32_t getSensorW();
93 int32_t getSensorH();
94 int32_t getSensorRawW();
95 int32_t getSensorRawH();
96
97 bool isSupportedResolution(int width, int height);
98 bool isSupportedJpegResolution(int width, int height);
99
100 status_t constructStaticInfo(camera_metadata_t **info,
101 int cameraId, bool sizeRequest);
102
103 status_t constructDefaultRequest(int request_template,
104 camera_metadata_t **request, bool sizeRequest);
105 int m_cameraId;
106};
107}
17071e43
RB
108
109#endif