16f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev/* 26f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** 36f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** Copyright 2008, The Android Open Source Project 46f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 56f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** Not a Contribution. Apache license notifications and license are 66f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** retained for attribution purposes only. 76f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** 86f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** Licensed under the Apache License, Version 2.0 (the "License"); 96f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** you may not use this file except in compliance with the License. 106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** You may obtain a copy of the License at 116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** 126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** http://www.apache.org/licenses/LICENSE-2.0 136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** 146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** Unless required by applicable law or agreed to in writing, software 156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** distributed under the License is distributed on an "AS IS" BASIS, 166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** See the License for the specific language governing permissions and 186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev** limitations under the License. 196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev*/ 206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#ifndef ANDROID_HARDWARE_QCAMERA_PARAMETERS_H 216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define ANDROID_HARDWARE_QCAMERA_PARAMETERS_H 226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <camera/CameraParameters.h> 246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <cutils/properties.h> 256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <hardware/camera.h> 266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <stdlib.h> 276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <utils/Errors.h> 286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "cam_intf.h" 296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "QCameraMem.h" 306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "QCameraThermalAdapter.h" 316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern "C" { 336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <mm_jpeg_interface.h> 346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev} 356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevusing namespace android; 376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevnamespace qcamera { 396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev//EXIF globals 416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic const char ExifAsciiPrefix[] = { 0x41, 0x53, 0x43, 0x49, 0x49, 0x0, 0x0, 0x0 }; // "ASCII\0\0\0" 426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevstatic const char ExifUndefinedPrefix[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; // "\0\0\0\0\0\0\0\0" 436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define GPS_PROCESSING_METHOD_SIZE 101 456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define EXIF_ASCII_PREFIX_SIZE 8 //(sizeof(ExifAsciiPrefix)) 466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define FOCAL_LENGTH_DECIMAL_PRECISION 100 476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevclass QCameraParameters: public CameraParameters 496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{ 506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevpublic: 516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev QCameraParameters(); 526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev QCameraParameters(const String8 ¶ms); 536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev ~QCameraParameters(); 546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Supported PREVIEW/RECORDING SIZES IN HIGH FRAME RATE recording, sizes in pixels. 566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Example value: "800x480,432x320". Read only. 576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_HFR_SIZES[]; 586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // The mode of preview frame rate. 596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Example value: "frame-rate-auto, frame-rate-fixed". 606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_PREVIEW_FRAME_RATE_MODE[]; 616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_PREVIEW_FRAME_RATE_MODES[]; 626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_PREVIEW_FRAME_RATE_AUTO_MODE[]; 636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_PREVIEW_FRAME_RATE_FIXED_MODE[]; 646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_SKIN_TONE_ENHANCEMENT_MODES[] ; 656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Supported live snapshot sizes 676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_LIVESNAPSHOT_SIZES[]; 686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Supported Raw formats 706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_RAW_FORMATS[]; 716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_RAW_FORMAT[]; 726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Touch Af/AEC settings. 746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_TOUCH_AF_AEC[]; 756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_TOUCH_AF_AEC[]; 766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Touch Index for AEC. 776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_TOUCH_INDEX_AEC[]; 786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Touch Index for AF. 796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_TOUCH_INDEX_AF[]; 806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Current auto scene detection mode. 816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Example value: "off" or "on" constants. Read/write. 826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SCENE_DETECT[]; 836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Supported auto scene detection settings. 846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Example value: "off,on". Read only. 856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_SCENE_DETECT[]; 866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SELECTABLE_ZONE_AF[]; 876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ISO_MODE[]; 896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_ISO_MODES[]; 906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_LENSSHADE[] ; 916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_LENSSHADE_MODES[] ; 926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_AUTO_EXPOSURE[]; 936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_AUTO_EXPOSURE[]; 946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_GPS_LATITUDE_REF[]; 966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_GPS_LONGITUDE_REF[]; 976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_GPS_ALTITUDE_REF[]; 986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_GPS_STATUS[]; 996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MEMORY_COLOR_ENHANCEMENT[]; 1006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_MEM_COLOR_ENHANCE_MODES[]; 1016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_DIS[]; 1026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_DIS_MODES[]; 1036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ZSL[]; 1056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_ZSL_MODES[]; 1066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ZSL_BURST_INTERVAL[]; 1076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ZSL_BURST_LOOKBACK[]; 1086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ZSL_QUEUE_DEPTH[]; 1096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_CAMERA_MODE[]; 1116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_ORIENTATION[]; 1126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_VIDEO_HIGH_FRAME_RATE[]; 1146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_VIDEO_HIGH_FRAME_RATE_MODES[]; 1156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_HIGH_DYNAMIC_RANGE_IMAGING[]; 1166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_HDR_IMAGING_MODES[]; 1176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_AE_BRACKET_HDR[]; 1186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_AE_BRACKET_MODES[]; 1196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_CAPTURE_BURST_EXPOSURE[]; 1206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_NUM_SNAPSHOT_PER_SHUTTER[]; 1216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_NO_DISPLAY_MODE[]; 1226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_RAW_PICUTRE_SIZE[]; 1236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // DENOISE 1256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_DENOISE[]; 1266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_DENOISE[]; 1276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Selectable zone AF. 1296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_FOCUS_ALGO[]; 1306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_FOCUS_ALGOS[]; 1316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Face Detection 1336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_FACE_DETECTION[]; 1346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_FACE_DETECTION[]; 1356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Face Recognition 1376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_FACE_RECOGNITION[]; 1386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_FACE_RECOGNITION[]; 1396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // supported camera features to be queried by Snapdragon SDK 1416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Read only 1426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_CAMERA_FEATURES[]; 1436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Indicates number of faces requested by the application. 1456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //This value will be rejected if the requested faces 1466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //greater than supported by hardware. 1476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Write only. 1486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_NUM_REQUESTED_FACES[]; 1496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //preview flip 1516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_PREVIEW_FLIP[]; 1526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //video flip 1536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_VIDEO_FLIP[]; 1546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //snapshot picture flip 1556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SNAPSHOT_PICTURE_FLIP[]; 1566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_FLIP_MODES[]; 1586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Redeye Reduction 1606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_REDEYE_REDUCTION[]; 1616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_REDEYE_REDUCTION[]; 1626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char EFFECT_EMBOSS[]; 1636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char EFFECT_SKETCH[]; 1646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char EFFECT_NEON[]; 1656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for Touch AF/AEC 1676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char TOUCH_AF_AEC_OFF[]; 1686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char TOUCH_AF_AEC_ON[]; 1696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for Scene mode 1716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SCENE_MODE_ASD[]; 1726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SCENE_MODE_BACKLIGHT[]; 1736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SCENE_MODE_FLOWERS[]; 1746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SCENE_MODE_AR[]; 1756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SCENE_MODE_HDR[]; 1766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char PIXEL_FORMAT_YUV420SP_ADRENO[]; // ADRENO 1776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char PIXEL_FORMAT_YV12[]; // NV12 1786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char PIXEL_FORMAT_NV12[]; //NV12 1796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 1806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for raw picture format 1816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_YUYV[]; 1826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_YVYU[]; 1836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_UYVY[]; 1846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_YUV_RAW_8BIT_VYUY[]; 1856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GBRG[]; 1866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8GRBG[]; 1876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8RGGB[]; 1886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_8BGGR[]; 1896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GBRG[]; 1906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10GRBG[]; 1916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10RGGB[]; 1926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_10BGGR[]; 1936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GBRG[]; 1946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12GRBG[]; 1956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12RGGB[]; 1966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_QCOM_RAW_12BGGR[]; 1976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GBRG[]; 1986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8GRBG[]; 1996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8RGGB[]; 2006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_8BGGR[]; 2016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GBRG[]; 2026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10GRBG[]; 2036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10RGGB[]; 2046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_10BGGR[]; 2056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GBRG[]; 2066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12GRBG[]; 2076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12RGGB[]; 2086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_MIPI_RAW_12BGGR[]; 2096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GBRG[]; 2106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8GRBG[]; 2116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8RGGB[]; 2126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_8BGGR[]; 2136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GBRG[]; 2146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10GRBG[]; 2156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10RGGB[]; 2166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_10BGGR[]; 2176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GBRG[]; 2186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12GRBG[]; 2196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12RGGB[]; 2206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_QCOM_12BGGR[]; 2216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GBRG[]; 2226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8GRBG[]; 2236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8RGGB[]; 2246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_8BGGR[]; 2256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GBRG[]; 2266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10GRBG[]; 2276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10RGGB[]; 2286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_10BGGR[]; 2296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GBRG[]; 2306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12GRBG[]; 2316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12RGGB[]; 2326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_MIPI_12BGGR[]; 2336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GBRG[]; 2346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8GRBG[]; 2356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8RGGB[]; 2366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN8_8BGGR[]; 2376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GBRG[]; 2386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8GRBG[]; 2396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8RGGB[]; 2406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_8BGGR[]; 2416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GBRG[]; 2426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10GRBG[]; 2436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10RGGB[]; 2446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_10BGGR[]; 2456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GBRG[]; 2466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12GRBG[]; 2476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12RGGB[]; 2486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char QC_PIXEL_FORMAT_BAYER_IDEAL_PLAIN16_12BGGR[]; 2496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // ISO values 2516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_AUTO[]; 2526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_HJR[]; 2536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_100[]; 2546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_200[]; 2556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_400[]; 2566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_800[]; 2576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char ISO_1600[]; 2586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for auto exposure settings. 2606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_FRAME_AVG[]; 2616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_CENTER_WEIGHTED[]; 2626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_SPOT_METERING[]; 2636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_SMART_METERING[]; 2646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_USER_METERING[]; 2656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_SPOT_METERING_ADV[]; 2666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AUTO_EXPOSURE_CENTER_WEIGHTED_ADV[]; 2676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SHARPNESS[]; 2696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MIN_SHARPNESS[]; 2706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_SHARPNESS[]; 2716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SHARPNESS_STEP[]; 2726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_CONTRAST[]; 2736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MIN_CONTRAST[]; 2746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_CONTRAST[]; 2756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_CONTRAST_STEP[]; 2766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SATURATION[]; 2776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MIN_SATURATION[]; 2786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_SATURATION[]; 2796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SATURATION_STEP[]; 2806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_BRIGHTNESS[]; 2816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MIN_BRIGHTNESS[]; 2826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_BRIGHTNESS[]; 2836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_BRIGHTNESS_STEP[]; 2846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SCE_FACTOR[]; 2856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MIN_SCE_FACTOR[]; 2866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_MAX_SCE_FACTOR[]; 2876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SCE_FACTOR_STEP[]; 2886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_HISTOGRAM[] ; 2906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_SUPPORTED_HISTOGRAM_MODES[] ; 2916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char KEY_QC_HDR_NEED_1X[]; 2922f073d4cfa214187fc326377a1e0eecad84eaf3dMuhua Li static const char KEY_QC_VIDEO_HDR[]; 2932f073d4cfa214187fc326377a1e0eecad84eaf3dMuhua Li static const char KEY_QC_SUPPORTED_VIDEO_HDR_MODES[]; 2946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for SKIN TONE ENHANCEMENT 2966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SKIN_TONE_ENHANCEMENT_ENABLE[] ; 2976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char SKIN_TONE_ENHANCEMENT_DISABLE[] ; 2986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 2996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for Denoise 3006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char DENOISE_OFF[] ; 3016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char DENOISE_ON[] ; 3026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for auto exposure settings. 3046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FOCUS_ALGO_AUTO[]; 3056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FOCUS_ALGO_SPOT_METERING[]; 3066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FOCUS_ALGO_CENTER_WEIGHTED[]; 3076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FOCUS_ALGO_FRAME_AVERAGE[]; 3086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for AE Bracketing settings. 3106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AE_BRACKET_OFF[]; 3116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char AE_BRACKET[]; 3126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for HFR settings. 3146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VIDEO_HFR_OFF[]; 3156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VIDEO_HFR_2X[]; 3166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VIDEO_HFR_3X[]; 3176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VIDEO_HFR_4X[]; 3186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VIDEO_HFR_5X[]; 3196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for feature on/off settings. 3216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_OFF[]; 3226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_ON[]; 3236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for feature enable/disable settings. 3256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_ENABLE[]; 3266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_DISABLE[]; 3276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Values for feature true/false settings. 3296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_FALSE[]; 3306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char VALUE_TRUE[]; 3316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev //Values for flip settings 3336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FLIP_MODE_OFF[]; 3346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FLIP_MODE_V[]; 3356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FLIP_MODE_H[]; 3366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const char FLIP_MODE_VH[]; 3376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev enum { 3396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev CAMERA_ORIENTATION_UNKNOWN = 0, 3406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev CAMERA_ORIENTATION_PORTRAIT = 1, 3416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev CAMERA_ORIENTATION_LANDSCAPE = 2, 3426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev }; 3436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev typedef struct { 3446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev const char *const desc; 3456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int val; 3466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev } QCameraMap; 3476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void getSupportedHfrSizes(Vector<Size> &sizes); 3496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void setPreviewFrameRateMode(const char *mode); 3506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev const char *getPreviewFrameRateMode() const; 3516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void setTouchIndexAec(int x, int y); 3526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void getTouchIndexAec(int *x, int *y); 3536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void setTouchIndexAf(int x, int y); 3546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void getTouchIndexAf(int *x, int *y); 3556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t init(cam_capability_t *, mm_camera_vtbl_t *); 3576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void deinit(); 3586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t assign(QCameraParameters& params); 3596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t initDefaultParameters(); 3606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t updateParameters(QCameraParameters&, bool &needRestart); 3616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t commitParameters(); 3626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getPreviewHalPixelFormat() const; 3636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getStreamFormat(cam_stream_type_t streamType, 3646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_format_t &format); 3656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getStreamDimension(cam_stream_type_t streamType, 3666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_dimension_t &dim); 3676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void getThumbnailSize(int *width, int *height) const; 3686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getZSLBurstInterval(); 3706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getZSLQueueDepth(); 3716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getZSLBackLookCount(); 3726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getMaxUnmatchedFramesInQueue(); 3736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isZSLMode() {return m_bZslMode;}; 3746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isNoDisplayMode() {return m_bNoDisplayMode;}; 3756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isWNREnabled() {return m_bWNROn;}; 3766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev uint8_t getNumOfSnapshots(); 3776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev uint8_t getNumOfExtraHDRBufsIfNeeded(); 3786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev uint8_t getNumOfHDRBufsIfNeeded(); 3796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getBurstNum(); 3806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool getRecordingHintValue() {return m_bRecordingHint;}; // return local copy of video hint 3816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int setRecordingHintValue(int32_t value); // set local copy of video hint and send to server 3826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // no change in parameters value 3836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getJpegQuality(); 3846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getJpegRotation(); 3856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifDateTime(char *dateTime, uint32_t &count); 3876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifFocalLength(rat_t *focalLenght); 3886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev uint16_t getExifIsoSpeed(); 3896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifGpsProcessingMethod(char *gpsProcessingMethod, uint32_t &count); 3906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifLatitude(rat_t *latitude, char *latRef); 3916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifLongitude(rat_t *longitude, char *lonRef); 3926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifAltitude(rat_t *altitude, char *altRef); 3936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getExifGpsDateTimeStamp(char *gpsDateStamp, uint32_t bufLen, rat_t *gpsTimeStamp); 3946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t updateFocusDistances(cam_focus_distances_info_t *focusDistances); 3956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 3966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isFpsDebugEnabled() {return m_bDebugFps;}; 3976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isHistogramEnabled() {return m_bHistogramEnabled;}; 3986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isFaceDetectionEnabled() {return ((m_nFaceProcMask & CAM_FACE_PROCESS_MASK_DETECTION) != 0);}; 3996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setHistogram(bool enabled); 4006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFaceDetection(bool enabled); 4016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setLockCAF(bool bLock); 4026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFrameSkip(enum msm_vfe_frame_skip_pattern pattern); 4036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev qcamera_thermal_mode getThermalMode() {return m_ThermalMode;}; 404744f5403bebb0e27140d16a5df7a341713c24a13Nagesh Subba Reddy int32_t updateRecordingHintValue(int32_t value); 4056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 4066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_focus_mode_type getFocusMode() const {return mFocusMode;}; 4076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setNumOfSnapshot(); 4086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t adjustPreviewFpsRange(cam_fps_range_t *fpsRange); 4096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isJpegPictureFormat() {return (mPictureFormat == CAM_FORMAT_JPEG);}; 4107fde32d818742141a39fda194e66b84109182affEmilian Peev bool isNV16PictureFormat() {return (mPictureFormat == CAM_FORMAT_YUV_422_NV16);}; 4116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_denoise_process_type_t getWaveletDenoiseProcessPlate(); 4126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getLiveSnapshotSize(cam_dimension_t &dim) {dim = m_LiveSnapshotSize; return NO_ERROR;}; 4136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getFlipMode(cam_stream_type_t streamType); 4146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 4156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void setLockCAFNeeded(bool bNeedflag) {m_bNeedLockCAF = bNeedflag;}; 4166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isLockCAFNeeded() {return m_bNeedLockCAF;}; 4176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isCAFLocked() {return m_bCAFLocked;}; 4186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void setAFRunning(bool bflag) {m_bAFRunning = bflag;}; 4196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool isAFRunning() {return m_bAFRunning;}; 4206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 4216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevprivate: 4226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPreviewSize(const QCameraParameters& ); 4236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setVideoSize(const QCameraParameters& ); 4246f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPictureSize(const QCameraParameters& ); 4256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setLiveSnapshotSize(const QCameraParameters& ); 4266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPreviewFormat(const QCameraParameters& ); 4276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPictureFormat(const QCameraParameters& ); 4286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setOrientation(const QCameraParameters& ); 4296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setJpegThumbnailSize(const QCameraParameters& ); 4306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setJpegQuality(const QCameraParameters& ); 4316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPreviewFpsRange(const QCameraParameters& ); 4326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPreviewFrameRate(const QCameraParameters& ); 4336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAutoExposure(const QCameraParameters& ); 4346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setEffect(const QCameraParameters& ); 4356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setBrightness(const QCameraParameters& ); 4366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFocusMode(const QCameraParameters& ); 4376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSharpness(const QCameraParameters& ); 4386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSaturation(const QCameraParameters& ); 4396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setContrast(const QCameraParameters& ); 4406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSkinToneEnhancement(const QCameraParameters& ); 4416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSceneDetect(const QCameraParameters& ); 4422f073d4cfa214187fc326377a1e0eecad84eaf3dMuhua Li int32_t setVideoHDR(const QCameraParameters& ); 4436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setZoom(const QCameraParameters& ); 4446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setISOValue(const QCameraParameters& ); 4456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setRotation(const QCameraParameters& ); 4466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFlash(const QCameraParameters& ); 4476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAecLock(const QCameraParameters& ); 4486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAwbLock(const QCameraParameters& ); 4496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setMCEValue(const QCameraParameters& ); 4506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setDISValue(const QCameraParameters& params); 4516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setHighFrameRate(const QCameraParameters& ); 4526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setLensShadeValue(const QCameraParameters& ); 4536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setExposureCompensation(const QCameraParameters& ); 4546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setWhiteBalance(const QCameraParameters& ); 4556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAntibanding(const QCameraParameters& ); 4566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFocusAreas(const QCameraParameters& ); 4576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setMeteringAreas(const QCameraParameters& ); 4586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSceneMode(const QCameraParameters& ); 4596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSelectableZoneAf(const QCameraParameters& ); 4606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAEBracket(const QCameraParameters& ); 4616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setRedeyeReduction(const QCameraParameters& ); 4626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setGpsLocation(const QCameraParameters& ); 4636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setRecordingHint(const QCameraParameters& ); 4646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setNoDisplayMode(const QCameraParameters& ); 4656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setWaveletDenoise(const QCameraParameters& ); 4666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setZslMode(const QCameraParameters& ); 4676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setZslAttributes(const QCameraParameters& ); 4686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setCameraMode(const QCameraParameters& ); 4696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFaceRecognition(const QCameraParameters& ); 4706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFlip(const QCameraParameters& ); 4716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 4726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAutoExposure(const char *autoExp); 4736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setPreviewFpsRange(int minFPS,int maxFPS); 4746f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setEffect(const char *effect); 4756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setBrightness(int brightness); 4766f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFocusMode(const char *focusMode); 4776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSharpness(int sharpness); 4786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSaturation(int saturation); 4796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setContrast(int contrast); 4806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSkinToneEnhancement(int sceFactor); 4816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSceneDetect(const char *scendDetect); 4822f073d4cfa214187fc326377a1e0eecad84eaf3dMuhua Li int32_t setVideoHDR(const char *videoHDR); 4836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setZoom(int zoom_level); 4846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setISOValue(const char *isoValue); 4856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFlash(const char *flashStr); 4866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAecLock(const char *aecStr); 4876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAwbLock(const char *awbStr); 4886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setMCEValue(const char *mceStr); 4896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setDISValue(const char *disStr); 4906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setHighFrameRate(const char *hfrStr); 4916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setLensShadeValue(const char *lensShadeStr); 4926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setExposureCompensation(int expComp); 4936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setWhiteBalance(const char *wbStr); 4946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAntibanding(const char *antiBandingStr); 4956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFocusAreas(const char *focusAreasStr); 4966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setMeteringAreas(const char *meteringAreasStr); 4976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSceneMode(const char *sceneModeStr); 4986f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setSelectableZoneAf(const char *selZoneAFStr); 4996f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setAEBracket(const char *aecBracketStr); 5006f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setRedeyeReduction(const char *redeyeStr); 5016f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setWaveletDenoise(const char *wnrStr); 5026f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t setFaceRecognition(const char *faceRecog, int maxFaces); 5036f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5046f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t parse_pair(const char *str, int *first, int *second, 5056f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev char delim, char **endptr); 5066f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void parseSizesList(const char *sizesStr, Vector<Size> &sizes); 5076f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t parseNDimVector(const char *str, int *num, int N, char delim); 5086f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t parseCameraAreaString(const char *str, int max_num_areas, 5096f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_area_t *pAreas, int& num_areas_found); 5106f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool validateCameraAreas(cam_area_t *areas, int num_areas); 5116f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int parseGPSCoordinate(const char *coord_str, rat_t *coord); 5126f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t getRational(rat_t *rat, int num, int denom); 5136f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createSizesString(const cam_dimension_t *sizes, int len); 5146f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createValuesString(const int *values, int len, 5156f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev const QCameraMap *map, int map_len); 5166f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createValuesStringFromMap(const QCameraMap *map, 5176f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int map_len); 5186f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createHfrValuesString(const cam_hfr_info_t *values, int len, 5196f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev const QCameraMap *map, int map_len); 5206f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createHfrSizesString(const cam_hfr_info_t *values, int len); 5216f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createFpsRangeString(const cam_fps_range_t *fps, 5226f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int len, 5236f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int &default_fps_index); 524744f5403bebb0e27140d16a5df7a341713c24a13Nagesh Subba Reddy static int compareFPSValues(const void *p1, const void *p2); 5256f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createFpsString(const cam_fps_range_t *fps, int len); 5266f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev String8 createZoomRatioValuesString(int *zoomRatios, int length); 5276f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int lookupAttr(const QCameraMap arr[], int len, const char *name); 5286f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev const char *lookupNameByValue(const QCameraMap arr[], int len, int value); 5296f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // ops for batch set/get params with server 5316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t initBatchUpdate(parm_buffer_t *p_table); 5326f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t AddSetParmEntryToBatch(parm_buffer_t *p_table, 5336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_intf_parm_type_t paramType, 5346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev uint32_t paramLength, 5356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev void *paramValue); 5366f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t commitSetBatch(); 5376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t AddGetParmEntryToBatch(parm_buffer_t *p_table, 5386f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_intf_parm_type_t paramType); 5396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t commitGetBatch(); 5406f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // ops to tempororily update parameter entries and commit 5426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t updateParamEntry(const char *key, const char *value); 5436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t commitParamChanges(); 5446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev // Map from strings to values 5466f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const cam_dimension_t THUMBNAIL_SIZES_MAP[]; 5476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap AUTO_EXPOSURE_MAP[]; 5486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap PREVIEW_FORMATS_MAP[]; 5496f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap PICTURE_TYPES_MAP[]; 5506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap RAW_FORMATS_MAP[]; 5516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap FOCUS_MODES_MAP[]; 5526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap EFFECT_MODES_MAP[]; 5536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap SCENE_MODES_MAP[]; 5546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap FLASH_MODES_MAP[]; 5556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap FOCUS_ALGO_MAP[]; 5566f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap WHITE_BALANCE_MODES_MAP[]; 5576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap ANTIBANDING_MODES_MAP[]; 5586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap ISO_MODES_MAP[]; 5596f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap HFR_MODES_MAP[]; 5606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap BRACKETING_MODES_MAP[]; 5616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap ON_OFF_MODES_MAP[]; 5626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap ENABLE_DISABLE_MODES_MAP[]; 5636f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap DENOISE_ON_OFF_MODES_MAP[]; 5646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap TRUE_FALSE_MODES_MAP[]; 5656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap TOUCH_AF_AEC_MODES_MAP[]; 5666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static const QCameraMap FLIP_MODES_MAP[]; 5676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_capability_t *m_pCapability; 5696f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev mm_camera_vtbl_t *m_pCamOpsTbl; 5706f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev QCameraHeapMemory *m_pParamHeap; 5716f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev parm_buffer_t *m_pParamBuf; // ptr to param buf in m_pParamHeap 5726f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5736f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bZslMode; // if ZSL is enabled 574744f5403bebb0e27140d16a5df7a341713c24a13Nagesh Subba Reddy bool m_bZslMode_new; 5756f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bRecordingHint; // local copy of recording hint 576744f5403bebb0e27140d16a5df7a341713c24a13Nagesh Subba Reddy bool m_bRecordingHint_new; 5776f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bHistogramEnabled; // if histogram is enabled 5786f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int m_nFaceProcMask; // face process mask 5796f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bDebugFps; // if FPS need to be logged 5806f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_focus_mode_type mFocusMode; 5816f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_format_t mPreviewFormat; 5826f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int32_t mPictureFormat; // could be CAMERA_PICTURE_TYPE_JPEG or cam_format_t 5836f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bNeedRestart; // if preview needs restart after parameters updated 5846f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bNoDisplayMode; 5856f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bWNROn; 5866f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bNeedLockCAF; 5876f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bCAFLocked; 5886f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev bool m_bAFRunning; 5896f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev qcamera_thermal_mode m_ThermalMode; // adjust fps vs adjust frameskip 5906f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev cam_dimension_t m_LiveSnapshotSize; // live snapshot size 5916f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5926f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev DefaultKeyedVector<String8,String8> m_tempMap; // map for temororily store parameters to be set 5936f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}; 5946f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5956f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}; // namespace qcamera 5966f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 5976f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#endif 598