| /* Copyright (c) 2013, 2016, 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 __MM_QCAMERA_MAIN_MENU_H__ |
| #define __MM_QCAMERA_MAIN_MENU_H__ |
| |
| // Camera dependencies |
| #include "mm_camera_interface.h" |
| #include "mm_jpeg_interface.h" |
| |
| #define VIDEO_BUFFER_SIZE (PREVIEW_WIDTH * PREVIEW_HEIGHT * 3/2) |
| #define THUMBNAIL_BUFFER_SIZE (THUMBNAIL_WIDTH * THUMBNAIL_HEIGHT * 3/2) |
| #define SNAPSHOT_BUFFER_SIZE (PICTURE_WIDTH * PICTURE_HEIGHT * 3/2) |
| |
| /*=========================================================================== |
| * Macro |
| *===========================================================================*/ |
| #define PREVIEW_FRAMES_NUM 5 |
| #define VIDEO_FRAMES_NUM 5 |
| #define THUMBNAIL_FRAMES_NUM 1 |
| #define SNAPSHOT_FRAMES_NUM 1 |
| #define MAX_NUM_FORMAT 32 |
| |
| typedef enum |
| { |
| START_PREVIEW, |
| STOP_PREVIEW, |
| SET_WHITE_BALANCE, |
| SET_TINTLESS_ENABLE, |
| SET_TINTLESS_DISABLE, |
| SET_EXP_METERING, |
| GET_CTRL_VALUE, |
| TOGGLE_AFR, |
| SET_ISO, |
| BRIGHTNESS_GOTO_SUBMENU, |
| CONTRAST_GOTO_SUBMENU, |
| EV_GOTO_SUBMENU, |
| SATURATION_GOTO_SUBMENU, |
| SET_ZOOM, |
| SET_SHARPNESS, |
| TAKE_JPEG_SNAPSHOT, |
| START_RECORDING, |
| STOP_RECORDING, |
| BEST_SHOT, |
| LIVE_SHOT, |
| FLASH_MODES, |
| TOGGLE_ZSL, |
| TAKE_RAW_SNAPSHOT, |
| SWITCH_SNAP_RESOLUTION, |
| TOGGLE_WNR, |
| EXIT |
| } Camera_main_menu_t; |
| |
| typedef enum |
| { |
| ACTION_NO_ACTION, |
| ACTION_START_PREVIEW, |
| ACTION_STOP_PREVIEW, |
| ACTION_SET_WHITE_BALANCE, |
| ACTION_SET_TINTLESS_ENABLE, |
| ACTION_SET_TINTLESS_DISABLE, |
| ACTION_SET_EXP_METERING, |
| ACTION_GET_CTRL_VALUE, |
| ACTION_TOGGLE_AFR, |
| ACTION_SET_ISO, |
| ACTION_BRIGHTNESS_INCREASE, |
| ACTION_BRIGHTNESS_DECREASE, |
| ACTION_CONTRAST_INCREASE, |
| ACTION_CONTRAST_DECREASE, |
| ACTION_EV_INCREASE, |
| ACTION_EV_DECREASE, |
| ACTION_SATURATION_INCREASE, |
| ACTION_SATURATION_DECREASE, |
| ACTION_SET_ZOOM, |
| ACTION_SHARPNESS_INCREASE, |
| ACTION_SHARPNESS_DECREASE, |
| ACTION_TAKE_JPEG_SNAPSHOT, |
| ACTION_START_RECORDING, |
| ACTION_STOP_RECORDING, |
| ACTION_SET_BESTSHOT_MODE, |
| ACTION_TAKE_LIVE_SNAPSHOT, |
| ACTION_SET_FLASH_MODE, |
| ACTION_SWITCH_CAMERA, |
| ACTION_TOGGLE_ZSL, |
| ACTION_TAKE_RAW_SNAPSHOT, |
| ACTION_SWITCH_RESOLUTION, |
| ACTION_TOGGLE_WNR, |
| ACTION_EXIT |
| } camera_action_t; |
| |
| #define INVALID_KEY_PRESS 0 |
| #define BASE_OFFSET ('Z' - 'A' + 1) |
| #define BASE_OFFSET_NUM ('Z' - 'A' + 2) |
| #define PAD_TO_WORD(a) (((a)+3)&~3) |
| |
| |
| #define SQCIF_WIDTH 128 |
| #define SQCIF_HEIGHT 96 |
| #define QCIF_WIDTH 176 |
| #define QCIF_HEIGHT 144 |
| #define QVGA_WIDTH 320 |
| #define QVGA_HEIGHT 240 |
| #define HD_THUMBNAIL_WIDTH 256 |
| #define HD_THUMBNAIL_HEIGHT 144 |
| #define CIF_WIDTH 352 |
| #define CIF_HEIGHT 288 |
| #define VGA_WIDTH 640 |
| #define VGA_HEIGHT 480 |
| #define WVGA_WIDTH 800 |
| #define WVGA_HEIGHT 480 |
| #define WVGA_PLUS_WIDTH 960 |
| #define WVGA_PLUS_HEIGHT 720 |
| |
| #define MP1_WIDTH 1280 |
| #define MP1_HEIGHT 960 |
| #define MP2_WIDTH 1600 |
| #define MP2_HEIGHT 1200 |
| #define MP3_WIDTH 2048 |
| #define MP3_HEIGHT 1536 |
| #define MP5_WIDTH 2592 |
| #define MP5_HEIGHT 1944 |
| #define MP8_WIDTH 3264 |
| #define MP8_HEIGHT 2448 |
| #define MP12_WIDTH 4000 |
| #define MP12_HEIGHT 3000 |
| |
| #define SVGA_WIDTH 800 |
| #define SVGA_HEIGHT 600 |
| #define XGA_WIDTH 1024 |
| #define XGA_HEIGHT 768 |
| #define HD720_WIDTH 1280 |
| #define HD720_HEIGHT 720 |
| #define HD720_PLUS_WIDTH 1440 |
| #define HD720_PLUS_HEIGHT 1080 |
| #define WXGA_WIDTH 1280 |
| #define WXGA_HEIGHT 768 |
| #define HD1080_WIDTH 1920 |
| #define HD1080_HEIGHT 1080 |
| |
| |
| #define ONEMP_WIDTH 1280 |
| #define SXGA_WIDTH 1280 |
| #define UXGA_WIDTH 1600 |
| #define QXGA_WIDTH 2048 |
| #define FIVEMP_WIDTH 2560 |
| |
| |
| #define ONEMP_HEIGHT 960 |
| #define SXGA_HEIGHT 1024 |
| #define UXGA_HEIGHT 1200 |
| #define QXGA_HEIGHT 1536 |
| #define FIVEMP_HEIGHT 1920 |
| |
| |
| typedef enum |
| { |
| RESOLUTION_MIN, |
| QCIF = RESOLUTION_MIN, |
| QVGA, |
| VGA, |
| WVGA, |
| WVGA_PLUS , |
| HD720, |
| HD720_PLUS, |
| HD1080, |
| RESOLUTION_PREVIEW_VIDEO_MAX = HD1080, |
| WXGA, |
| MP1, |
| MP2, |
| MP3, |
| MP5, |
| MP8, |
| MP12, |
| RESOLUTION_MAX = MP12, |
| } Camera_Resolution; |
| |
| typedef struct{ |
| uint16_t width; |
| uint16_t height; |
| char * name; |
| char * str_name; |
| int supported; |
| } DIMENSION_TBL_T; |
| |
| typedef enum { |
| WHITE_BALANCE_STATE, |
| WHITE_BALANCE_TEMPERATURE, |
| BRIGHTNESS_CTRL, |
| EV, |
| CONTRAST_CTRL, |
| SATURATION_CTRL, |
| SHARPNESS_CTRL |
| } Get_Ctrl_modes; |
| |
| typedef enum { |
| AUTO_EXP_FRAME_AVG, |
| AUTO_EXP_CENTER_WEIGHTED, |
| AUTO_EXP_SPOT_METERING, |
| AUTO_EXP_SMART_METERING, |
| AUTO_EXP_USER_METERING, |
| AUTO_EXP_SPOT_METERING_ADV, |
| AUTO_EXP_CENTER_WEIGHTED_ADV, |
| AUTO_EXP_MAX |
| } Exp_Metering_modes; |
| |
| typedef enum { |
| ISO_AUTO, |
| ISO_DEBLUR, |
| ISO_100, |
| ISO_200, |
| ISO_400, |
| ISO_800, |
| ISO_1600, |
| ISO_MAX |
| } ISO_modes; |
| |
| typedef enum { |
| BESTSHOT_AUTO, |
| BESTSHOT_ACTION, |
| BESTSHOT_PORTRAIT, |
| BESTSHOT_LANDSCAPE, |
| BESTSHOT_NIGHT, |
| BESTSHOT_NIGHT_PORTRAIT, |
| BESTSHOT_THEATRE, |
| BESTSHOT_BEACH, |
| BESTSHOT_SNOW, |
| BESTSHOT_SUNSET, |
| BESTSHOT_ANTISHAKE, |
| BESTSHOT_FIREWORKS, |
| BESTSHOT_SPORTS, |
| BESTSHOT_PARTY, |
| BESTSHOT_CANDLELIGHT, |
| BESTSHOT_ASD, |
| BESTSHOT_BACKLIGHT, |
| BESTSHOT_FLOWERS, |
| BESTSHOT_AR, |
| BESTSHOT_HDR, |
| BESTSHOT_MAX |
| }Bestshot_modes; |
| |
| typedef enum { |
| FLASH_MODE_OFF, |
| FLASH_MODE_AUTO, |
| FLASH_MODE_ON, |
| FLASH_MODE_TORCH, |
| FLASH_MODE_MAX, |
| }Flash_modes; |
| |
| typedef enum { |
| WB_AUTO, |
| WB_INCANDESCENT, |
| WB_FLUORESCENT, |
| WB_WARM_FLUORESCENT, |
| WB_DAYLIGHT, |
| WB_CLOUDY_DAYLIGHT, |
| WB_TWILIGHT, |
| WB_SHADE, |
| WB_MAX |
| } White_Balance_modes; |
| |
| typedef enum |
| { |
| MENU_ID_MAIN, |
| MENU_ID_WHITEBALANCECHANGE, |
| MENU_ID_EXPMETERINGCHANGE, |
| MENU_ID_GET_CTRL_VALUE, |
| MENU_ID_TOGGLEAFR, |
| MENU_ID_ISOCHANGE, |
| MENU_ID_BRIGHTNESSCHANGE, |
| MENU_ID_CONTRASTCHANGE, |
| MENU_ID_EVCHANGE, |
| MENU_ID_SATURATIONCHANGE, |
| MENU_ID_ZOOMCHANGE, |
| MENU_ID_SHARPNESSCHANGE, |
| MENU_ID_BESTSHOT, |
| MENU_ID_FLASHMODE, |
| MENU_ID_SENSORS, |
| MENU_ID_SWITCH_RES, |
| MENU_ID_INVALID, |
| } menu_id_change_t; |
| |
| typedef enum |
| { |
| DECREASE_ZOOM, |
| INCREASE_ZOOM, |
| INCREASE_STEP_ZOOM, |
| DECREASE_STEP_ZOOM, |
| } Camera_Zoom; |
| |
| typedef enum |
| { |
| INC_CONTRAST, |
| DEC_CONTRAST, |
| } Camera_Contrast_changes; |
| |
| typedef enum |
| { |
| INC_BRIGHTNESS, |
| DEC_BRIGHTNESS, |
| } Camera_Brightness_changes; |
| |
| typedef enum |
| { |
| INCREASE_EV, |
| DECREASE_EV, |
| } Camera_EV_changes; |
| |
| typedef enum { |
| INC_SATURATION, |
| DEC_SATURATION, |
| } Camera_Saturation_changes; |
| |
| typedef enum |
| { |
| INC_ISO, |
| DEC_ISO, |
| } Camera_ISO_changes; |
| |
| typedef enum |
| { |
| INC_SHARPNESS, |
| DEC_SHARPNESS, |
| } Camera_Sharpness_changes; |
| |
| typedef enum { |
| ZOOM_IN, |
| ZOOM_OUT, |
| } Zoom_direction; |
| |
| typedef struct{ |
| Camera_main_menu_t main_menu; |
| char * menu_name; |
| } CAMERA_MAIN_MENU_TBL_T; |
| |
| typedef struct{ |
| char * menu_name; |
| int present; |
| } CAMERA_SENSOR_MENU_TLB_T; |
| |
| typedef struct{ |
| Camera_Resolution cs_id; |
| uint16_t width; |
| uint16_t height; |
| char * name; |
| char * str_name; |
| } PREVIEW_DIMENSION_TBL_T; |
| |
| typedef struct { |
| White_Balance_modes wb_id; |
| char * wb_name; |
| } WHITE_BALANCE_TBL_T; |
| |
| typedef struct { |
| Get_Ctrl_modes get_ctrl_id; |
| char * get_ctrl_name; |
| } GET_CTRL_TBL_T; |
| |
| typedef struct{ |
| Exp_Metering_modes exp_metering_id; |
| char * exp_metering_name; |
| } EXP_METERING_TBL_T; |
| |
| typedef struct { |
| Bestshot_modes bs_id; |
| char *name; |
| } BESTSHOT_MODE_TBT_T; |
| |
| typedef struct { |
| Flash_modes bs_id; |
| char *name; |
| } FLASH_MODE_TBL_T; |
| |
| typedef struct { |
| ISO_modes iso_modes; |
| char *iso_modes_name; |
| } ISO_TBL_T; |
| |
| typedef struct { |
| Zoom_direction zoom_direction; |
| char * zoom_direction_name; |
| } ZOOM_TBL_T; |
| |
| typedef struct { |
| Camera_Sharpness_changes sharpness_change; |
| char *sharpness_change_name; |
| } SHARPNESS_TBL_T; |
| |
| typedef struct { |
| Camera_Brightness_changes bc_id; |
| char * brightness_name; |
| } CAMERA_BRIGHTNESS_TBL_T; |
| |
| typedef struct { |
| Camera_Contrast_changes cc_id; |
| char * contrast_name; |
| } CAMERA_CONTRST_TBL_T; |
| |
| typedef struct { |
| Camera_EV_changes ec_id; |
| char * EV_name; |
| } CAMERA_EV_TBL_T; |
| |
| typedef struct { |
| Camera_Saturation_changes sc_id; |
| char * saturation_name; |
| } CAMERA_SATURATION_TBL_T; |
| |
| typedef struct { |
| Camera_Sharpness_changes bc_id; |
| char * sharpness_name; |
| } CAMERA_SHARPNESS_TBL_T; |
| |
| #endif /* __MM_QCAMERA_MAIN_MENU_H__ */ |