100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang/*
200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang**
300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** Copyright 2008, The Android Open Source Project
400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang**
500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** Licensed under the Apache License, Version 2.0 (the "License");
600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** you may not use this file except in compliance with the License.
700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** You may obtain a copy of the License at
800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang**
900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang**     http://www.apache.org/licenses/LICENSE-2.0
1000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang**
1100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** Unless required by applicable law or agreed to in writing, software
1200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** distributed under the License is distributed on an "AS IS" BASIS,
1300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** See the License for the specific language governing permissions and
1500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang** limitations under the License.
1600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang*/
1700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#ifndef ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
1800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#define ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
1900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
2000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang//#include <utils/KeyedVector.h>
2100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang//#include <utils/String8.h>
2200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#include <camera/CameraParameters.h>
2300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
2400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wangnamespace android {
2500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
2600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wangstruct FPSRange{
2700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    int minFPS;
2800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    int maxFPS;
2900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    FPSRange(){
3000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        minFPS=0;
3100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        maxFPS=0;
3200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    };
3300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    FPSRange(int min,int max){
3400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        minFPS=min;
3500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        maxFPS=max;
3600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    };
3700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang};
3800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wangclass QCameraParameters: public CameraParameters
3900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang{
4000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wangpublic:
4100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#if 1
4200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    QCameraParameters() : CameraParameters() {};
4300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    QCameraParameters(const String8 &params): CameraParameters(params) {};
4400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    #else
4500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    QCameraParameters() : CameraParameters() {};
4600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    QCameraParameters(const String8 &params) { unflatten(params); }
4700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#endif
4800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    ~QCameraParameters();
4900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
5000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Supported PREVIEW/RECORDING SIZES IN HIGH FRAME RATE recording, sizes in pixels.
5100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Example value: "800x480,432x320". Read only.
5200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_HFR_SIZES[];
5300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // The mode of preview frame rate.
5400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Example value: "frame-rate-auto, frame-rate-fixed".
5500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_PREVIEW_FRAME_RATE_MODE[];
5600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_PREVIEW_FRAME_RATE_MODES[];
5700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_PREVIEW_FRAME_RATE_AUTO_MODE[];
5800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_PREVIEW_FRAME_RATE_FIXED_MODE[];
5900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
6000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SKIN_TONE_ENHANCEMENT[] ;
6100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] ;
6200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
6300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Touch Af/AEC settings.
6400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_TOUCH_AF_AEC[];
6500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_TOUCH_AF_AEC[];
6600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Touch Index for AEC.
6700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_TOUCH_INDEX_AEC[];
6800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Touch Index for AF.
6900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_TOUCH_INDEX_AF[];
7000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Current auto scene detection mode.
7100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Example value: "off" or SCENE_DETECT_XXX constants. Read/write.
7200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SCENE_DETECT[];
7300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Supported auto scene detection settings.
7400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Example value: "off,backlight,snow/cloudy". Read only.
7500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_SCENE_DETECT[];
7600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang	   // Returns true if video snapshot is supported. That is, applications
7700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_FULL_VIDEO_SNAP_SUPPORTED[];
7800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_POWER_MODE_SUPPORTED[];
7900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
8000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_ISO_MODE[];
8100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_ISO_MODES[];
8200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_LENSSHADE[] ;
8300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_LENSSHADE_MODES[] ;
8400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
8500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_AUTO_EXPOSURE[];
8600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_AUTO_EXPOSURE[];
8700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
8800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_GPS_LATITUDE_REF[];
8900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_GPS_LONGITUDE_REF[];
9000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_GPS_ALTITUDE_REF[];
9100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_GPS_STATUS[];
9200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_EXIF_DATETIME[];
9300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_MEMORY_COLOR_ENHANCEMENT[];
9400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_MEM_COLOR_ENHANCE_MODES[];
9500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
9600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
9700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_POWER_MODE[];
9800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
9900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_ZSL[];
10000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_ZSL_MODES[];
10100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
10200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_CAMERA_MODE[];
10300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
10400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_VIDEO_HIGH_FRAME_RATE[];
10500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[];
10600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_HIGH_DYNAMIC_RANGE_IMAGING[];
10700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_HDR_IMAGING_MODES[];
10800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_AE_BRACKET_HDR[];
10900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
11000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
11100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // DENOISE
11200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_DENOISE[];
11300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_DENOISE[];
11400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
11500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Selectable zone AF.
11600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SELECTABLE_ZONE_AF[];
11700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_SELECTABLE_ZONE_AF[];
11800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
11900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Face Detection
12000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_FACE_DETECTION[];
12100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_FACE_DETECTION[];
12200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
12300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    //Redeye Reduction
12400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_REDEYE_REDUCTION[];
12500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_REDEYE_REDUCTION[];
12600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char EFFECT_EMBOSS[];
12700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char EFFECT_SKETCH[];
12800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char EFFECT_NEON[];
12900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
13000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Touch AF/AEC
13100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char TOUCH_AF_AEC_OFF[] ;
13200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char TOUCH_AF_AEC_ON[] ;
13300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SCENE_MODE_ASD[];
13400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SCENE_MODE_BACKLIGHT[];
13500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SCENE_MODE_FLOWERS[];
13600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SCENE_MODE_AR[];
13700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang	static const char SCENE_DETECT_OFF[];
13800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SCENE_DETECT_ON[];
13900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char PIXEL_FORMAT_YUV420SP_ADRENO[]; // ADRENO
14000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang	static const char PIXEL_FORMAT_RAW[];
14100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char PIXEL_FORMAT_YV12[]; // NV12
14200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char PIXEL_FORMAT_NV12[]; //NV12
14300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Normal focus mode. Applications should call
14400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // CameraHardwareInterface.autoFocus to start the focus in this mode.
14500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char FOCUS_MODE_NORMAL[];
14600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_AUTO[];
14700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_HJR[] ;
14800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_100[];
14900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_200[] ;
15000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_400[];
15100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_800[];
15200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ISO_1600[];
15300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Lens Shading
15400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char LENSSHADE_ENABLE[] ;
15500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char LENSSHADE_DISABLE[] ;
15600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
15700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for auto exposure settings.
15800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AUTO_EXPOSURE_FRAME_AVG[];
15900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AUTO_EXPOSURE_CENTER_WEIGHTED[];
16000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AUTO_EXPOSURE_SPOT_METERING[];
16100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
16200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SHARPNESS[];
16300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_MAX_SHARPNESS[];
16400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_CONTRAST[];
16500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_MAX_CONTRAST[];
16600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SATURATION[];
16700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_MAX_SATURATION[];
16800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
16900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_HISTOGRAM[] ;
17000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char KEY_SUPPORTED_HISTOGRAM_MODES[] ;
17100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for HISTOGRAM
17200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char HISTOGRAM_ENABLE[] ;
17300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char HISTOGRAM_DISABLE[] ;
17400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
17500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for SKIN TONE ENHANCEMENT
17600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SKIN_TONE_ENHANCEMENT_ENABLE[] ;
17700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SKIN_TONE_ENHANCEMENT_DISABLE[] ;
17800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
17900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Denoise
18000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char DENOISE_OFF[] ;
18100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char DENOISE_ON[] ;
18200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
18300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for auto exposure settings.
18400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SELECTABLE_ZONE_AF_AUTO[];
18500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SELECTABLE_ZONE_AF_SPOT_METERING[];
18600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SELECTABLE_ZONE_AF_CENTER_WEIGHTED[];
18700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char SELECTABLE_ZONE_AF_FRAME_AVERAGE[];
18800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
18900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Face Detection settings.
19000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char FACE_DETECTION_OFF[];
19100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char FACE_DETECTION_ON[];
19200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
19300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for MCE settings.
19400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char MCE_ENABLE[];
19500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char MCE_DISABLE[];
19600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
19700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for ZSL settings.
19800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ZSL_OFF[];
19900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char ZSL_ON[];
20000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
20100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for HDR Bracketing settings.
20200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AE_BRACKET_HDR_OFF[];
20300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AE_BRACKET_HDR[];
20400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char AE_BRACKET[];
20500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
20600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Power mode settings.
20700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char LOW_POWER[];
20800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char NORMAL_POWER[];
20900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
21000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for HFR settings.
21100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char VIDEO_HFR_OFF[];
21200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char VIDEO_HFR_2X[];
21300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char VIDEO_HFR_3X[];
21400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char VIDEO_HFR_4X[];
21500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
21600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for Redeye Reduction settings.
21700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char REDEYE_REDUCTION_ENABLE[];
21800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char REDEYE_REDUCTION_DISABLE[];
21900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    // Values for HDR settings.
22000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char HDR_ENABLE[];
22100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    static const char HDR_DISABLE[];
22200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
22300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   // Values for Redeye Reduction settings.
22400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   // static const char REDEYE_REDUCTION_ENABLE[];
22500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   // static const char REDEYE_REDUCTION_DISABLE[];
22600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   // Values for HDR settings.
22700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   //    static const char HDR_ENABLE[];
22800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   //    static const char HDR_DISABLE[];
22900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
23000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
23100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang   static const char KEY_SINGLE_ISP_OUTPUT_ENABLED[];
23200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
23300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    enum {
23400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        CAMERA_ORIENTATION_UNKNOWN = 0,
23500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        CAMERA_ORIENTATION_PORTRAIT = 1,
23600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang        CAMERA_ORIENTATION_LANDSCAPE = 2,
23700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    };
23800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    int getOrientation() const;
23900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void setOrientation(int orientation);
24000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void getSupportedHfrSizes(Vector<Size> &sizes) const;
24100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void setPreviewFpsRange(int minFPS,int maxFPS);
24200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang	void setPreviewFrameRateMode(const char *mode);
24300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    const char *getPreviewFrameRateMode() const;
24400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void setTouchIndexAec(int x, int y);
24500bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void getTouchIndexAec(int *x, int *y) const;
24600bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void setTouchIndexAf(int x, int y);
24700bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void getTouchIndexAf(int *x, int *y) const;
24800bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang    void getMeteringAreaCenter(int * x, int *y) const;
24900bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
25000bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang};
25100bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
25200bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang}; // namespace android
25300bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang
25400bf2d2f8f42f81436d1eaa7e0672817eb834994Shuzhen Wang#endif
255