1 /* Copyright (c) 2017, The Linux Foundation. All rights reserved. 2 * 3 * Redistribution and use in source and binary forms, with or without 4 * modification, are permitted provided that the following conditions are 5 * met: 6 * * Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * * Redistributions in binary form must reproduce the above 9 * copyright notice, this list of conditions and the following 10 * disclaimer in the documentation and/or other materials provided 11 * with the distribution. 12 * * Neither the name of The Linux Foundation nor the names of its 13 * contributors may be used to endorse or promote products derived 14 * from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 */ 29 30 #ifndef __QCAMERAEXTZOOMTRANSLATOR_H__ 31 #define __QCAMERAEXTZOOMTRANSLATOR_H__ 32 33 #include "cam_intf.h" 34 35 using namespace android; 36 37 namespace qcamera { 38 39 typedef enum { 40 MODE_CAMERA, 41 MODE_CAMCORDER, 42 MODE_RTB 43 } dual_cam_mode; 44 45 typedef struct { 46 uint32_t width; 47 uint32_t height; 48 } dimension_t; 49 50 typedef struct { 51 dual_cam_mode mode; 52 void* calibData; 53 uint32_t calibDataSize; 54 dimension_t previewDimension; 55 dimension_t ispOutDimension; 56 dimension_t sensorOutDimensionMain; 57 dimension_t sensorOutDimensionAux; 58 uint32_t *zoomRatioTable; 59 uint32_t zoomRatioTableCount; 60 } zoom_trans_init_data; 61 62 class QCameraExtZoomTranslator { 63 public: 64 ~QCameraExtZoomTranslator(); 65 static QCameraExtZoomTranslator* create(); 66 int32_t init(zoom_trans_init_data initData); 67 int32_t deInit(); 68 int32_t getZoomValues(uint32_t userZoom, uint32_t *wideZoom, uint32_t *teleZoom); 69 bool isInitialized(); 70 private: 71 QCameraExtZoomTranslator(); 72 73 void *mLibHandle; 74 bool mInitSuccess; 75 zoom_trans_init_data mInitData; 76 }; 77 78 }; // namespace qcamera 79 80 #endif /* __QCAMERAEXTZOOMTRANSLATOR_H__ */ 81