Home | History | Annotate | Download | only in util
      1 /* Copyright (c) 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 __QCAMERADUALCAMSETTINGS_H__
     31 #define __QCAMERADUALCAMSETTINGS_H__
     32 
     33 typedef enum {
     34     NONE,
     35     SENSOR_SLEEP,
     36     ISPIF_FRAME_DROP
     37 } dual_cam_low_power_mode;
     38 
     39 
     40 // Dual camera settings
     41 
     42 // This setting should be 1 if hw sync is in place, 0 otherwise.
     43 #define DUALCAM_HW_SYNC_ENABLED                 (1)
     44 
     45 // This setting enables/disables LPM. When disabled(0), none of the cameras will go
     46 // into low power mode.
     47 #define DUALCAM_LPM_ENABLE                      (1)
     48 
     49 // This setting indicates low power modes for two cameras. Possible low power modes are listed
     50 // under dual_cam_low_power_mode.
     51 #define DUALCAM_LPM_MAIN                   (ISPIF_FRAME_DROP)
     52 #define DUALCAM_LPM_AUX                    (SENSOR_SLEEP)
     53 
     54 
     55 // FOV-control settings
     56 
     57 // Main camera fallback mechanism for low light and macro scene
     58 // If set to 1, low light and macro scene will force the transition from narrow FOV to
     59 // wide FOV camera
     60 // If set to 0, these conditions are ignored and the forced transition from narrow FOV to
     61 // wide FOV camera will not take place
     62 #define FOVC_MAIN_CAM_FALLBACK_MECHANISM        (1)
     63 
     64 // Use external zoom translator. Setting this to 1 allows opening an external lib containing
     65 // implementation for custom zoom translation for user zoom to wide zoom and tele zoom. This
     66 // would override the default zoom translation logic present in the FOV-control.
     67 #define FOVC_USE_EXTERNAL_ZOOM_TRANSLATOR       (0)
     68 
     69 // camera mode settings
     70 
     71 // This setting will enable the snapshot postprocessing.
     72 // If set to 1, it will enable capturing snapshots from both the cameras and feeding those
     73 // to snapshot postprocessing algorithm.
     74 // If set to 0, a snapshot is captured only from the master camera session at any time.
     75 #define FOVC_CAM_SNAPSHOT_PP_ENABLE             (1)
     76 
     77 // This setting indicates the minimum zoom value for the snapshot postprocessing.
     78 // Snapshot postprocessing is only enabled for zoom equal to and higher than this value.
     79 #define FOVC_CAM_SNAPSHOT_PP_ZOOM_MIN           (1.5)
     80 
     81 // This setting indicates the maximum zoom value for the snapshot postprocessing.
     82 // Snapshot postprocessing is only enabled for zoom equal to and lower than this value.
     83 #define FOVC_CAM_SNAPSHOT_PP_ZOOM_MAX           (2.75)
     84 
     85 // This setting indicates the minimum lux value for snapshot postprocessing.
     86 // If the current lux is lower than this value, snapshot postprocessing will be disabled
     87 #define FOVC_CAM_SNAPSHOT_PP_LUX_MIN            (100)
     88 
     89 // camcorder mode settings
     90 
     91 // This setting will enable the snapshot postprocessing.
     92 // If set to 1, it will enable capturing snapshots from both the cameras and feeding those
     93 // to snapshot postprocessing algorithm.
     94 // If set to 0, a snapshot is captured only from the master camera session at any time.
     95 #define FOVC_CAMCORDER_SNAPSHOT_PP_ENABLE       (0)
     96 
     97 // Main and Aux camera switch settings
     98 // These values indicates the lux amd min focus distance thresholds to switch the preview
     99 // from main to aux camera. If the current lux or focus distance values are lower than
    100 // these thresholds, camera preview will not switch from main to aux.
    101 #define FOVC_AUXCAM_SWITCH_LUX_MIN              (100)
    102 #define FOVC_AUXCAM_SWITCH_FOCUS_DIST_CM_MIN    (15)
    103 
    104 // This setting indicates the threshold for zoom stable count in terms of number of frames.
    105 // This is a power optimization setting. When in the transition zone, if the zoom doesn't
    106 // change for thse many frames, the non-master camera is put in LPM.
    107 #define FOVC_ZOOM_STABLE_COUNT_THRESHOLD        (15)
    108 
    109 // This setting indicates the threshold for focus distance stable count in terms of number of frames
    110 // This threshold is used for the macro scene focus and change the camera state accordingly.
    111 #define FOVC_FOCUS_DIST_STABLE_COUNT_THRESHOLD  (15)
    112 
    113 // This setting indicates the threshold for brightness stable count in terms of number of frames.
    114 // This threshold is used for the low light condition and change the camera state accordingly.
    115 #define FOVC_BRIGHTNESS_STABLE_COUNT_THRESHOLD  (15)
    116 
    117 #endif /* __QCAMERADUALCAM_H__ */
    118