blob: dd29dda353fdef441f958e2b5793d83a222d286a [file] [log] [blame]
Ajay Dudanibf1bd912012-07-05 21:37:20 -07001/*
2**
3** Copyright 2008, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17#ifndef ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
18#define ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
19
20//#include <utils/KeyedVector.h>
21//#include <utils/String8.h>
22#include <camera/CameraParameters.h>
23
24namespace android {
25
26struct FPSRange{
27 int minFPS;
28 int maxFPS;
29 FPSRange(){
30 minFPS=0;
31 maxFPS=0;
32 };
33 FPSRange(int min,int max){
34 minFPS=min;
35 maxFPS=max;
36 };
37};
38class QCameraParameters: public CameraParameters
39{
40public:
41#if 1
42 QCameraParameters() : CameraParameters() {};
43 QCameraParameters(const String8 &params): CameraParameters(params) {};
44 #else
45 QCameraParameters() : CameraParameters() {};
46 QCameraParameters(const String8 &params) { unflatten(params); }
47#endif
48 ~QCameraParameters();
49
50 // Supported PREVIEW/RECORDING SIZES IN HIGH FRAME RATE recording, sizes in pixels.
51 // Example value: "800x480,432x320". Read only.
52 static const char KEY_SUPPORTED_HFR_SIZES[];
53 // The mode of preview frame rate.
54 // Example value: "frame-rate-auto, frame-rate-fixed".
55 static const char KEY_PREVIEW_FRAME_RATE_MODE[];
56 static const char KEY_SUPPORTED_PREVIEW_FRAME_RATE_MODES[];
57 static const char KEY_PREVIEW_FRAME_RATE_AUTO_MODE[];
58 static const char KEY_PREVIEW_FRAME_RATE_FIXED_MODE[];
59
60 static const char KEY_SKIN_TONE_ENHANCEMENT[] ;
61 static const char KEY_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] ;
62
63 //Touch Af/AEC settings.
64 static const char KEY_TOUCH_AF_AEC[];
65 static const char KEY_SUPPORTED_TOUCH_AF_AEC[];
66 //Touch Index for AEC.
67 static const char KEY_TOUCH_INDEX_AEC[];
68 //Touch Index for AF.
69 static const char KEY_TOUCH_INDEX_AF[];
70 // Current auto scene detection mode.
71 // Example value: "off" or SCENE_DETECT_XXX constants. Read/write.
72 static const char KEY_SCENE_DETECT[];
73 // Supported auto scene detection settings.
74 // Example value: "off,backlight,snow/cloudy". Read only.
75 static const char KEY_SUPPORTED_SCENE_DETECT[];
76 // Returns true if video snapshot is supported. That is, applications
77 static const char KEY_FULL_VIDEO_SNAP_SUPPORTED[];
78 static const char KEY_POWER_MODE_SUPPORTED[];
79
80 static const char KEY_ISO_MODE[];
81 static const char KEY_SUPPORTED_ISO_MODES[];
82 static const char KEY_LENSSHADE[] ;
83 static const char KEY_SUPPORTED_LENSSHADE_MODES[] ;
84
85 static const char KEY_AUTO_EXPOSURE[];
86 static const char KEY_SUPPORTED_AUTO_EXPOSURE[];
87
88 static const char KEY_GPS_LATITUDE_REF[];
89 static const char KEY_GPS_LONGITUDE_REF[];
90 static const char KEY_GPS_ALTITUDE_REF[];
91 static const char KEY_GPS_STATUS[];
92 static const char KEY_EXIF_DATETIME[];
93 static const char KEY_MEMORY_COLOR_ENHANCEMENT[];
94 static const char KEY_SUPPORTED_MEM_COLOR_ENHANCE_MODES[];
95
96
97 static const char KEY_POWER_MODE[];
98
99 static const char KEY_ZSL[];
100 static const char KEY_SUPPORTED_ZSL_MODES[];
101
102 static const char KEY_CAMERA_MODE[];
103
104 static const char KEY_VIDEO_HIGH_FRAME_RATE[];
105 static const char KEY_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[];
106 static const char KEY_HIGH_DYNAMIC_RANGE_IMAGING[];
107 static const char KEY_SUPPORTED_HDR_IMAGING_MODES[];
108 static const char KEY_AE_BRACKET_HDR[];
109
110
111 // DENOISE
112 static const char KEY_DENOISE[];
113 static const char KEY_SUPPORTED_DENOISE[];
114
115 //Selectable zone AF.
116 static const char KEY_SELECTABLE_ZONE_AF[];
117 static const char KEY_SUPPORTED_SELECTABLE_ZONE_AF[];
118
119 //Face Detection
120 static const char KEY_FACE_DETECTION[];
121 static const char KEY_SUPPORTED_FACE_DETECTION[];
122
123 //Redeye Reduction
124 static const char KEY_REDEYE_REDUCTION[];
125 static const char KEY_SUPPORTED_REDEYE_REDUCTION[];
126 static const char EFFECT_EMBOSS[];
127 static const char EFFECT_SKETCH[];
128 static const char EFFECT_NEON[];
129
130 // Values for Touch AF/AEC
131 static const char TOUCH_AF_AEC_OFF[] ;
132 static const char TOUCH_AF_AEC_ON[] ;
133 static const char SCENE_MODE_ASD[];
134 static const char SCENE_MODE_BACKLIGHT[];
135 static const char SCENE_MODE_FLOWERS[];
136 static const char SCENE_MODE_AR[];
Mansoor Aftab44131c12012-09-07 11:42:16 -0700137 static const char SCENE_MODE_HDR[];
Ajay Dudanibf1bd912012-07-05 21:37:20 -0700138 static const char SCENE_DETECT_OFF[];
139 static const char SCENE_DETECT_ON[];
140 static const char PIXEL_FORMAT_YUV420SP_ADRENO[]; // ADRENO
141 static const char PIXEL_FORMAT_RAW[];
142 static const char PIXEL_FORMAT_YV12[]; // NV12
143 static const char PIXEL_FORMAT_NV12[]; //NV12
144 // Normal focus mode. Applications should call
145 // CameraHardwareInterface.autoFocus to start the focus in this mode.
146 static const char FOCUS_MODE_NORMAL[];
147 static const char ISO_AUTO[];
148 static const char ISO_HJR[] ;
149 static const char ISO_100[];
150 static const char ISO_200[] ;
151 static const char ISO_400[];
152 static const char ISO_800[];
153 static const char ISO_1600[];
154 // Values for Lens Shading
155 static const char LENSSHADE_ENABLE[] ;
156 static const char LENSSHADE_DISABLE[] ;
157
158 // Values for auto exposure settings.
159 static const char AUTO_EXPOSURE_FRAME_AVG[];
160 static const char AUTO_EXPOSURE_CENTER_WEIGHTED[];
161 static const char AUTO_EXPOSURE_SPOT_METERING[];
162
163 static const char KEY_SHARPNESS[];
164 static const char KEY_MAX_SHARPNESS[];
165 static const char KEY_CONTRAST[];
166 static const char KEY_MAX_CONTRAST[];
167 static const char KEY_SATURATION[];
168 static const char KEY_MAX_SATURATION[];
169
170 static const char KEY_HISTOGRAM[] ;
171 static const char KEY_SUPPORTED_HISTOGRAM_MODES[] ;
172 // Values for HISTOGRAM
173 static const char HISTOGRAM_ENABLE[] ;
174 static const char HISTOGRAM_DISABLE[] ;
175
176 // Values for SKIN TONE ENHANCEMENT
177 static const char SKIN_TONE_ENHANCEMENT_ENABLE[] ;
178 static const char SKIN_TONE_ENHANCEMENT_DISABLE[] ;
179
180 // Values for Denoise
181 static const char DENOISE_OFF[] ;
182 static const char DENOISE_ON[] ;
183
184 // Values for auto exposure settings.
185 static const char SELECTABLE_ZONE_AF_AUTO[];
186 static const char SELECTABLE_ZONE_AF_SPOT_METERING[];
187 static const char SELECTABLE_ZONE_AF_CENTER_WEIGHTED[];
188 static const char SELECTABLE_ZONE_AF_FRAME_AVERAGE[];
189
190 // Values for Face Detection settings.
191 static const char FACE_DETECTION_OFF[];
192 static const char FACE_DETECTION_ON[];
193
194 // Values for MCE settings.
195 static const char MCE_ENABLE[];
196 static const char MCE_DISABLE[];
197
198 // Values for ZSL settings.
199 static const char ZSL_OFF[];
200 static const char ZSL_ON[];
201
202 // Values for HDR Bracketing settings.
203 static const char AE_BRACKET_HDR_OFF[];
204 static const char AE_BRACKET_HDR[];
205 static const char AE_BRACKET[];
206
207 // Values for Power mode settings.
208 static const char LOW_POWER[];
209 static const char NORMAL_POWER[];
210
211 // Values for HFR settings.
212 static const char VIDEO_HFR_OFF[];
213 static const char VIDEO_HFR_2X[];
214 static const char VIDEO_HFR_3X[];
215 static const char VIDEO_HFR_4X[];
216
217 // Values for Redeye Reduction settings.
218 static const char REDEYE_REDUCTION_ENABLE[];
219 static const char REDEYE_REDUCTION_DISABLE[];
220 // Values for HDR settings.
221 static const char HDR_ENABLE[];
222 static const char HDR_DISABLE[];
223
224 // Values for Redeye Reduction settings.
225 // static const char REDEYE_REDUCTION_ENABLE[];
226 // static const char REDEYE_REDUCTION_DISABLE[];
227 // Values for HDR settings.
228 // static const char HDR_ENABLE[];
229 // static const char HDR_DISABLE[];
230
231
232 static const char KEY_SINGLE_ISP_OUTPUT_ENABLED[];
Azam Sadiq Pasha Kapatrala Syed0ac1f422012-08-24 15:51:35 -0700233 static const char KEY_SUPPORTED_CAMERA_FEATURES[];
234 static const char KEY_MAX_NUM_REQUESTED_FACES[];
Ajay Dudanibf1bd912012-07-05 21:37:20 -0700235
236 enum {
237 CAMERA_ORIENTATION_UNKNOWN = 0,
238 CAMERA_ORIENTATION_PORTRAIT = 1,
239 CAMERA_ORIENTATION_LANDSCAPE = 2,
240 };
241 int getOrientation() const;
242 void setOrientation(int orientation);
243 void getSupportedHfrSizes(Vector<Size> &sizes) const;
244 void setPreviewFpsRange(int minFPS,int maxFPS);
245 void setPreviewFrameRateMode(const char *mode);
246 const char *getPreviewFrameRateMode() const;
247 void setTouchIndexAec(int x, int y);
248 void getTouchIndexAec(int *x, int *y) const;
249 void setTouchIndexAf(int x, int y);
250 void getTouchIndexAf(int *x, int *y) const;
251 void getMeteringAreaCenter(int * x, int *y) const;
252
253};
254
255}; // namespace android
256
257#endif