13d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. 23d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * 33d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * Redistribution and use in source and binary forms, with or without 43d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * modification, are permitted provided that the following conditions are 53d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * met: 63d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * * Redistributions of source code must retain the above copyright 73d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * notice, this list of conditions and the following disclaimer. 83d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * * Redistributions in binary form must reproduce the above 93d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * copyright notice, this list of conditions and the following 103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * disclaimer in the documentation and/or other materials provided 113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * with the distribution. 123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * * Neither the name of The Linux Foundation nor the names of its 133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * contributors may be used to endorse or promote products derived 143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * from this software without specific prior written permission. 153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * 163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel * 283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel */ 293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifndef ANDROID_HARDWARE_QCAMERA_PARAMETERS_INTF_H 313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#define ANDROID_HARDWARE_QCAMERA_PARAMETERS_INTF_H 323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <utils/String8.h> 343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <utils/Mutex.h> 353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "cam_intf.h" 363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "cam_types.h" 373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include "QCameraThermalAdapter.h" 38c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel#include "QCameraFOVControl.h" 393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelextern "C" { 413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <mm_camera_interface.h> 423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#include <mm_jpeg_interface.h> 433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel} 443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelusing namespace android; 463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelnamespace qcamera { 483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudeltypedef cam_manual_capture_type QCameraManualCaptureModes; 503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelclass QCameraAdjustFPS 523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel{ 533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelpublic: 543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel virtual int recalcFPSRange(int &minFPS, int &maxFPS, 553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel const float &minVideoFPS, const float &maxVideoFPs, 56c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel cam_fps_range_t &adjustedRange, bool bRecordingHint) = 0; 573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel virtual ~QCameraAdjustFPS() {} 583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}; 593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelclass QCameraParameters; 613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelclass QCameraParametersIntf 633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel{ 643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelpublic: 653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel // member variables 673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel QCameraParametersIntf(); 683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel ~QCameraParametersIntf(); 693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 70cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel int32_t allocate(uint8_t bufCount = 1); 713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t init(cam_capability_t *capabilities, 723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel mm_camera_vtbl_t *mmOps, 73c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel QCameraAdjustFPS *adjustFPS, 74c2ee3304e16253ceab19f9be91c5da84233940f3Thierry Strudel QCameraFOVControl *fovControl); 753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void deinit(); 773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateParameters(const String8& params, bool &needRestart); 783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t commitParameters(); 793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel char* getParameters(); 813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void getPreviewFpsRange(int *min_fps, int *max_fps) const; 823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#ifdef TARGET_TS_MAKEUP 833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool getTsMakeupInfo(int &whiteLevel, int &cleanLevel) const; 843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif 853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int getPreviewHalPixelFormat(); 873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getStreamRotation(cam_stream_type_t streamType, 883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_pp_feature_config_t &featureConfig, 893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_dimension_t &dim); 903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getStreamFormat(cam_stream_type_t streamType, 913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_format_t &format); 929e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel 939e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel int32_t getStreamSubFormat( 949e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel cam_stream_type_t streamType, cam_sub_format_type_t &sub_format); 959e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel 969e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel 973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getStreamDimension(cam_stream_type_t streamType, 983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_dimension_t &dim); 993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void getThumbnailSize(int *width, int *height) const; 1013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getZSLBurstInterval(); 1023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getZSLQueueDepth(); 1033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getZSLBackLookCount(); 1043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getMaxUnmatchedFramesInQueue(); 1053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isZSLMode(); 1063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isRdiMode(); 1073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isSecureMode(); 1083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isNoDisplayMode(); 1093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isWNREnabled(); 1103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isTNRSnapshotEnabled(); 1113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getCDSMode(); 1123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isLTMForSeeMoreEnabled(); 1133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHfrMode(); 1143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void getHfrFps(cam_fps_range_t &pFpsRange); 1153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfSnapshots(); 1163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfRetroSnapshots(); 1173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfExtraHDRInBufsIfNeeded(); 1183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfExtraHDROutBufsIfNeeded(); 1193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool getRecordingHintValue(); 1213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getJpegQuality(); 1223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getRotation(); 1233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getDeviceRotation(); 1243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getJpegExifRotation(); 1253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool useJpegExifRotation(); 1263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getEffectValue(); 1273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isInstantAECEnabled(); 1283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isInstantCaptureEnabled(); 1293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getAecFrameBoundValue(); 1303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getAecSkipDisplayFrameBound(); 1313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifDateTime(String8 &dateTime, String8 &subsecTime); 1333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifFocalLength(rat_t *focalLenght); 1343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint16_t getExifIsoSpeed(); 1353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifGpsProcessingMethod(char *gpsProcessingMethod, 1363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t &count); 1373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifLatitude(rat_t *latitude, char *latRef); 1383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifLongitude(rat_t *longitude, char *lonRef); 1393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifAltitude(rat_t *altitude, char *altRef); 1403d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getExifGpsDateTimeStamp(char *gpsDateStamp, 1413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t bufLen, rat_t *gpsTimeStamp); 1423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isVideoBuffersCached(); 1433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateFocusDistances(cam_focus_distances_info_t *focusDistances); 1443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isAEBracketEnabled(); 1463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setAEBracketing(); 1473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isFpsDebugEnabled(); 1483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHistogramEnabled(); 1493d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isSceneSelectionEnabled(); 1503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setSelectedScene(cam_scene_mode_type scene); 1513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_scene_mode_type getSelectedScene(); 1523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isFaceDetectionEnabled(); 1533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setFaceDetectionOption(bool enabled); 1543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setHistogram(bool enabled); 1553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setFaceDetection(bool enabled, bool initCommit); 1563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setFrameSkip(enum msm_vfe_frame_skip_pattern pattern); 1573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel qcamera_thermal_mode getThermalMode(); 1583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateRecordingHintValue(int32_t value); 1593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setHDRAEBracket(cam_exp_bracketing_t hdrBracket); 1603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHDREnabled(); 1613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isAutoHDREnabled(); 1623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t stopAEBracket(); 1633d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateRAW(cam_dimension_t max_dim); 1643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isDISEnabled(); 165cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel bool isAVTimerEnabled(); 1669e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel int32_t setISType(); 1679e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel cam_is_type_t getVideoISType(); 1683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_is_type_t getPreviewISType(); 1693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getMobicatMask(); 1703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_focus_mode_type getFocusMode() const; 1723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setNumOfSnapshot(); 1733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t adjustPreviewFpsRange(cam_fps_range_t *fpsRange); 1743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isJpegPictureFormat(); 1753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isNV16PictureFormat(); 1763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isNV21PictureFormat(); 1773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_denoise_process_type_t getDenoiseProcessPlate(cam_intf_parm_type_t type); 1783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getMaxPicSize(cam_dimension_t &dim); 1793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int getFlipMode(cam_stream_type_t streamType); 1803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isSnapshotFDNeeded(); 1813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHDR1xFrameEnabled(); 1833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isYUVFrameInfoNeeded(); 1843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel const char*getFrameFmtString(cam_format_t fmt); 1853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHDR1xExtraBufferNeeded(); 1863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHDROutputCropEnabled(); 1873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isPreviewFlipChanged(); 1893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isVideoFlipChanged(); 1903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isSnapshotFlipChanged(); 1913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setHDRSceneEnable(bool bflag); 1923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateAWBParams(cam_awb_params_t &awb_params); 1933d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 1943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel const char *getASDStateString(cam_auto_scene_t scene); 1953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHDRThumbnailProcessNeeded(); 1963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setMinPpMask(cam_feature_mask_t min_pp_mask); 1973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool setStreamConfigure(bool isCapture, 1983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool previewAsPostview, bool resetConfig); 1993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t addOnlineRotation(uint32_t rotation, uint32_t streamId, 2003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t device_rotation); 2013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfExtraBuffersForImageProc(); 2023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfExtraBuffersForVideo(); 2033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getNumOfExtraBuffersForPreview(); 2043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getExifBufIndex(uint32_t captureIndex); 2053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool needThumbnailReprocess(cam_feature_mask_t *pFeatureMask); 2063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isUbiFocusEnabled(); 2073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isChromaFlashEnabled(); 2083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isHighQualityNoiseReductionMode(); 2093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isTruePortraitEnabled(); 2103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel size_t getTPMaxMetaSize(); 2113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isSeeMoreEnabled(); 2123d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isStillMoreEnabled(); 2133d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isOptiZoomEnabled(); 2143d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2153d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t commitAFBracket(cam_af_bracketing_t afBracket); 2163d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t set3ALock(bool lock3A); 2173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setAndCommitZoom(int zoom_level); 2183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getBurstCountForAdvancedCapture(); 2193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getNumberInBufsForSingleShot(); 2203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getNumberOutBufsForSingleShot(); 2213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setLongshotEnable(bool enable); 2223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel String8 dump(); 2233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isUbiRefocus(); 2243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getRefocusMaxMetaSize(); 2253d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getRefocusOutputCount(); 2263d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool generateThumbFromMain(); 2273d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void updateCurrentFocusPosition(cam_focus_pos_info_t &cur_pos_info); 2283d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void updateAEInfo(cam_3a_params_t &ae_params); 2293d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isDisplayFrameNeeded(); 2303d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isAdvCamFeaturesEnabled(); 2313d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setAecLock(const char *aecStr); 2323d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateDebugLevel(); 2333d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool is4k2kVideoResolution(); 2343d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isUBWCEnabled(); 2353d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2363d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int getBrightness(); 2373d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateOisValue(bool oisValue); 2383d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setIntEvent(cam_int_evt_params_t params); 2393d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool getofflineRAW(); 2409e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel bool getQuadraCfa(); 2413d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updatePpFeatureMask(cam_stream_type_t stream_type); 2423d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getStreamPpMask(cam_stream_type_t stream_type, cam_feature_mask_t &pp_mask); 2433d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getSharpness(); 2443d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getEffect(); 2453d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateFlashMode(cam_flash_mode_t flash_mode); 2463d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t configureAEBracketing(cam_capture_frame_config_t &frame_config); 2473d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t configureHDRBracketing(cam_capture_frame_config_t &frame_config); 2483d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t configFrameCapture(bool commitSettings); 24904e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel int32_t resetFrameCapture(bool commitSettings, bool lowLightEnabled); 2503d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_still_more_t getStillMoreSettings(); 2513d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setStillMoreSettings(cam_still_more_t stillmore_config); 2523d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_still_more_t getStillMoreCapability(); 2533d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_dyn_img_data_t getDynamicImgData(); 2543d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setDynamicImgData(cam_dyn_img_data_t d); 2553d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2563d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getParmZoomLevel(); 2573d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int8_t getReprocCount(); 2583d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int8_t getCurPPCount(); 2593d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setReprocCount(); 2603d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isPostProcScaling(); 2613d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isLLNoiseEnabled(); 2623d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setCurPPCount(int8_t count); 26304e026fe14f98a83811cd3a2c04b60b3b501b80cThierry Strudel int32_t setQuadraCfaMode(uint32_t value, bool initCommit); 2643d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setToneMapMode(uint32_t value, bool initCommit); 2653d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setTintless(bool enable); 2663d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t getLongshotStages(); 2673d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int8_t getBufBatchCount(); 2683d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int8_t getVideoBatchSize(); 2693d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2703d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setManualCaptureMode( 2713d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel QCameraManualCaptureModes value = CAM_MANUAL_CAPTURE_TYPE_OFF); 2723d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel QCameraManualCaptureModes getManualCaptureMode(); 2733d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int64_t getExposureTime(); 2743d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2753d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_capture_frame_config_t getCaptureFrameConfig(); 2763d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setJpegRotation(int rotation); 2773d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint32_t getJpegRotation(); 2783d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2793d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel void setLowLightLevel(cam_low_light_mode_t value); 2803d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_low_light_mode_t getLowLightLevel(); 2813d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool getLowLightCapture(); 2823d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2833d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel /* Dual camera specific */ 2843d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool getDcrf(); 2853d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setRelatedCamSyncInfo( 2863d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_sync_related_sensors_event_info_t* info); 2873d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel const cam_sync_related_sensors_event_info_t* 2883d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel getRelatedCamSyncInfo(void); 2893d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setFrameSyncEnabled(bool enable); 2903d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isFrameSyncEnabled(void); 2913d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getRelatedCamCalibration( 2923d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_related_system_calibration_data_t* calib); 293295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel int32_t bundleRelatedCameras(bool sync); 2943d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel uint8_t fdModeInVideo(); 2953d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isOEMFeatEnabled(); 2963d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 2973d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setZslMode(bool value); 2983d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t updateZSLModeValue(bool value); 2993d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 3003d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isReprocScaleEnabled(); 3013d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool isUnderReprocScaling(); 3023d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getPicSizeFromAPK(int &width, int &height); 3033d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 3043d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t checkFeatureConcurrency(); 3053d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t setInstantAEC(uint8_t enable, bool initCommit); 3063d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 3073d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel int32_t getAnalysisInfo( 3083d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool fdVideoEnabled, 3093d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel bool hal3, 3103d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_feature_mask_t featureMask, 3113d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel cam_analysis_info_t *pAnalysisInfo); 3129e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel int32_t updateDtVc(int32_t *dt, int32_t *vc); 313cca4d9c3be40fe18502f3237f7993b41175ef3a7Thierry Strudel int32_t SetDualCamera(bool value); 314295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel int32_t setCameraControls(int32_t controls); 315295a0ca3b68291081f46052e545d5b0dec308710Thierry Strudel int32_t setSwitchCamera(); 3169e74aae7331f3227542b3e646a0dd658d3467a31Thierry Strudel 3173d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudelprivate: 3183d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel QCameraParameters *mImpl; 3193d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel mutable Mutex mLock; 3203d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}; 3213d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 3223d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel}; // namespace qcamera 3233d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel 3243d63919a23d7e7954e160c48c36713267106c3c2Thierry Strudel#endif 325