13d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel/*
22896d129511c499aef15b8162df05fa299860f59Thierry Strudel** Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
33d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** Not a Contribution. Apache license notifications and license are
43d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** retained for attribution purposes only.
53d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel**
63d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** Copyright 2008, The Android Open Source Project
73d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** Licensed under the Apache License, Version 2.0 (the "License");
83d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** you may not use this file except in compliance with the License.
93d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** You may obtain a copy of the License at
103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel**
113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel**     http://www.apache.org/licenses/LICENSE-2.0
123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel**
133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** Unless required by applicable law or agreed to in writing, software
143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** distributed under the License is distributed on an "AS IS" BASIS,
153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** See the License for the specific language governing permissions and
173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel** limitations under the License.
183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel*/
193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifndef ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define ANDROID_HARDWARE_QCAMERA_PARAMETERS_H
223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel// To remove
243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <cutils/properties.h>
253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel// System dependencies
27d4caeb73e33ec364ec36c62e2f37ba65316f7d75Jiyong Park#include <CameraParameters.h>
283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <utils/Errors.h>
293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel// Camera dependencies
313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "camera.h"
323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "QCameraMem.h"
333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "QCameraParametersIntf.h"
343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "QCameraThermalAdapter.h"
353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "QCameraCommon.h"
36c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel#include "QCameraFOVControl.h"
373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelextern "C" {
393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "mm_jpeg_interface.h"
403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}
413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
42d4caeb73e33ec364ec36c62e2f37ba65316f7d75Jiyong Parkusing ::android::hardware::camera::common::V1_0::helper::CameraParameters;
43d4caeb73e33ec364ec36c62e2f37ba65316f7d75Jiyong Parkusing ::android::hardware::camera::common::V1_0::helper::Size;
443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelusing namespace android;
453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelnamespace qcamera {
473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel//EXIF globals
493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelstatic const char ExifAsciiPrefix[] = { 0x41, 0x53, 0x43, 0x49, 0x49, 0x0, 0x0, 0x0 };          // "ASCII\0\0\0"
503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelstatic const char ExifUndefinedPrefix[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };   // "\0\0\0\0\0\0\0\0"
513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define FOCAL_LENGTH_DECIMAL_PRECISION   100
533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define CAMERA_MIN_BATCH_COUNT           4
553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define QCAMERA_MAX_EXP_TIME_LEVEL1      100
573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define QCAMERA_MAX_EXP_TIME_LEVEL2      500
583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define QCAMERA_MAX_EXP_TIME_LEVEL3      1000
593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define QCAMERA_MAX_EXP_TIME_LEVEL4      10000
603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelclass QCameraParameters: private CameraParameters
623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel{
633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelprivate:
653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    class QCameraReprocScaleParam{
673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    public:
683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        QCameraReprocScaleParam();
703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        ~QCameraReprocScaleParam();
713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        void setScaleEnable(bool enabled);
733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        int32_t setScaleSizeTbl(size_t scale_cnt,
743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                cam_dimension_t *scale_tbl, size_t org_cnt,
753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                cam_dimension_t *org_tbl);
763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        int32_t setValidatePicSize(int &width, int &height);
773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool isScaleEnabled();
793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool isUnderScaling();
803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t getScaleSizeTblCnt();
823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t *getScaledSizeTbl();
833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t getTotalSizeTblCnt();
843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t *getTotalSizeTbl();
853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        int32_t getPicSizeFromAPK(int &width, int &height);
863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        int32_t getPicSizeSetted(int &width, int &height);
873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    private:
893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool isScalePicSize(int width, int height);
903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool isValidatePicSize(int width, int height);
913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        int32_t setSensorSupportedPicSize();
923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t checkScaleSizeTable(size_t scale_cnt, cam_dimension_t *scale_tbl,
933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                size_t org_cnt, cam_dimension_t *org_tbl);
943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool mScaleEnabled;
963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool mIsUnderScaling;   //if in scale status
973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        // picture size cnt that need scale operation
993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t mNeedScaleCnt;
1003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t mNeedScaledSizeTbl[MAX_SCALE_SIZES_CNT];
1013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        // sensor supported size cnt and table
1033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t mSensorSizeTblCnt;
1043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t *mSensorSizeTbl;
1053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        // Total size cnt (sensor supported + need scale cnt)
1073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        size_t mTotalSizeTblCnt;
1083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t mTotalSizeTbl[MAX_SIZES_CNT];
1093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t mPicSizeFromAPK;   // dimension that APK is expected
1113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_dimension_t mPicSizeSetted;    // dimension that config vfe
1123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    };
1133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Supported PREVIEW/RECORDING SIZES IN HIGH FRAME RATE recording, sizes in pixels.
1153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Example value: "800x480,432x320". Read only.
1163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_HFR_SIZES[];
1173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // The mode of preview frame rate.
1183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Example value: "frame-rate-auto, frame-rate-fixed".
1193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_PREVIEW_FRAME_RATE_MODE[];
1203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_PREVIEW_FRAME_RATE_MODES[];
1213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_PREVIEW_FRAME_RATE_AUTO_MODE[];
1223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_PREVIEW_FRAME_RATE_FIXED_MODE[];
1233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] ;
1243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Supported live snapshot sizes
1263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_LIVESNAPSHOT_SIZES[];
1273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Supported Raw formats
1293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_RAW_FORMATS[];
1303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_RAW_FORMAT[];
1313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Touch Af/AEC settings.
1333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TOUCH_AF_AEC[];
1343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_TOUCH_AF_AEC[];
1353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Touch Index for AEC.
1363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TOUCH_INDEX_AEC[];
1373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Touch Index for AF.
1383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TOUCH_INDEX_AF[];
1393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Current auto scene detection mode.
1403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Example value: "off" or "on" constants. Read/write.
1413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SCENE_DETECT[];
1423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Supported auto scene detection settings.
1433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Example value: "off,on". Read only.
1443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_SCENE_DETECT[];
1453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SELECTABLE_ZONE_AF[];
1463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ISO_MODE[];
1483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CONTINUOUS_ISO[];
1493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_ISO[];
1503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_ISO[];
1513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_ISO_MODES[];
1523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_EXPOSURE_TIME[];
1533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_EXPOSURE_TIME[];
1543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_EXPOSURE_TIME[];
1553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_LENSSHADE[] ;
1563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_LENSSHADE_MODES[] ;
1573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_AUTO_EXPOSURE[];
1583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_AUTO_EXPOSURE[];
1593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_GPS_LATITUDE_REF[];
1613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_GPS_LONGITUDE_REF[];
1623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_GPS_ALTITUDE_REF[];
1633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_GPS_STATUS[];
1643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MEMORY_COLOR_ENHANCEMENT[];
1653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_MEM_COLOR_ENHANCE_MODES[];
1663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_DIS[];
1673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_OIS[];
1683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_DIS_MODES[];
1693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_OIS_MODES[];
1703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ZSL[];
1723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_ZSL_MODES[];
1733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ZSL_BURST_INTERVAL[];
1743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ZSL_BURST_LOOKBACK[];
1753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ZSL_QUEUE_DEPTH[];
1763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CAMERA_MODE[];
1783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ORIENTATION[];
1793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_HIGH_FRAME_RATE[];
1813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_HIGH_SPEED_RECORDING[];
1823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[];
1833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_HIGH_DYNAMIC_RANGE_IMAGING[];
1843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_HDR_IMAGING_MODES[];
1853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_AE_BRACKET_HDR[];
1863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_AE_BRACKET_MODES[];
1873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CAPTURE_BURST_EXPOSURE[];
1883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_NUM_SNAPSHOT_PER_SHUTTER[];
1893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_NUM_RETRO_BURST_PER_SHUTTER[];
1903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SNAPSHOT_BURST_LED_ON_PERIOD[];
1913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SNAPSHOT_BURST_NUM[];
1923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_NO_DISPLAY_MODE[];
1933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_RAW_PICUTRE_SIZE[];
1943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TINTLESS_ENABLE[];
1953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SCENE_SELECTION[];
1963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CDS_MODE[];
1973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_CDS_MODE[];
1983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_CDS_MODES[];
1993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_VIDEO_CDS_MODES[];
2003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TNR_MODE[];
2013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_TNR_MODE[];
2023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_TNR_MODES[];
2033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_VIDEO_TNR_MODES[];
2043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_INTERNAL_PERVIEW_RESTART[];
2063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_WB_MANUAL_CCT[];
2073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_WB_CCT[];
2083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_WB_CCT[];
2093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MANUAL_WB_GAINS[];
2103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_WB_GAIN[];
2113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_WB_GAIN[];
2123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char WHITE_BALANCE_MANUAL[];
2133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FOCUS_MODE_MANUAL_POSITION[];
2143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_LONG_SHOT[];
2153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INITIAL_EXPOSURE_INDEX[];
2163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_AEC[];
2173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_CAPTURE[];
2183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_AEC_SUPPORTED_MODES[];
2193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_CAPTURE_SUPPORTED_MODES[];
2203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MANUAL_FOCUS_POSITION[];
2223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MANUAL_FOCUS_POS_TYPE[];
2233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_FOCUS_POS_INDEX[];
2243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_FOCUS_POS_INDEX[];
2253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_FOCUS_POS_DAC[];
2263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_FOCUS_POS_DAC[];
2273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_FOCUS_POS_RATIO[];
2283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_FOCUS_POS_RATIO[];
2293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_FOCUS_POS_DIOPTER[];
2303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_FOCUS_POS_DIOPTER[];
2313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FOCUS_POSITION_SCALE[];
2323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FOCUS_POSITION_DIOPTER[];
2333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_MANUAL_FOCUS_MODES[];
2353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_MANUAL_EXPOSURE_MODES[];
2363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_MANUAL_WB_MODES[];
2373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FOCUS_SCALE_MODE[];
2383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FOCUS_DIOPTER_MODE[];
2393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ISO_PRIORITY[];
2403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_EXP_TIME_PRIORITY[];
2413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_USER_SETTING[];
2423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_WB_CCT_MODE[];
2433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_WB_GAIN_MODE[];
2443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MANUAL_WB_TYPE[];
2453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MANUAL_WB_VALUE[];
2463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CURRENT_EXPOSURE_TIME[];
2473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CURRENT_ISO[];
2483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CACHE_VIDEO_BUFFERS[];
2493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // DENOISE
2513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_DENOISE[];
2523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_DENOISE[];
2533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Selectable zone AF.
2553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FOCUS_ALGO[];
2563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_FOCUS_ALGOS[];
2573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Face Detection
2593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FACE_DETECTION[];
2603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_FACE_DETECTION[];
2613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Face Recognition
2633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_FACE_RECOGNITION[];
2643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_FACE_RECOGNITION[];
2653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Indicates number of faces requested by the application.
2673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //This value will be rejected if the requested faces
2683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //greater than supported by hardware.
2693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Write only.
2703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_NUM_REQUESTED_FACES[];
2713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //preview flip
2733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_PREVIEW_FLIP[];
2743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //video flip
2753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_FLIP[];
2763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //snapshot picture flip
2773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SNAPSHOT_PICTURE_FLIP[];
2783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_FLIP_MODES[];
2803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Face Detection, Facial processing requirement
2823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SNAPSHOT_FD_DATA[];
2833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Auto HDR enable
2853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_AUTO_HDR_ENABLE[];
2863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // video rotation
2873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_ROTATION[];
2883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_VIDEO_ROTATION_VALUES[];
2893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Redeye Reduction
2913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_REDEYE_REDUCTION[];
2923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_REDEYE_REDUCTION[];
2933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char EFFECT_EMBOSS[];
2943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char EFFECT_SKETCH[];
2953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char EFFECT_NEON[];
2963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char EFFECT_BEAUTY[];
2973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
2983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //AF Bracketing
2993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_AF_BRACKET[];
3003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_AF_BRACKET_MODES[];
3013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Refocus
3033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_RE_FOCUS[];
3043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_RE_FOCUS_MODES[];
3053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Chroma Flash
3073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CHROMA_FLASH[];
3083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_CHROMA_FLASH_MODES[];
3093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Opti Zoom
3113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_OPTI_ZOOM[];
3123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_OPTI_ZOOM_MODES[];
3133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Auto HDR supported
3153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_AUTO_HDR_SUPPORTED[];
3163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // HDR modes
3183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_HDR_MODE[];
3193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_KEY_QC_HDR_MODES[];
3203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //True Portrait
3223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_TRUE_PORTRAIT[];
3233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_TRUE_PORTRAIT_MODES[];
3243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //See more
3263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SEE_MORE[];
3273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_SEE_MORE_MODES[];
3283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Still more
3303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_STILL_MORE[];
3313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_STILL_MORE_MODES[];
3323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Noise reduction mode
3343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_NOISE_REDUCTION_MODE[];
3353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_NOISE_REDUCTION_MODE_VALUES[];
3363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Longshot
3383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_LONGSHOT_SUPPORTED[];
3393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //ZSL+HDR
3413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_ZSL_HDR_SUPPORTED[];
3423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Touch AF/AEC
3443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char TOUCH_AF_AEC_OFF[];
3453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char TOUCH_AF_AEC_ON[];
3463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Scene mode
3483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SCENE_MODE_ASD[];
3493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SCENE_MODE_BACKLIGHT[];
3503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SCENE_MODE_FLOWERS[];
3513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SCENE_MODE_AR[];
3523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SCENE_MODE_HDR[];
3533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char PIXEL_FORMAT_YUV420SP_ADRENO[]; // ADRENO
3543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char PIXEL_FORMAT_YV12[]; // NV12
3553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char PIXEL_FORMAT_NV12[]; //NV12
3563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_NV12_VENUS[]; //NV12 VENUS
3573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
3583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for raw picture format
3593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_YUYV[];
3603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_YVYU[];
3613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_UYVY[];
3623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_VYUY[];
3633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GBRG[];
3643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GRBG[];
3653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8RGGB[];
3663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8BGGR[];
3673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GBRG[];
3683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GRBG[];
3693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10RGGB[];
3703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10BGGR[];
3713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GBRG[];
3723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GRBG[];
3733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12RGGB[];
3743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12BGGR[];
3753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_14GBRG[];
3763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_14GRBG[];
3773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_14RGGB[];
3783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_14BGGR[];
3793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GBRG[];
3803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GRBG[];
3813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8RGGB[];
3823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8BGGR[];
3833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GBRG[];
3843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GRBG[];
3853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10RGGB[];
3863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10BGGR[];
3873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GBRG[];
3883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GRBG[];
3893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12RGGB[];
3903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12BGGR[];
3913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_14GBRG[];
3923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_14GRBG[];
3933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_14RGGB[];
3943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_14BGGR[];
3953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GBRG[];
3963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GRBG[];
3973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8RGGB[];
3983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8BGGR[];
3993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GBRG[];
4003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GRBG[];
4013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10RGGB[];
4023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10BGGR[];
4033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GBRG[];
4043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GRBG[];
4053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12RGGB[];
4063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12BGGR[];
4073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_14GBRG[];
4083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_14GRBG[];
4093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_14RGGB[];
4103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_14BGGR[];
4113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GBRG[];
4123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GRBG[];
4133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8RGGB[];
4143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8BGGR[];
4153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GBRG[];
4163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GRBG[];
4173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10RGGB[];
4183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10BGGR[];
4193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GBRG[];
4203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GRBG[];
4213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12RGGB[];
4223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12BGGR[];
4233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_14GBRG[];
4243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_14GRBG[];
4253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_14RGGB[];
4263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_14BGGR[];
4273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GBRG[];
4283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GRBG[];
4293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8RGGB[];
4303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8BGGR[];
4313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GBRG[];
4323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GRBG[];
4333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8RGGB[];
4343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8BGGR[];
4353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GBRG[];
4363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GRBG[];
4373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10RGGB[];
4383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10BGGR[];
4393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GBRG[];
4403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GRBG[];
4413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12RGGB[];
4423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12BGGR[];
4433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_14GBRG[];
4443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_14GRBG[];
4453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_14RGGB[];
4463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_14BGGR[];
4473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // ISO values
4493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_AUTO[];
4503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_HJR[];
4513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_100[];
4523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_200[];
4533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_400[];
4543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_800[];
4553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_1600[];
4563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_3200[];
4573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char ISO_MANUAL[];
4583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for auto exposure settings.
4603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_FRAME_AVG[];
4613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_CENTER_WEIGHTED[];
4623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_SPOT_METERING[];
4633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_SMART_METERING[];
4643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_USER_METERING[];
4653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_SPOT_METERING_ADV[];
4663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AUTO_EXPOSURE_CENTER_WEIGHTED_ADV[];
4673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for instant AEC modes
4693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_AEC_DISABLE[];
4703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_AEC_AGGRESSIVE_AEC[];
4713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_AEC_FAST_AEC[];
4723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for instant capture modes
4743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_CAPTURE_DISABLE[];
4753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_CAPTURE_AGGRESSIVE_AEC[];
4763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_INSTANT_CAPTURE_FAST_AEC[];
4773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SHARPNESS[];
4793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_SHARPNESS[];
4803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_SHARPNESS[];
4813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SHARPNESS_STEP[];
4823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CONTRAST[];
4833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_CONTRAST[];
4843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_CONTRAST[];
4853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_CONTRAST_STEP[];
4863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SATURATION[];
4873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_SATURATION[];
4883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_SATURATION[];
4893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SATURATION_STEP[];
4903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_BRIGHTNESS[];
4913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_BRIGHTNESS[];
4923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_BRIGHTNESS[];
4933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_BRIGHTNESS_STEP[];
4943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SCE_FACTOR[];
4953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MIN_SCE_FACTOR[];
4963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_MAX_SCE_FACTOR[];
4973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SCE_FACTOR_STEP[];
4983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
4993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_HISTOGRAM[] ;
5003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_HISTOGRAM_MODES[] ;
5013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_HDR_NEED_1X[];
5023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_HDR_NEED_1X[];
5033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_HDR[];
5043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VT_ENABLE[];
5053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_VIDEO_HDR_MODES[];
5063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SENSOR_HDR[];
5073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_SENSOR_HDR_MODES[];
5083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_RDI_MODE[];
5093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_RDI_MODES[];
5103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SECURE_MODE[];
5113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_SUPPORTED_SECURE_MODES[];
5123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for SKIN TONE ENHANCEMENT
5143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SKIN_TONE_ENHANCEMENT_ENABLE[] ;
5153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char SKIN_TONE_ENHANCEMENT_DISABLE[] ;
5163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Denoise
5183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char DENOISE_OFF[] ;
5193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char DENOISE_ON[] ;
5203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for auto exposure settings.
5223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FOCUS_ALGO_AUTO[];
5233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FOCUS_ALGO_SPOT_METERING[];
5243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FOCUS_ALGO_CENTER_WEIGHTED[];
5253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FOCUS_ALGO_FRAME_AVERAGE[];
5263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for AE Bracketing settings.
5283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AE_BRACKET_OFF[];
5293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AE_BRACKET[];
5303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for AF Bracketing settings.
5323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AF_BRACKET_OFF[];
5333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char AF_BRACKET_ON[];
5343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Refocus settings.
5363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char RE_FOCUS_OFF[];
5373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char RE_FOCUS_ON[];
5383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Chroma Flash settings.
5403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char CHROMA_FLASH_OFF[];
5413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char CHROMA_FLASH_ON[];
5423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Opti Zoom settings.
5443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char OPTI_ZOOM_OFF[];
5453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char OPTI_ZOOM_ON[];
5463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Still More settings.
5483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char STILL_MORE_OFF[];
5493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char STILL_MORE_ON[];
5503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for HDR mode settings.
5523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char HDR_MODE_SENSOR[];
5533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char HDR_MODE_MULTI_FRAME[];
5543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for True Portrait settings.
5563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char TRUE_PORTRAIT_OFF[];
5573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char TRUE_PORTRAIT_ON[];
5583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for HFR settings.
5603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_OFF[];
5613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_2X[];
5623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_3X[];
5633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_4X[];
5643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_5X[];
5653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_6X[];
5663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_7X[];
5673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_8X[];
5683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_HFR_9X[];
5693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for feature on/off settings.
5713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_OFF[];
5723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_ON[];
5733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for feature enable/disable settings.
5753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_ENABLE[];
5763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_DISABLE[];
5773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for feature true/false settings.
5793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_FALSE[];
5803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_TRUE[];
5813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Values for flip settings
5833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FLIP_MODE_OFF[];
5843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FLIP_MODE_V[];
5853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FLIP_MODE_H[];
5863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char FLIP_MODE_VH[];
5873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //Values for CDS Mode
5893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char CDS_MODE_OFF[];
5903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char CDS_MODE_ON[];
5913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char CDS_MODE_AUTO[];
5923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_FAST[];
5943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VALUE_HIGH_QUALITY[];
5953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_SELECTED_AUTO_SCENE[];
5973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
5983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Values for Video rotation
5993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_ROTATION_0[];
6003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_ROTATION_90[];
6013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_ROTATION_180[];
6023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char VIDEO_ROTATION_270[];
6033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifdef TARGET_TS_MAKEUP
6053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_TS_MAKEUP[];
6063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_TS_MAKEUP_WHITEN[];
6073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_TS_MAKEUP_CLEAN[];
6083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif
6093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    //param key for HFR batch size
6103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const char KEY_QC_VIDEO_BATCH_SIZE[];
6119ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel
6129ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char KEY_QC_SUPPORTED_METADATA_TYPES[];
6139ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char QC_METADATA_ASD[];
6149ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char QC_METADATA_FD[];
6159ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char QC_METADATA_HDR[];
6169ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char QC_METADATA_LED_CALIB[];
6179ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel
6189ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    //Key to enable dual LED calibration
6199ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const char KEY_QC_LED_CALIBRATION[];
6209ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel
6213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    enum {
6223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        CAMERA_ORIENTATION_UNKNOWN = 0,
6233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        CAMERA_ORIENTATION_PORTRAIT = 1,
6243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        CAMERA_ORIENTATION_LANDSCAPE = 2,
6253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    };
6263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    template <typename valueType> struct QCameraMap {
6283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        const char *const desc;
6293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        valueType val;
6303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    };
6313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelpublic:
6333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraParameters();
6343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraParameters(const String8 &params);
6353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    ~QCameraParameters();
6363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
637cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    int32_t allocate(uint8_t bufCount);
6383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t init(cam_capability_t *,
6393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                 mm_camera_vtbl_t *,
640c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel                 QCameraAdjustFPS *,
641c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel                 QCameraFOVControl *);
6423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void deinit();
6433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t initDefaultParameters();
6443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateParameters(const String8& params, bool &needRestart);
6453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t commitParameters();
6463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    char* getParameters();
6483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void getPreviewFpsRange(int *min_fps, int *max_fps) const {
6493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            CameraParameters::getPreviewFpsRange(min_fps, max_fps);
6503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    }
6513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifdef TARGET_TS_MAKEUP
6523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getTsMakeupInfo(int &whiteLevel, int &cleanLevel) const;
6533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif
6543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int getPreviewHalPixelFormat();
656e80ad7c01b6fb44006dc55546b700fca34bb00edThierry Strudel    cam_rotation_t getStreamRotation(cam_stream_type_t streamType);
6573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getStreamRotation(cam_stream_type_t streamType,
6583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                               cam_pp_feature_config_t &featureConfig,
6593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                               cam_dimension_t &dim);
6603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getStreamFormat(cam_stream_type_t streamType,
6613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                             cam_format_t &format);
6629e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel  int32_t getStreamSubFormat(cam_stream_type_t streamType,
6639e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel             cam_sub_format_type_t &sub_format);
6649e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel
6653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getStreamDimension(cam_stream_type_t streamType,
6662896d129511c499aef15b8162df05fa299860f59Thierry Strudel            cam_dimension_t &dim, uint32_t cam_type = MM_CAMERA_TYPE_MAIN);
6673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void getThumbnailSize(int *width, int *height) const;
6683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getZSLBurstInterval();
6713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getZSLQueueDepth();
6723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getZSLBackLookCount();
6733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getMaxUnmatchedFramesInQueue();
6743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isZSLMode() {return m_bZslMode;};
6753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isRdiMode() {return m_bRdiMode;};
6763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isSecureMode() {return m_bSecureMode;};
6779ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    cam_stream_type_t getSecureStreamType() {return mSecureStraemType;};
6783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isNoDisplayMode() {return m_bNoDisplayMode;};
6793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isWNREnabled() {return m_bWNROn;};
6803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isTNRSnapshotEnabled() {return m_bTNRSnapshotOn;};
6813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getCDSMode() {return mCds_mode;};
6823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isLTMForSeeMoreEnabled() {return m_bLtmForSeeMoreEnabled;};
6833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHfrMode() {return m_bHfrMode;};
6843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void getHfrFps(cam_fps_range_t &pFpsRange) { pFpsRange = m_hfrFpsRange;};
6853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfSnapshots();
6863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfRetroSnapshots();
6873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfExtraHDRInBufsIfNeeded();
6883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfExtraHDROutBufsIfNeeded();
6893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
6903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getRecordingHintValue() {return m_bRecordingHint;}; // return local copy of video hint
6913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getJpegQuality();
6923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getRotation();
6933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getDeviceRotation();
6943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getJpegExifRotation();
6953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool useJpegExifRotation();
6963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getEffectValue();
6973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isInstantAECEnabled() {return m_bInstantAEC;};
6983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isInstantCaptureEnabled() {return m_bInstantCapture;};
6993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getAecFrameBoundValue() {return mAecFrameBound;};
7003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getAecSkipDisplayFrameBound() {return mAecSkipDisplayFrameBound;};
7013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifDateTime(String8 &dateTime, String8 &subsecTime);
7033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifFocalLength(rat_t *focalLenght);
7043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint16_t getExifIsoSpeed();
7053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifGpsProcessingMethod(char *gpsProcessingMethod, uint32_t &count);
7063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifLatitude(rat_t *latitude, char *latRef);
7073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifLongitude(rat_t *longitude, char *lonRef);
7083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifAltitude(rat_t *altitude, char *altRef);
7093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getExifGpsDateTimeStamp(char *gpsDateStamp, uint32_t bufLen, rat_t *gpsTimeStamp);
7103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isVideoBuffersCached();
7113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateFocusDistances(cam_focus_distances_info_t *focusDistances);
7123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isAEBracketEnabled();
7143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAEBracketing();
7153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isFpsDebugEnabled() {return m_bDebugFps;};
7163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHistogramEnabled() {return m_bHistogramEnabled;};
7173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isSceneSelectionEnabled() {return m_bSceneSelection;};
7189ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    bool isSmallJpegSizeEnabled() {return m_bSmallJpegSize;};
7193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSelectedScene(cam_scene_mode_type scene);
7203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_scene_mode_type getSelectedScene();
7213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isFaceDetectionEnabled() {return ((m_nFaceProcMask &
7223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            (CAM_FACE_PROCESS_MASK_DETECTION | CAM_FACE_PROCESS_MASK_FOCUS)) != 0);};
7233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFaceDetectionOption(bool enabled);
7243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHistogram(bool enabled);
7253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFaceDetection(bool enabled, bool initCommit);
7263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFrameSkip(enum msm_vfe_frame_skip_pattern pattern);
7273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    qcamera_thermal_mode getThermalMode() {return m_ThermalMode;};
7283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateRecordingHintValue(int32_t value);
7293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHDRAEBracket(cam_exp_bracketing_t hdrBracket);
7303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHDREnabled();
7313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isAutoHDREnabled();
7323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t stopAEBracket();
7333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateRAW(cam_dimension_t max_dim);
734cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    bool isAVTimerEnabled();
7353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isDISEnabled();
7369e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    int32_t setISType();
7379ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    void setSmallJpegSize(cam_dimension_t sensor_dim, cam_dimension_t snap_dim);
7389ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    int32_t updateSnapshotPpMask(cam_stream_size_info_t &stream_config_info);
7392896d129511c499aef15b8162df05fa299860f59Thierry Strudel    int32_t getSensorOutputSize(cam_dimension_t max_dim, cam_dimension_t &sensor_dim,
7402896d129511c499aef15b8162df05fa299860f59Thierry Strudel            uint32_t cam_type = MM_CAMERA_TYPE_MAIN);
7419e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    cam_is_type_t getVideoISType();
7423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_is_type_t getPreviewISType();
7433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getMobicatMask();
7443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_focus_mode_type getFocusMode() const {return mFocusMode;};
7463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setNumOfSnapshot();
7473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t adjustPreviewFpsRange(cam_fps_range_t *fpsRange);
7483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isJpegPictureFormat() {return (mPictureFormat == CAM_FORMAT_JPEG);};
7493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isNV16PictureFormat() {return (mPictureFormat == CAM_FORMAT_YUV_422_NV16);};
7503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isNV21PictureFormat() {return (mPictureFormat == CAM_FORMAT_YUV_420_NV21);};
7513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_denoise_process_type_t getDenoiseProcessPlate(cam_intf_parm_type_t type);
7523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getMaxPicSize(cam_dimension_t &dim) { dim = m_maxPicSize; return NO_ERROR; };
7533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int getFlipMode(cam_stream_type_t streamType);
7543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isSnapshotFDNeeded();
7553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHDR1xFrameEnabled() {return m_bHDR1xFrameEnabled;}
7573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isSupportedSensorHdrSize(const QCameraParameters& params);
7583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isYUVFrameInfoNeeded();
7593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    const char*getFrameFmtString(cam_format_t fmt);
7603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHDR1xExtraBufferNeeded() {return m_bHDR1xExtraBufferNeeded;}
7613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHDROutputCropEnabled() {return m_bHDROutputCropEnabled;}
7623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isPreviewFlipChanged() { return m_bPreviewFlipChanged; };
7643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isVideoFlipChanged() { return m_bVideoFlipChanged; };
7653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isSnapshotFlipChanged() { return m_bSnapshotFlipChanged; };
76654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    bool isZoomChanged() { return m_bZoomChanged; };
7673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setHDRSceneEnable(bool bflag);
7683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateAWBParams(cam_awb_params_t &awb_params);
7693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    const char *getASDStateString(cam_auto_scene_t scene);
7713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isHDRThumbnailProcessNeeded() { return m_bHDRThumbnailProcessNeeded; };
7723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setMinPpMask(cam_feature_mask_t min_pp_mask) { m_nMinRequiredPpMask = min_pp_mask; };
7733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool setStreamConfigure(bool isCapture, bool previewAsPostview, bool resetConfig);
7743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t addOnlineRotation(uint32_t rotation, uint32_t streamId, int32_t device_rotation);
7753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfExtraBuffersForImageProc();
7763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfExtraBuffersForVideo();
7773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getNumOfExtraBuffersForPreview();
7783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getExifBufIndex(uint32_t captureIndex);
7793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool needThumbnailReprocess(cam_feature_mask_t *pFeatureMask);
7803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isUbiFocusEnabled() {return m_bAFBracketingOn && !m_bReFocusOn;};
7813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isChromaFlashEnabled() {return m_bChromaFlashOn;};
7823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isHighQualityNoiseReductionMode() {return m_bHighQualityNoiseReductionMode;};
7833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isTruePortraitEnabled() {return m_bTruePortraitOn;};
7843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline size_t getTPMaxMetaSize() {
7853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        return m_pCapability->true_portrait_settings_need.meta_max_size;};
7863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isSeeMoreEnabled() {return m_bSeeMoreOn;};
7873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isStillMoreEnabled() {return m_bStillMoreOn;};
7883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isOptiZoomEnabled();
7893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
7903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t commitAFBracket(cam_af_bracketing_t afBracket);
7913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t set3ALock(bool lock3A);
7923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAndCommitZoom(int zoom_level);
7933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getBurstCountForAdvancedCapture();
7943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getNumberInBufsForSingleShot();
7953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getNumberOutBufsForSingleShot();
7963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setLongshotEnable(bool enable);
7973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 dump();
7983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isUbiRefocus() {return m_bReFocusOn &&
7993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            (m_pCapability->refocus_af_bracketing_need.output_count > 1);};
8003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline uint32_t getRefocusMaxMetaSize() {
8013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            return m_pCapability->refocus_af_bracketing_need.meta_max_size;};
8023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline uint8_t getRefocusOutputCount() {
8033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            return m_pCapability->refocus_af_bracketing_need.output_count;};
8043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool generateThumbFromMain() {return isUbiFocusEnabled() ||
8053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            isChromaFlashEnabled() || isOptiZoomEnabled() || isUbiRefocus()
8063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            || isHDREnabled() || isStillMoreEnabled() || isTruePortraitEnabled(); }
8073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void updateCurrentFocusPosition(cam_focus_pos_info_t &cur_pos_info);
8083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void updateAEInfo(cam_3a_params_t &ae_params);
8093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isAdvCamFeaturesEnabled() {return isUbiFocusEnabled() ||
8103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            isChromaFlashEnabled() || m_bOptiZoomOn || isHDREnabled() ||
8113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            isAEBracketEnabled() || isStillMoreEnabled() || isUbiRefocus();}
8123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAecLock(const char *aecStr);
8133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateDebugLevel();
8143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool is4k2kVideoResolution();
8153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isUBWCEnabled();
8163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int getBrightness();
8183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateOisValue(bool oisValue);
8193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setIntEvent(cam_int_evt_params_t params);
8203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getofflineRAW() {return mOfflineRAW;}
8219e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    bool getQuadraCfa();
8223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updatePpFeatureMask(cam_stream_type_t stream_type);
8233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getStreamPpMask(cam_stream_type_t stream_type, cam_feature_mask_t &pp_mask);
8243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getSharpness() {return m_nSharpness;};
8253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getEffect() {return mParmEffect;};
8263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateFlashMode(cam_flash_mode_t flash_mode);
8273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configureAEBracketing(cam_capture_frame_config_t &frame_config);
8283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configureHDRBracketing(cam_capture_frame_config_t &frame_config);
8293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configFrameCapture(bool commitSettings);
83004e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    int32_t resetFrameCapture(bool commitSettings, bool lowLightEnabled);
8313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_still_more_t getStillMoreSettings() {return m_stillmore_config;};
8323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setStillMoreSettings(cam_still_more_t stillmore_config)
8333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            {m_stillmore_config = stillmore_config;};
8343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_still_more_t getStillMoreCapability()
8353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            {return m_pCapability->stillmore_settings_need;};
8363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_dyn_img_data_t getDynamicImgData() { return m_DynamicImgData; }
8373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setDynamicImgData(cam_dyn_img_data_t d) { m_DynamicImgData = d; }
8383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getParmZoomLevel(){return mParmZoomLevel;};
8403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t  getReprocCount(){return mTotalPPCount;};
8413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isMultiPassReprocessing();
8423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t  getCurPPCount(){return mCurPPCount;};
8433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void    setReprocCount();
8443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool    isPostProcScaling();
8453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool    isLLNoiseEnabled();
8463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void    setCurPPCount(int8_t count) {mCurPPCount = count;};
84704e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel    int32_t setQuadraCfaMode(uint32_t value, bool initCommit);
8483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setToneMapMode(uint32_t value, bool initCommit);
8493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setTintless(bool enable);
8503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t getLongshotStages();
8513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t  getBufBatchCount() {return mBufBatchCnt;};
8523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t  getVideoBatchSize() {return mVideoBatchSize;};
8533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setManualCaptureMode(
8553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            QCameraManualCaptureModes value = CAM_MANUAL_CAPTURE_TYPE_OFF);
8563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraManualCaptureModes getManualCaptureMode()
8573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            {return m_ManualCaptureMode;};
8583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int64_t getExposureTime() {return m_expTime;};
8593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_capture_frame_config_t getCaptureFrameConfig()
8613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            { return m_captureFrameConfig; };
8623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setJpegRotation(int rotation);
8633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t getJpegRotation() { return mJpegRotation;};
8643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setLowLightLevel(cam_low_light_mode_t value)
8663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            { m_LowLightLevel = value; };
8673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_low_light_mode_t getLowLightLevel() {return m_LowLightLevel;};
8683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getLowLightCapture() { return m_LLCaptureEnabled; };
8693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    /* Dual camera specific */
871295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    int32_t sendDualCamCmd(cam_dual_camera_cmd_type type,
872295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel            uint8_t num_cam, void *info);
873295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    int32_t setDualCamBundleInfo(bool enable_sync,
874295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel            uint8_t bundle_cam_idx);
8753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getDcrf() { return m_bDcrfEnabled; }
8763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRelatedCamSyncInfo(
8773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            cam_sync_related_sensors_event_info_t* info);
8783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    const cam_sync_related_sensors_event_info_t*
8793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            getRelatedCamSyncInfo(void);
8803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFrameSyncEnabled(bool enable);
8813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isFrameSyncEnabled(void);
8823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getRelatedCamCalibration(
8833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            cam_related_system_calibration_data_t* calib);
884295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    int32_t bundleRelatedCameras(bool sync);
8853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t fdModeInVideo();
8863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isOEMFeatEnabled() { return m_bOEMFeatEnabled; }
8879ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    uint8_t isOEMFeatFrameSkipEnabled();
8883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setZslMode(bool value);
8903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateZSLModeValue(bool value);
8913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isReprocScaleEnabled();
8933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isUnderReprocScaling();
8943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getPicSizeFromAPK(int &width, int &height);
8953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t checkFeatureConcurrency();
8973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setInstantAEC(uint8_t enable, bool initCommit);
8983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
8993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getAnalysisInfo(
9003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        bool fdVideoEnabled,
9013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_feature_mask_t featureMask,
9023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel        cam_analysis_info_t *pAnalysisInfo);
9039e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel
9049e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    int32_t getMetaRawInfo();
9059e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    bool sendStreamConfigForPickRes(cam_stream_size_info_t &stream_config_info);
9069e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    int32_t updateDtVc(int32_t *dt, int32_t *vc);
9072896d129511c499aef15b8162df05fa299860f59Thierry Strudel    bool isLinkPreviewForLiveShot();
9089e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel
909cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    int32_t SetDualCamera(bool value);
910cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    bool isDualCamera() {return m_bDualCamera;};
911295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    int32_t setCameraControls(int32_t controls);
9122896d129511c499aef15b8162df05fa299860f59Thierry Strudel    cam_dual_camera_perf_mode_t getLowPowerMode(cam_sync_type_t cam);
9132896d129511c499aef15b8162df05fa299860f59Thierry Strudel    int32_t setSwitchCamera(uint32_t camMaster);
9149ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    int32_t setDeferCamera(cam_dual_camera_defer_cmd_t type);
91554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    void setBundledSnapshot(bool value) { mbundledSnapshot = value; }
9169ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    int32_t getDualLedCalibration() {return m_dualLedCalibration;};
9172896d129511c499aef15b8162df05fa299860f59Thierry Strudel    bool isDCmAsymmetricSnapMode (){return mAsymmetricSnapMode;};
9183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelprivate:
9193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPreviewSize(const QCameraParameters& );
9203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVideoSize(const QCameraParameters& );
9213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPictureSize(const QCameraParameters& );
9223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setLiveSnapshotSize(const QCameraParameters& );
9233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPreviewFormat(const QCameraParameters& );
9243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPictureFormat(const QCameraParameters& );
9253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setOrientation(const QCameraParameters& );
9263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setJpegThumbnailSize(const QCameraParameters& );
9273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setJpegQuality(const QCameraParameters& );
9283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPreviewFpsRange(const QCameraParameters& );
9293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPreviewFrameRate(const QCameraParameters& );
9303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAutoExposure(const QCameraParameters& );
9313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setEffect(const QCameraParameters& );
9323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setBrightness(const QCameraParameters& );
9333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusMode(const QCameraParameters& );
9343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusPosition(const QCameraParameters& );
9353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSharpness(const QCameraParameters& );
9363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSaturation(const QCameraParameters& );
9373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setContrast(const QCameraParameters& );
9383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSkinToneEnhancement(const QCameraParameters& );
9393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSceneDetect(const QCameraParameters& );
9403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVideoHDR(const QCameraParameters& );
9413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVtEnable(const QCameraParameters& );
9423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setZoom(const QCameraParameters& );
9433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setISOValue(const QCameraParameters& );
9443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setContinuousISO(const QCameraParameters& );
9453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setExposureTime(const QCameraParameters& );
9463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRotation(const QCameraParameters& );
9473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVideoRotation(const QCameraParameters& );
9483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFlash(const QCameraParameters& );
9493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAecLock(const QCameraParameters& );
9503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAwbLock(const QCameraParameters& );
9513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMCEValue(const QCameraParameters& );
9523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setDISValue(const QCameraParameters& params);
9533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setLensShadeValue(const QCameraParameters& );
9543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setExposureCompensation(const QCameraParameters& );
9553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setWhiteBalance(const QCameraParameters& );
9563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setManualWhiteBalance(const QCameraParameters& );
9573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAntibanding(const QCameraParameters& );
9583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusAreas(const QCameraParameters& );
9593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMeteringAreas(const QCameraParameters& );
9603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSceneMode(const QCameraParameters& );
9613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSelectableZoneAf(const QCameraParameters& );
9623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAEBracket(const QCameraParameters& );
9633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAFBracket(const QCameraParameters& );
9643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setReFocus(const QCameraParameters& );
9653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setChromaFlash(const QCameraParameters& );
9663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setOptiZoom(const QCameraParameters& );
9673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHDRMode(const QCameraParameters& );
9683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHDRNeed1x(const QCameraParameters& );
9693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setTruePortrait(const QCameraParameters& );
9703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSeeMore(const QCameraParameters& );
9713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setStillMore(const QCameraParameters& );
9729e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel#ifdef TARGET_TS_MAKEUP
9739e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    int32_t setTsMakeup(const QCameraParameters& );
9749e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel#endif
9753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setNoiseReductionMode(const QCameraParameters& );
9763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRedeyeReduction(const QCameraParameters& );
9773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setGpsLocation(const QCameraParameters& );
9783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRecordingHint(const QCameraParameters& );
9793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setNoDisplayMode(const QCameraParameters& );
9803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setWaveletDenoise(const QCameraParameters& );
9813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setTemporalDenoise(const QCameraParameters&);
9823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setZslMode(const QCameraParameters& );
9833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setZslAttributes(const QCameraParameters& );
9843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAutoHDR(const QCameraParameters& params);
9853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCameraMode(const QCameraParameters& );
9863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSceneSelectionMode(const QCameraParameters& params);
9873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFaceRecognition(const QCameraParameters& );
9883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFlip(const QCameraParameters& );
9893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRetroActiveBurstNum(const QCameraParameters& params);
9903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setBurstLEDOnPeriod(const QCameraParameters& params);
9913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSnapshotFDReq(const QCameraParameters& );
9923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setStatsDebugMask();
9933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPAAF();
9943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setTintlessValue(const QCameraParameters& params);
9953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCDSMode(const QCameraParameters& params);
9963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setInitialExposureIndex(const QCameraParameters& params);
9973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setInstantCapture(const QCameraParameters& params);
9983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setInstantAEC(const QCameraParameters& params);
9993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMobicat(const QCameraParameters& params);
10003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRdiMode(const QCameraParameters& );
10013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSecureMode(const QCameraParameters& );
10023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCacheVideoBuffers(const QCameraParameters& params);
10033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCustomParams(const QCameraParameters& params);
10043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAutoExposure(const char *autoExp);
10053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setPreviewFpsRange(int min_fps,int max_fps,
10063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            int vid_min_fps,int vid_max_fps);
10073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setEffect(const char *effect);
10083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setBrightness(int brightness);
10093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusMode(const char *focusMode);
10103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusPosition(const char *typeStr, const char *posStr);
10113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSharpness(int sharpness);
10123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSaturation(int saturation);
10133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setContrast(int contrast);
10143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSkinToneEnhancement(int sceFactor);
10153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSceneDetect(const char *scendDetect);
10163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVideoHDR(const char *videoHDR);
10173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSensorSnapshotHDR(const char *snapshotHDR);
10183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setVtEnable(const char *vtEnable);
10193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setZoom(int zoom_level);
10203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setISOValue(const char *isoValue);
10213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setContinuousISO(const char *isoValue);
10223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setExposureTime(const char *expTimeStr);
10233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFlash(const char *flashStr);
10243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAwbLock(const char *awbStr);
10253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMCEValue(const char *mceStr);
10263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setDISValue(const char *disStr);
10273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHighFrameRate(const int32_t hfrMode);
10283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setLensShadeValue(const char *lensShadeStr);
10293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setExposureCompensation(int expComp);
10303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setWhiteBalance(const char *wbStr);
10313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setWBManualCCT(const char *cctStr);
10323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setManualWBGains(const char *gainStr);
10333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAntibanding(const char *antiBandingStr);
10343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFocusAreas(const char *focusAreasStr);
10353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMeteringAreas(const char *meteringAreasStr);
10363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSceneMode(const char *sceneModeStr);
10373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSelectableZoneAf(const char *selZoneAFStr);
10383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAEBracket(const char *aecBracketStr);
10393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAFBracket(const char *afBracketStr);
10403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setReFocus(const char *reFocusStr);
10413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setChromaFlash(const char *chromaFlashStr);
10423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setOptiZoom(const char *optiZoomStr);
10433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHDRMode(const char *optiZoomStr);
10443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setHDRNeed1x(const char *optiZoomStr);
10453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setTruePortrait(const char *truePortraitStr);
10463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSeeMore(const char *SeeMoreStr);
10473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setStillMore(const char *StillMoreStr);
10483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setNoiseReductionMode(const char *noiseReductionModeStr);
10493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRedeyeReduction(const char *redeyeStr);
10503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setWaveletDenoise(const char *wnrStr);
10513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setFaceRecognition(const char *faceRecog, uint32_t maxFaces);
10523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setTintlessValue(const char *tintStr);
10533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool UpdateHFRFrameRate(const QCameraParameters& params);
10543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRdiMode(const char *str);
10553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setSecureMode(const char *str);
10563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setLongshotParam(const QCameraParameters& params);
10573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t parseGains(const char *gainStr, double &r_gain,
10583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            double &g_gain, double &b_gain);
10593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCacheVideoBuffers(const char *cacheVideoBufStr);
10603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setCDSMode(int32_t cds_mode, bool initCommit);
10613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setEztune();
10623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setLowLightCapture();
10633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int setRecordingHintValue(int32_t value); // set local copy of video hint and send to server
10643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                                              // no change in parameters value
10653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateFlash(bool commitSettings);
10663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setRawSize(cam_dimension_t &dim);
10673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setMaxPicSize(cam_dimension_t &dim) { m_maxPicSize = dim; return NO_ERROR; };
10683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setBufBatchCount(int8_t buf_cnt);
10693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setVideoBatchSize();
10703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setDcrf();
10713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setStreamPpMask(cam_stream_type_t stream_type, cam_feature_mask_t pp_mask);
10723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void setOfflineRAW(bool value = 0);
10739e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    int32_t setQuadraCfa(const QCameraParameters& params);
10743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configureFlash(cam_capture_frame_config_t &frame_config);
10753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configureLowLight(cam_capture_frame_config_t &frame_config);
10763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t configureManualCapture(cam_capture_frame_config_t &frame_config);
10773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
10783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isTNRPreviewEnabled() {return m_bTNRPreviewOn;};
10793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isTNRVideoEnabled() {return m_bTNRVideoOn;};
10803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool getFaceDetectionOption() { return  m_bFaceDetectionOn;}
10813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void getLiveSnapshotSize(cam_dimension_t &dim);
10823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getRawSize(cam_dimension_t &dim) {dim = m_rawSize; return NO_ERROR;};
10833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int getAutoFlickerMode();
10843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool sendStreamConfigInfo(cam_stream_size_info_t &stream_config_info);
10853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    inline bool isLowMemoryDevice() {return m_bIsLowMemoryDevice;};
10863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isPreviewSeeMoreRequired();
10873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool isEztuneEnabled() { return m_bEztuneEnabled; };
10883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getZoomLevel(){return mZoomLevel;};
10893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t parse_pair(const char *str, int *first, int *second,
10903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                       char delim, char **endptr);
10913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void parseSizesList(const char *sizesStr, Vector<Size> &sizes);
10923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t parseNDimVector(const char *str, int *num, int N, char delim);
10933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t parseCameraAreaString(const char *str, int max_num_areas,
10943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel                                  cam_area_t *pAreas, int& num_areas_found);
10953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool validateCameraAreas(cam_area_t *areas, int num_areas);
10963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int parseGPSCoordinate(const char *coord_str, rat_t *coord);
10973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t getRational(rat_t *rat, int num, int denom);
10983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createSizesString(const cam_dimension_t *sizes, size_t len);
10993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createHfrValuesString(const cam_hfr_info_t *values, size_t len,
11003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            const QCameraMap<cam_hfr_mode_t> *map, size_t map_len);
11013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createHfrSizesString(const cam_hfr_info_t *values, size_t len);
11023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createFpsRangeString(const cam_fps_range_t *fps,
11033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel            size_t len, int &default_fps_index);
11043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createFpsString(cam_fps_range_t &fps);
11053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    String8 createZoomRatioValuesString(uint32_t *zoomRatios, size_t length);
11063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setDualLedCalibration(const QCameraParameters& params);
11079ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    int32_t setDualLedCalibration(const char *str);
11083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t setAdvancedCaptureMode();
11093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
11103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // ops for batch set/get params with server
1111cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    int32_t initBatchUpdate();
11123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t commitSetBatch();
11133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t commitGetBatch();
1114cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    int32_t commitSetBatchAux();
1115cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    int32_t commitGetBatchAux();
1116c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel    void    setAuxParameters();
1117cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel
11183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // ops to tempororily update parameter entries and commit
11193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t updateParamEntry(const char *key, const char *value);
11203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t commitParamChanges();
11213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    void updateViewAngles();
11223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
112354dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    //Update Frame Number for super parameter
112454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    int32_t updateFrameNumber();
112554dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    int32_t SyncDCParams();
112654dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    void setSyncDCParams();
11272896d129511c499aef15b8162df05fa299860f59Thierry Strudel    void setAsymmetricSnapMode();
112854dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel
11293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Map from strings to values
11303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const cam_dimension_t THUMBNAIL_SIZES_MAP[];
11313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_auto_exposure_mode_type> AUTO_EXPOSURE_MAP[];
11323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_aec_convergence_type> INSTANT_CAPTURE_MODES_MAP[];
11333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_aec_convergence_type> INSTANT_AEC_MODES_MAP[];
11343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_format_t> PREVIEW_FORMATS_MAP[];
11353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_format_t> PICTURE_TYPES_MAP[];
11363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_focus_mode_type> FOCUS_MODES_MAP[];
11373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_effect_mode_type> EFFECT_MODES_MAP[];
11383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_scene_mode_type> SCENE_MODES_MAP[];
11393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_flash_mode_t> FLASH_MODES_MAP[];
11403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_focus_algorithm_type> FOCUS_ALGO_MAP[];
11413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_wb_mode_type> WHITE_BALANCE_MODES_MAP[];
11423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_antibanding_mode_type> ANTIBANDING_MODES_MAP[];
11433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_iso_mode_type> ISO_MODES_MAP[];
11443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_hfr_mode_t> HFR_MODES_MAP[];
11453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_bracket_mode> BRACKETING_MODES_MAP[];
11463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> ON_OFF_MODES_MAP[];
11473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> ENABLE_DISABLE_MODES_MAP[];
11483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> DENOISE_ON_OFF_MODES_MAP[];
11493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> TRUE_FALSE_MODES_MAP[];
11503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> TOUCH_AF_AEC_MODES_MAP[];
11513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_flip_t> FLIP_MODES_MAP[];
11523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> AF_BRACKETING_MODES_MAP[];
11533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> RE_FOCUS_MODES_MAP[];
11543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> CHROMA_FLASH_MODES_MAP[];
11553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> OPTI_ZOOM_MODES_MAP[];
11563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> TRUE_PORTRAIT_MODES_MAP[];
11573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<cam_cds_mode_type_t> CDS_MODES_MAP[];
11583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> HDR_MODES_MAP[];
11593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> VIDEO_ROTATION_MODES_MAP[];
11603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> SEE_MORE_MODES_MAP[];
11613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> STILL_MORE_MODES_MAP[];
11623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    static const QCameraMap<int> NOISE_REDUCTION_MODES_MAP[];
11639ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    static const QCameraMap<int> METADATA_TYPES_MAP[];
11643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
1165295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    /*Common for all objects*/
1166295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    static uint32_t sessionId[MM_CAMERA_MAX_NUM_SENSORS];
1167295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel
11683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraReprocScaleParam m_reprocScaleParam;
11693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraCommon           mCommon;
11703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
11713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_capability_t *m_pCapability;
11723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    mm_camera_vtbl_t *m_pCamOpsTbl;
11733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraHeapMemory *m_pParamHeap;
11743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    parm_buffer_t     *m_pParamBuf;  // ptr to param buf in m_pParamHeap
1175cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    parm_buffer_t     *m_pParamBufAux;  // ptr to Aux param buf in m_pParamHeap
1176c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel    QCameraFOVControl *m_pFovControl;
11773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    /* heap for mapping dual cam event info */
1178295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    QCameraHeapMemory *m_pDualCamCmdHeap;
1179295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel    cam_dual_camera_cmd_info_t *m_pDualCamCmdPtr[MM_CAMERA_MAX_CAM_CNT];
11803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_sync_related_sensors_event_info_t m_relCamSyncInfo;
11813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bFrameSyncEnabled;
11829e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    cam_is_type_t mIsTypeVideo;
11833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_is_type_t mIsTypePreview;
11843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
11853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bZslMode;                // if ZSL is enabled
11863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bZslMode_new;
11873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bForceZslMode;
11883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bRecordingHint;          // local copy of recording hint
11893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bRecordingHint_new;
11903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHistogramEnabled;       // if histogram is enabled
11913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bLongshotEnabled;       // if longshot is enabled
11923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t m_nFaceProcMask;       // face process mask
11933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bFaceDetectionOn;        //  if face Detection turned on by user
11943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bDebugFps;               // if FPS need to be logged
11953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_focus_mode_type mFocusMode;
11963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_format_t mPreviewFormat;
11973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_format_t mAppPreviewFormat;
11983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mPictureFormat;         // could be CAMERA_PICTURE_TYPE_JPEG or cam_format_t
11993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bNeedRestart;            // if preview needs restart after parameters updated
12003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bNoDisplayMode;
12013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bWNROn;
12023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bTNRPreviewOn;
12033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bTNRVideoOn;
12043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bTNRSnapshotOn;
12053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bInited;
12063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int m_nRetroBurstNum;
12073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int m_nBurstLEDOnPeriod;
12083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_exp_bracketing_t m_AEBracketingClient;
12093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bUpdateEffects;          // Cause reapplying of effects
12103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSceneTransitionAuto;    // Indicate that scene has changed to Auto
12113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bPreviewFlipChanged;        // if flip setting for preview changed
12123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bVideoFlipChanged;          // if flip setting for video changed
12133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSnapshotFlipChanged;       // if flip setting for snapshot changed
121454dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    bool m_bZoomChanged;               // if zoom value changed
12153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bFixedFrameRateSet;      // Indicates that a fixed frame rate is set
12163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    qcamera_thermal_mode m_ThermalMode; // adjust fps vs adjust frameskip
12173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_dimension_t m_LiveSnapshotSize; // live snapshot size
12189e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    cam_dimension_t m_rawSize; // Raw size
12193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_dimension_t m_maxPicSize;
12203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDREnabled;             // if HDR is enabled
12213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bLocalHDREnabled;   // This flag tells whether HDR enabled or not regarless of APP mode
12223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bAVTimerEnabled;    //if AVTimer is enabled
12233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bDISEnabled;
12243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bOISEnabled;
12253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_still_more_t m_stillmore_config;
12269e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    bool m_bMetaRawEnabled;
12273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
12283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t m_MobiMask;
12293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraAdjustFPS *m_AdjustFPS;
12303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDR1xFrameEnabled;          // if frame with exposure compensation 0 during HDR is enabled
12313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_HDRSceneEnabled; // Auto HDR indication
12323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDRThumbnailProcessNeeded;        // if thumbnail need to be processed for HDR
12333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDR1xExtraBufferNeeded;     // if extra frame with exposure compensation 0 during HDR is needed
12343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDROutputCropEnabled;     // if HDR output frame need to be scaled to user resolution
12353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    DefaultKeyedVector<String8,String8> m_tempMap; // map for temororily store parameters to be set
12363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_fps_range_t m_default_fps_range;
12373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bAFBracketingOn;
12383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bReFocusOn;
12393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bChromaFlashOn;
12403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bOptiZoomOn;
12413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSceneSelection;
12423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    Mutex m_SceneSelectLock;
12433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_scene_mode_type m_SelectedScene;
12443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSeeMoreOn;
12453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bStillMoreOn;
12463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHighQualityNoiseReductionMode;
12473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_fps_range_t m_hfrFpsRange;
12483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHfrMode;
12493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSensorHDREnabled;             // if HDR is enabled
12503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bRdiMode;                // if RDI mode
12513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bSecureMode;
12523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bAeBracketingEnabled;
12533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mFlashValue;
12543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mFlashDaemonValue;
12553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mHfrMode;
12563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bHDRModeSensor;
12573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool mOfflineRAW;
12583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bTruePortraitOn;
12593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_feature_mask_t m_nMinRequiredPpMask;
12603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_feature_mask_t mStreamPpMask[CAM_STREAM_TYPE_MAX];
12613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t m_nSharpness;
12623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t mTotalPPCount;
12633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t mCurPPCount;
12643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mZoomLevel;
12653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mParmZoomLevel;
12663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bIsLowMemoryDevice;
12673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mCds_mode;
12683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t mParmEffect;
12693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_capture_frame_config_t m_captureFrameConfig;
12703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t mBufBatchCnt;
12713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bEztuneEnabled;
12723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bDcrfEnabled;
12733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t mRotation;
12743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint32_t mJpegRotation;
12753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int8_t mVideoBatchSize;
12763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_LLCaptureEnabled;
12773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_low_light_mode_t m_LowLightLevel;
12783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bLtmForSeeMoreEnabled;
12793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int64_t m_expTime;
12803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bOEMFeatEnabled;
12813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t m_isoValue;
12823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    QCameraManualCaptureModes m_ManualCaptureMode;
12833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    cam_dyn_img_data_t m_DynamicImgData;
12843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    int32_t m_dualLedCalibration;
12853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Param to trigger instant AEC.
12863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bInstantAEC;
12873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Param to trigger instant capture.
12883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    bool m_bInstantCapture;
12893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Number of frames, camera interface will wait for getting the instant capture frame.
12903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t mAecFrameBound;
12913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    // Number of preview frames, that HAL will hold without displaying, for instant AEC mode.
12923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel    uint8_t mAecSkipDisplayFrameBound;
12939e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel    bool m_bQuadraCfa;
1294cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel    bool m_bDualCamera;
12952896d129511c499aef15b8162df05fa299860f59Thierry Strudel    uint32_t mActiveCameras;
12962896d129511c499aef15b8162df05fa299860f59Thierry Strudel    uint32_t mMasterCamera;
12979ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    bool m_bSmallJpegSize;
12989ec39c64004dda78086849a21087cb217d0bf6acThierry Strudel    cam_stream_type_t mSecureStraemType;
129954dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    //Frame number for super parameter
130054dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    uint32_t mFrameNumber;
130154dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    uint32_t mSyncDCParam;
130254dc9783295b20e33ec11e132d98a1b8efbf254cThierry Strudel    bool mbundledSnapshot;
13032896d129511c499aef15b8162df05fa299860f59Thierry Strudel    bool mAsymmetricSnapMode;
13043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel};
13053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
13063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}; // namespace qcamera
13073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel
13083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif
1309