1daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang/* 2daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** 3daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** Copyright 2008, The Android Open Source Project 4daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** Copyright 2012, Samsung Electronics Co. LTD 5daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** 6daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** Licensed under the Apache License, Version 2.0 (the "License"); 7daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** you may not use this file except in compliance with the License. 8daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** You may obtain a copy of the License at 9daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** 10daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** http://www.apache.org/licenses/LICENSE-2.0 11daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** 12daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** Unless required by applicable law or agreed to in writing, software 13daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** distributed under the License is distributed on an "AS IS" BASIS, 14daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** See the License for the specific language governing permissions and 16daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang** limitations under the License. 17daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang*/ 18daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 19daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang/*! 20daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * \file ExynosCamera2.h 21daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * \brief header file for static information of camera2 22daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * \author Sungjoong Kang(sj3.kang@samsung.com) 23daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * \date 2012/08/06 24daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * 25daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * <b>Revision History: </b> 26daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * - 2012/08/06 : Sungjoong Kang(sj3.kang@samsung.com) \n 27daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * Initial Release 28daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang * 29daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang */ 30daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 3117071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk#ifndef EXYNOS_CAMERA_2_H 3217071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk#define EXYNOS_CAMERA_2_H 3317071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk 34daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang#include <hardware/camera2.h> 35daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang#include <camera/Camera.h> 36daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang#include <camera/CameraParameters.h> 37daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang#include "exynos_format.h" 38f3312f8b250f3d2774564123ca0d7802f5016df5Younghwan Joo#include "fimc-is-metadata.h" 39daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 40daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangnamespace android { 41daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 4217071e43a448f45e864bc41049528ceb82f21a37Ruben Brunkextern int32_t SUPPORT_THUMBNAIL_REAR_SIZE[3][2]; 4317071e43a448f45e864bc41049528ceb82f21a37Ruben Brunkextern int32_t SUPPORT_THUMBNAIL_FRONT_SIZE[4][2]; 4417071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk 45daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangstruct ExynosCamera2Info 46daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang{ 47daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangpublic: 48daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t sensorW; 49daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t sensorH; 50daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t sensorRawW; 51daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t sensorRawH; 52daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int numScalerResolution; 53daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang const int32_t *scalerResolutions; 54daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int numJpegResolution; 55daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang const int32_t *jpegResolutions; 560f26b20fd328df0ad1cfed28eb456217b22d7780Sungjoong Kang float minFocusDistance; 570f26b20fd328df0ad1cfed28eb456217b22d7780Sungjoong Kang float focalLength; 580f26b20fd328df0ad1cfed28eb456217b22d7780Sungjoong Kang float aperture; 59e00f6591f64959131a8ddfbbcec7ff36c7eee94eSungjoong Kang float fnumber; 6073c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang const uint8_t *availableAfModes; 6173c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang const uint8_t *sceneModeOverrides; 6273c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang const uint8_t *availableAeModes; 6373c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang int numAvailableAfModes; 6473c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang int numSceneModeOverrides; 6573c6337d144f6228136d1a56dcb3635f6cb544d2Sungjoong Kang int numAvailableAeModes; 66fd2d78a2d270f85a71578423e1f2b4f99fd99216Sungjoong Kang 67fd2d78a2d270f85a71578423e1f2b4f99fd99216Sungjoong Kang /* FD information */ 68fd2d78a2d270f85a71578423e1f2b4f99fd99216Sungjoong Kang int32_t maxFaceCount; 69daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang}; 70daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 71daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangstruct ExynosCamera2InfoS5K4E5 : public ExynosCamera2Info 72daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang{ 73daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangpublic: 74daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ExynosCamera2InfoS5K4E5(); 75daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ~ExynosCamera2InfoS5K4E5(); 76daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang}; 77daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 78daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangstruct ExynosCamera2InfoS5K6A3 : public ExynosCamera2Info 79daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang{ 80daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangpublic: 81daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ExynosCamera2InfoS5K6A3(); 82daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ~ExynosCamera2InfoS5K6A3(); 83daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang}; 84daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 85daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangclass ExynosCamera2 { 86daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kangpublic: 87daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ExynosCamera2(int cameraId); 88daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ~ExynosCamera2(); 89daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 90daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang ExynosCamera2Info *m_curCameraInfo; 91daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 92daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t getSensorW(); 93daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t getSensorH(); 94daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t getSensorRawW(); 95daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int32_t getSensorRawH(); 96daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 97daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang bool isSupportedResolution(int width, int height); 98daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang bool isSupportedJpegResolution(int width, int height); 99daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 100daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang status_t constructStaticInfo(camera_metadata_t **info, 101daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int cameraId, bool sizeRequest); 102daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang 103daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang status_t constructDefaultRequest(int request_template, 104daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang camera_metadata_t **request, bool sizeRequest); 105daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang int m_cameraId; 106daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang}; 107daa1fcd6e8861944412e5c77db5eb441512aef38Sungjoong Kang} 10817071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk 10917071e43a448f45e864bc41049528ceb82f21a37Ruben Brunk#endif 110