1/* Copyright (c) 2015-2016, 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 __QCAMERA3CROPREGIONMAPPER_H__ 31#define __QCAMERA3CROPREGIONMAPPER_H__ 32 33// System dependencies 34#include <utils/Errors.h> 35 36using namespace android; 37 38namespace qcamera { 39 40class QCamera3CropRegionMapper { 41public: 42 QCamera3CropRegionMapper(); 43 virtual ~QCamera3CropRegionMapper(); 44 45 void update(uint32_t active_array_w, uint32_t active_array_h, 46 uint32_t sensor_w, uint32_t sensor_h); 47 void toActiveArray(int32_t& crop_left, int32_t& crop_top, 48 int32_t& crop_width, int32_t& crop_height); 49 void toSensor(int32_t& crop_left, int32_t& crop_top, 50 int32_t& crop_width, int32_t& crop_height); 51 void toActiveArray(uint32_t& x, uint32_t& y); 52 void toSensor(uint32_t& x, uint32_t& y); 53 54private: 55 /* sensor output size */ 56 int32_t mSensorW, mSensorH; 57 int32_t mActiveArrayW, mActiveArrayH; 58 59 void boundToSize(int32_t& left, int32_t& top, int32_t& width, 60 int32_t& height, int32_t bound_w, int32_t bound_h); 61}; 62 63}; // namespace qcamera 64 65#endif /* __QCAMERA3CROPREGIONMAPPER_H__ */ 66