/* Copyright (c) 2012, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of The Linux Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef ANDROID_HARDWARE_QCAMERA_USB_PARM_H #define ANDROID_HARDWARE_QCAMERA_USB_PARM_H #include <utils/threads.h> #include <hardware/camera.h> #include <binder/MemoryBase.h> #include <binder/MemoryHeapBase.h> #include <utils/threads.h> #include <cutils/properties.h> #include <camera/Camera.h> #include <camera/QCameraParameters.h> #include <system/window.h> #include <system/camera.h> #include <hardware/camera.h> #include <gralloc_priv.h> #include <hardware/power.h> extern "C" { #include <linux/android_pmem.h> #include <linux/msm_ion.h> #include <camera.h> #include <camera_defs_i.h> } //extern C //Error codes #define NOT_FOUND -1 /****************************************************************************** * Macro definitions ******************************************************************************/ /* enum definitions for picture formats */ static const int PICTURE_FORMAT_JPEG = 1; static const int PICTURE_FORMAT_RAW = 2; /* Default preview width in pixels */ #define DEFAULT_USBCAM_PRVW_WD 1280//640 /* Default preview height in pixels */ #define DEFAULT_USBCAM_PRVW_HT 720//480 /* Default picture format */ #define DEFAULT_USBCAM_PICT_FMT PICTURE_FORMAT_JPEG /* Default picture width in pixels */ #define DEFAULT_USBCAM_PICT_WD 640 /* Default picture height in pixels */ #define DEFAULT_USBCAM_PICT_HT 480 /* Default picture JPEG quality 0-100 */ #define DEFAULT_USBCAM_PICT_QLTY 85 /* Default thumbnail width in pixels */ #define DEFAULT_USBCAM_THUMBNAIL_WD 432 /* Default thumbnail height in pixels */ #define DEFAULT_USBCAM_THUMBNAIL_HT 288 /* Default thumbnail JPEG quality 0-100 */ #define DEFAULT_USBCAM_THUMBNAIL_QLTY 85 /* Default preview format */ #define DEFAULT_USBCAM_PRVW_FMT HAL_PIXEL_FORMAT_YCrCb_420_SP /* minimum of the default preview fps range in milli-Hz */ #define MIN_PREV_FPS 5000 /* maximum of the default preview fps range in milli-Hz */ #define MAX_PREV_FPS 121000 //for histogram stats #define HISTOGRAM_STATS_SIZE 257 #define NUM_HISTOGRAM_BUFFERS 3 namespace android { /****************************************************************************** * Structure definitions ******************************************************************************/ typedef struct { uint32_t aspect_ratio; uint32_t width; uint32_t height; } thumbnail_size_type; /****************************************************************************** * Function: usbCamInitDefaultParameters * Description: This function sets default parameters to camera HAL context * * Input parameters: * camHal - camera HAL handle * * Return values: * 0 No error * -1 Error * * Notes: none *****************************************************************************/ int usbCamInitDefaultParameters(camera_hardware_t *camHal); /****************************************************************************** * Function: usbCamSetParameters * Description: This function parses the parameter string and stores the * parameters in the camera HAL handle * * Input parameters: * camHal - camera HAL handle * params - pointer to parameter string * * Return values: * 0 Success * -1 Error * Notes: none *****************************************************************************/ int usbCamSetParameters(camera_hardware_t *camHal, const char *params); /****************************************************************************** * Function: usbCamGetParameters * Description: This function allocates memory for parameter string, * composes and returns the parameter string * * Input parameters: * camHal - camera HAL handle * * Return values: * Address to the parameter string * * Notes: none *****************************************************************************/ char* usbCamGetParameters(camera_hardware_t *camHal); /****************************************************************************** * Function: usbCamPutParameters * Description: This function frees the memory allocated for parameter string * * Input parameters: * camHal - camera HAL handle * parms - Parameter string * * Return values: * 0 Success * -1 Error * Notes: none *****************************************************************************/ void usbCamPutParameters(camera_hardware_t *camHal, char *parms); }; // namespace android #endif /* ANDROID_HARDWARE_QCAMERA_USB_PARM_H */