18089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/* Copyright (c) 2013, The Linux Foundation. All rights reserved. 28089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 38089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * Redistribution and use in source and binary forms, with or without 48089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * modification, are permitted provided that the following conditions are 58089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * met: 68089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * * Redistributions of source code must retain the above copyright 78089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * notice, this list of conditions and the following disclaimer. 88089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * * Redistributions in binary form must reproduce the above 98089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * copyright notice, this list of conditions and the following 108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * disclaimer in the documentation and/or other materials provided 118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * with the distribution. 128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * * Neither the name of The Linux Foundation nor the names of its 138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * contributors may be used to endorse or promote products derived 148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * from this software without specific prior written permission. 158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian */ 298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <stdio.h> 318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <string.h> 328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <unistd.h> 338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <stdlib.h> 348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <ctype.h> 358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include <inttypes.h> 368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include "mm_qcamera_main_menu.h" 388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include "mm_qcamera_app.h" 398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#include "mm_qcamera_dbg.h" 40c92536da4a917d477b40ce3196f354aa010ca34eJeyaprakash Soundrapandian#include "mm_qcamera_socket.h" 418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 421922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev/*=========================================================================== 431922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev * Macro 441922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev *===========================================================================*/ 45119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev#define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) 468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define VIDEO_BUFFER_SIZE (PREVIEW_WIDTH * PREVIEW_HEIGHT * 3/2) 478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define THUMBNAIL_BUFFER_SIZE (THUMBNAIL_WIDTH * THUMBNAIL_HEIGHT * 3/2) 488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define SNAPSHOT_BUFFER_SIZE (PICTURE_WIDTH * PICTURE_HEIGHT * 3/2) 491922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev//TODO:check this Macros with current app. 501922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev 518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 521922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev * Defines 538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian *===========================================================================*/ 548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//#define VIDEO_FRAMES_NUM 4 558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define THUMBNAIL_FRAMES_NUM 1 568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define SNAPSHOT_FRAMES_NUM 1 578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define MAX_NUM_FORMAT 32 588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define ZOOM_STEP 2 598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define ZOOM_MIN_VALUE 0 608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define EXPOSURE_COMPENSATION_MAXIMUM_NUMERATOR 12 618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define EXPOSURE_COMPENSATION_MINIMUM_NUMERATOR -12 628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define EXPOSURE_COMPENSATION_DEFAULT_NUMERATOR 0 638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#define EXPOSURE_COMPENSATION_DENOMINATOR 6 641922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev 651922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev//TODO: find correct values of Contrast defines. 661922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MIN_CONTRAST 0 671922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_DEF_CONTRAST 5 681922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MAX_CONTRAST 10 691922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_CONTRAST_STEP 1 701922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev 711922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev//TODO: find correct values of Brightness defines. 721922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MIN_BRIGHTNESS 0 731922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_DEF_BRIGHTNESS 3 741922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MAX_BRIGHTNESS 6 751922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_BRIGHTNESS_STEP 1 761922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev 771922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev//TODO: find correct values of Saturation defines. 781922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MIN_SATURATION 0 791922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_DEF_SATURATION 5 801922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MAX_SATURATION 10 811922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_SATURATION_STEP 1 821922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev 831922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MIN_SHARPNESS 0 841922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_MAX_SHARPNESS 10 851922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_DEF_SHARPNESS 5 861922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#define CAMERA_SHARPNESS_STEP 1 878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_MAIN_MENU_TBL_T camera_main_menu_tbl[] = { 898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {START_PREVIEW, "Start preview"}, 908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {STOP_PREVIEW, "Stop preview/video"}, 918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SET_WHITE_BALANCE, "Set white balance mode"}, 9280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu {SET_TINTLESS_ENABLE, "Set Tintless Enable"}, 9380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu {SET_TINTLESS_DISABLE, "Set Tintless Disable"}, 948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SET_EXP_METERING, "Set exposure metering mode"}, 958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {GET_CTRL_VALUE, "Get control value menu"}, 968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {TOGGLE_AFR, "Toggle auto frame rate. Default fixed frame rate"}, 978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SET_ISO, "ISO changes."}, 988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BRIGHTNESS_GOTO_SUBMENU, "Brightness changes."}, 998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {CONTRAST_GOTO_SUBMENU, "Contrast changes."}, 1008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {EV_GOTO_SUBMENU, "EV changes."}, 1018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SATURATION_GOTO_SUBMENU, "Saturation changes."}, 1028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SET_ZOOM, "Set Digital Zoom."}, 1038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {SET_SHARPNESS, "Set Sharpness."}, 1048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {TAKE_JPEG_SNAPSHOT, "Take a snapshot"}, 1058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {START_RECORDING, "Start RECORDING"}, 1068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {STOP_RECORDING, "Stop RECORDING"}, 1078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BEST_SHOT, "Set best-shot mode"}, 1088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {LIVE_SHOT, "Take a live snapshot"}, 1098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {FLASH_MODES, "Set Flash modes"}, 1108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {TOGGLE_ZSL, "Toggle ZSL On/Off"}, 111c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev {TAKE_RAW_SNAPSHOT, "Take RAW snapshot"}, 1123183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev {SWITCH_SNAP_RESOLUTION, "Select Jpeg resolution"}, 1137dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev {TOGGLE_WNR, "Toggle Wavelet Denoise"}, 1148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {EXIT, "Exit"} 1158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 117119b95a1391161cde494c1b34e5edd17abd0354bEmilian PeevCAMERA_SENSOR_MENU_TLB_T sensor_tbl[] = { 118119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev {"Primary Camera", 0}, 119119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev {"Secondary Camera", 0}, 120119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev {"Camera Sensor 3", 0}, 121119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev {"Camera Sensor 4", 0} 122119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev}; 123119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_BRIGHTNESS_TBL_T brightness_change_tbl[] = { 1258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {INC_BRIGHTNESS, "Increase Brightness by one step."}, 1268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {DEC_BRIGHTNESS, "Decrease Brightness by one step."}, 1278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_CONTRST_TBL_T contrast_change_tbl[] = { 1308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {INC_CONTRAST, "Increase Contrast by one step."}, 1318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {DEC_CONTRAST, "Decrease Contrast by one step."}, 1328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_EV_TBL_T camera_EV_tbl[] = { 1358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {INCREASE_EV, "Increase EV by one step."}, 1368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {DECREASE_EV, "Decrease EV by one step."}, 1378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_SATURATION_TBL_T camera_saturation_tbl[] = { 1408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {INC_SATURATION, "Increase Satuation by one step."}, 1418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {DEC_SATURATION, "Decrease Satuation by one step."}, 1428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst CAMERA_SHARPNESS_TBL_T camera_sharpness_tbl[] = { 1458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {INC_SHARPNESS, "Increase Sharpness."}, 1468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {DEC_SHARPNESS, "Decrease Sharpness."}, 1478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst WHITE_BALANCE_TBL_T white_balance_tbl[] = { 1508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_AUTO, "White Balance - Auto"}, 1518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_INCANDESCENT, "White Balance - Incandescent"}, 1528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_FLUORESCENT, "White Balance - Fluorescent"}, 1538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_WARM_FLUORESCENT, "White Balance - Warm Fluorescent"}, 1548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_DAYLIGHT, "White Balance - Daylight"}, 1558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_CLOUDY_DAYLIGHT, "White Balance - Cloudy Daylight"}, 1568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_TWILIGHT, "White Balance - Twilight"}, 1578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WB_SHADE, "White Balance - Shade"}, 1588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst GET_CTRL_TBL_T get_ctrl_tbl[] = { 1618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WHITE_BALANCE_STATE, "Get white balance state (auto/off)"}, 1628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { WHITE_BALANCE_TEMPERATURE, "Get white balance temperature"}, 1638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { BRIGHTNESS_CTRL, "Get brightness value"}, 1648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { EV, "Get exposure value"}, 1658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { CONTRAST_CTRL, "Get contrast value"}, 1668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { SATURATION_CTRL, "Get saturation value"}, 1678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { SHARPNESS_CTRL, "Get sharpness value"}, 1688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst EXP_METERING_TBL_T exp_metering_tbl[] = { 1718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_FRAME_AVG, "Exposure Metering - Frame Average"}, 1728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_CENTER_WEIGHTED, "Exposure Metering - Center Weighted"}, 1738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_SPOT_METERING, "Exposure Metering - Spot Metering"}, 1748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_SMART_METERING, "Exposure Metering - Smart Metering"}, 1758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_USER_METERING, "Exposure Metering - User Metering"}, 1768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_SPOT_METERING_ADV, "Exposure Metering - Spot Metering Adv"}, 1778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { AUTO_EXP_CENTER_WEIGHTED_ADV,"Exposure Metering - Center Weighted Adv"}, 1788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst ISO_TBL_T iso_tbl[] = { 1818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_AUTO, "ISO: Auto"}, 1828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_DEBLUR, "ISO: Deblur"}, 1838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_100, "ISO: 100"}, 1848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_200, "ISO: 200"}, 1858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_400, "ISO: 400"}, 1868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_800, "ISO: 800"}, 1878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ISO_1600, "ISO: 1600"}, 1888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst ZOOM_TBL_T zoom_tbl[] = { 1918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ZOOM_IN, "Zoom In one step"}, 1928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { ZOOM_OUT, "Zoom Out one step"}, 1938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 1948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst BESTSHOT_MODE_TBT_T bestshot_mode_tbl[] = { 1968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_AUTO, "Bestshot Mode: Auto"}, 1978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_ACTION, "Bestshot Mode: Action"}, 1988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_PORTRAIT, "Bestshot Mode: Portrait"}, 1998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_LANDSCAPE, "Bestshot Mode: Landscape"}, 2008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_NIGHT, "Bestshot Mode: Night"}, 2018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_NIGHT_PORTRAIT, "Bestshot Mode: Night Portrait"}, 2028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_THEATRE, "Bestshot Mode: Theatre"}, 2038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_BEACH, "Bestshot Mode: Beach"}, 2048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_SNOW, "Bestshot Mode: Snow"}, 2058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_SUNSET, "Bestshot Mode: Sunset"}, 2068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_ANTISHAKE, "Bestshot Mode: Antishake"}, 2078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_FIREWORKS, "Bestshot Mode: Fireworks"}, 2088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_SPORTS, "Bestshot Mode: Sports"}, 2098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_PARTY, "Bestshot Mode: Party"}, 2108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_CANDLELIGHT, "Bestshot Mode: Candlelight"}, 2118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_ASD, "Bestshot Mode: ASD"}, 2128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_BACKLIGHT, "Bestshot Mode: Backlight"}, 2138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_FLOWERS, "Bestshot Mode: Flowers"}, 2148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_AR, "Bestshot Mode: Augmented Reality"}, 2158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian {BESTSHOT_HDR, "Bestshot Mode: HDR"}, 2168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 2178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianconst FLASH_MODE_TBL_T flashmodes_tbl[] = { 2198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { FLASH_MODE_OFF, "Flash Mode Off"}, 2208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { FLASH_MODE_AUTO, "Flash Mode Auto"}, 2218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { FLASH_MODE_ON, "Flash Mode On"}, 2228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian { FLASH_MODE_TORCH, "Flash Mode Torch"}, 2238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian}; 2248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2253183ead484de541a04640edd93d3a30e58a94dc5Emilian PeevDIMENSION_TBL_T dimension_tbl[] = { 2263183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{VGA_WIDTH, VGA_HEIGHT, "VGA", "Size: VGA <640x480>" , 0}, 2273183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{MP1_WIDTH, MP1_HEIGHT, "1MP", "Size: 1MP <1280x960>" , 0}, 2283183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{MP5_WIDTH, MP5_HEIGHT, "5MP", "Size: 5MP <2592x1944>", 0}, 2293183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{MP8_WIDTH, MP8_HEIGHT, "8MP", "Size: 8MP <3264x2448>", 0}, 2303183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{MP12_WIDTH, MP12_HEIGHT, "12MP", "Size: 12MP <4000x3000>", 0}, 2313183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev}; 2323183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 2338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 2348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * Forward declarations 2358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian *===========================================================================*/ 236605365faedc69ae85b5a9562d192c93a61860820Emilian Peev//static void system_dimension_set(mm_camera_test_obj_t *test_obj); 2378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 2388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * Static global variables 2398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian *===========================================================================*/ 2408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash SoundrapandianUSER_INPUT_DISPLAY_T input_display; 2418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint preview_video_resolution_flag = 0; 2428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//TODO: default values. 2441922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#if 1 2458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint brightness = CAMERA_DEF_BRIGHTNESS; 2468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint contrast = CAMERA_DEF_CONTRAST; 2478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint saturation = CAMERA_DEF_SATURATION; 2488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint sharpness = CAMERA_DEF_SHARPNESS; 2491922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#else 2508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint brightness = 0; 2518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint contrast = 0; 2528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint saturation = 0; 2538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint sharpness = 0; 2541922a5ea7d39787e3aaf1072ba5ef3e2d54bce4aNikola Georgiev#endif 2558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//TODO: find new method to calculate ev. 2568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//int32_t ev_numerator = EXPOSURE_COMPENSATION_DEFAULT_NUMERATOR; 2578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//TODO: 2598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian//fps_mode_t fps_mode = FPS_MODE_FIXED; 2608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint zoom_level; 2618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint zoom_max_value; 2628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint cam_id; 2638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint is_rec = 0; 2648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic int submain(); 2678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 2698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - keypress_to_event - 2708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 2718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 2728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian *==========================================================================*/ 2738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint keypress_to_event(char keypress) 2748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 2758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char out_buf = INVALID_KEY_PRESS; 2768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if ((keypress >= 'A' && keypress <= 'Z') || 2778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian (keypress >= 'a' && keypress <= 'z')) { 2788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian out_buf = tolower(keypress); 2798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian out_buf = out_buf - 'a'; 2803183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } else if (keypress >= '0' && keypress <= '9') { 2813183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev out_buf = keypress - '0'; 2828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 2838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return out_buf; 2848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 2858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint next_menu(menu_id_change_t current_menu_id, char keypress, camera_action_t * action_id_ptr, int * action_param) 2878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 2888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char output_to_event; 2898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian menu_id_change_t next_menu_id = MENU_ID_INVALID; 2908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_NO_ACTION; 2918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian output_to_event = keypress_to_event(keypress); 2938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("current_menu_id=%d\n",current_menu_id); 2948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("output_to_event=%d\n",output_to_event); 2958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch(current_menu_id) { 2968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_MAIN: 2978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch(output_to_event) { 2988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case START_PREVIEW: 2998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_START_PREVIEW; 3008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("START_PREVIEW\n"); 3018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case STOP_PREVIEW: 3038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_STOP_PREVIEW; 3048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("STOP_PREVIEW\n"); 3058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SET_WHITE_BALANCE: 3088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_WHITEBALANCECHANGE; 3098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_WHITEBALANCECHANGE = %d\n", next_menu_id); 3108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 31280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu case SET_TINTLESS_ENABLE: 31380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu * action_id_ptr = ACTION_SET_TINTLESS_ENABLE; 31480bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu next_menu_id = MENU_ID_MAIN; 31580bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG("next_menu_id = MENU_ID_TINTLESSENABLE = %d\n", next_menu_id); 31680bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu break; 31780bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu 31880bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu case SET_TINTLESS_DISABLE: 31980bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu * action_id_ptr = ACTION_SET_TINTLESS_DISABLE; 32080bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu next_menu_id = MENU_ID_MAIN; 32180bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG("next_menu_id = MENU_ID_TINTLESSDISABLE = %d\n", next_menu_id); 32280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu break; 32380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu 3248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SET_EXP_METERING: 3258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_EXPMETERINGCHANGE; 3268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_EXPMETERINGCHANGE = %d\n", next_menu_id); 3278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case GET_CTRL_VALUE: 3308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_GET_CTRL_VALUE; 3318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_GET_CTRL_VALUE = %d\n", next_menu_id); 3328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BRIGHTNESS_GOTO_SUBMENU: 3358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_BRIGHTNESSCHANGE; 3368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_BRIGHTNESSCHANGE = %d\n", next_menu_id); 3378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case CONTRAST_GOTO_SUBMENU: 3408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_CONTRASTCHANGE; 3418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case EV_GOTO_SUBMENU: 3448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_EVCHANGE; 3458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SATURATION_GOTO_SUBMENU: 3488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_SATURATIONCHANGE; 3498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case TOGGLE_AFR: 3528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_TOGGLE_AFR; 3538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_TOGGLEAFR = %d\n", next_menu_id); 3548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SET_ISO: 3578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_ISOCHANGE; 3588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_ISOCHANGE = %d\n", next_menu_id); 3598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SET_ZOOM: 3628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_ZOOMCHANGE; 3638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_ZOOMCHANGE = %d\n", next_menu_id); 3648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BEST_SHOT: 3678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_BESTSHOT; 3688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_BESTSHOT = %d\n", next_menu_id); 3698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case LIVE_SHOT: 3728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_TAKE_LIVE_SNAPSHOT; 3738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("\nTaking Live snapshot\n"); 3748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case FLASH_MODES: 3778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_FLASHMODE; 3788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_FLASHMODE = %d\n", next_menu_id); 3798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case SET_SHARPNESS: 3828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_SHARPNESSCHANGE; 3838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_SHARPNESSCHANGE = %d\n", next_menu_id); 3848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3863183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev case SWITCH_SNAP_RESOLUTION: 3873183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev next_menu_id = MENU_ID_SWITCH_RES; 3883183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev CDBG("next_menu_id = MENU_ID_SWITCH_RES = %d\n", next_menu_id); 3893183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev break; 3903183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 3918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case TAKE_JPEG_SNAPSHOT: 3928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_TAKE_JPEG_SNAPSHOT; 3938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n Taking JPEG snapshot\n"); 3948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 3958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 3968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case START_RECORDING: 3978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_START_RECORDING; 3988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Start recording\n"); 3998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case STOP_RECORDING: 4018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_STOP_RECORDING; 4028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Stop recording\n"); 4038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case TOGGLE_ZSL: 4058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_TOGGLE_ZSL; 4068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Toggle ZSL\n"); 4078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 408c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case TAKE_RAW_SNAPSHOT: 409c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev * action_id_ptr = ACTION_TAKE_RAW_SNAPSHOT; 410c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev next_menu_id = MENU_ID_MAIN; 411c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG("Capture RAW\n"); 412c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 4137dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev case TOGGLE_WNR: 4147dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev * action_id_ptr = ACTION_TOGGLE_WNR; 4157dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev next_menu_id = MENU_ID_MAIN; 4167dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev CDBG("Toggle WNR"); 4177dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev break; 4188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case EXIT: 4198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_EXIT; 4208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Exit \n"); 4218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 4238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 4248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("next_menu_id = MENU_ID_MAIN = %d\n", next_menu_id); 4258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 4278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4293183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev case MENU_ID_SWITCH_RES: 4303183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("MENU_ID_SWITCH_RES\n"); 4313183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev *action_id_ptr = ACTION_SWITCH_RESOLUTION; 4323183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev *action_param = output_to_event; 4333183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev int available_sizes = sizeof(dimension_tbl)/sizeof(dimension_tbl[0]); 4343183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev if ( ( *action_param >= 0 ) && 4353183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev ( *action_param < available_sizes ) && 4363183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev ( dimension_tbl[*action_param].supported )) { 4373183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev next_menu_id = MENU_ID_MAIN; 4383183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 4393183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev else { 4403183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev next_menu_id = current_menu_id; 4413183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 4423183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev break; 4433183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 444119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case MENU_ID_SENSORS: 445119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev next_menu_id = MENU_ID_MAIN; 446119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev *action_id_ptr = ACTION_SWITCH_CAMERA; 447119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev *action_param = output_to_event; 448119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 449119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 4508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_WHITEBALANCECHANGE: 4518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MENU_ID_WHITEBALANCECHANGE\n"); 4520e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev if (output_to_event >= WB_MAX) { 4538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 4540e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_NO_ACTION; 4550e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev } else { 4560e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev next_menu_id = MENU_ID_MAIN; 4570e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_SET_WHITE_BALANCE; 4580e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_param = output_to_event; 4598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 4608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_EXPMETERINGCHANGE: 4638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MENU_ID_EXPMETERINGCHANGE\n"); 4640e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev if (output_to_event >= AUTO_EXP_MAX) { 4658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 4660e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_NO_ACTION; 4670e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev } else { 4680e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev next_menu_id = MENU_ID_MAIN; 4690e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_SET_EXP_METERING; 4700e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_param = output_to_event; 4718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 4728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_GET_CTRL_VALUE: 4758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MENU_ID_GET_CTRL_VALUE\n"); 4768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_GET_CTRL_VALUE; 4778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (output_to_event > 0 && 4788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian output_to_event <= sizeof(get_ctrl_tbl)/sizeof(get_ctrl_tbl[0])) { 4798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 4808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_param = output_to_event; 4818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 4828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else { 4838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 4848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 4858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_BRIGHTNESSCHANGE: 4888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (output_to_event) { 4898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case INC_BRIGHTNESS: 4908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_BRIGHTNESS_INCREASE; 4918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 4928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case DEC_BRIGHTNESS: 4958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_BRIGHTNESS_DECREASE; 4968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 4978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 4988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 4998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 5008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_BRIGHTNESSCHANGE; 5018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_CONTRASTCHANGE: 5068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (output_to_event) { 5078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case INC_CONTRAST: 5088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_CONTRAST_INCREASE; 5098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case DEC_CONTRAST: 5138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_CONTRAST_DECREASE; 5148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 5188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_CONTRASTCHANGE; 5198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_EVCHANGE: 5248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (output_to_event) { 5258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case INCREASE_EV: 5268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_EV_INCREASE; 5278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case DECREASE_EV: 5318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_EV_DECREASE; 5328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 5368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_EVCHANGE; 5378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_SATURATIONCHANGE: 5428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (output_to_event) { 5438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case INC_SATURATION: 5448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SATURATION_INCREASE; 5458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case DEC_SATURATION: 5498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SATURATION_DECREASE; 5508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 5548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_EVCHANGE; 5558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_ISOCHANGE: 5608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MENU_ID_ISOCHANGE\n"); 5610e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev if (output_to_event >= ISO_MAX) { 5628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 5630e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_NO_ACTION; 5640e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev } else { 5650e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev next_menu_id = MENU_ID_MAIN; 5660e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_id_ptr = ACTION_SET_ISO; 5670e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev * action_param = output_to_event; 5688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_ZOOMCHANGE: 5728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SET_ZOOM; 5738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (output_to_event > 0 && 5748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian output_to_event <= sizeof(zoom_tbl)/sizeof(zoom_tbl[0])) { 5758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_param = output_to_event; 5778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 5788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 5798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_SHARPNESSCHANGE: 5838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (output_to_event) { 5848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case INC_SHARPNESS: 5858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SHARPNESS_INCREASE; 5868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case DEC_SHARPNESS: 5898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SHARPNESS_DECREASE; 5908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 5918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 5938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_SHARPNESSCHANGE; 5948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 5968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 5978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 5988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_BESTSHOT: 5998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (output_to_event >= BESTSHOT_MAX) { 6008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 6018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_NO_ACTION; 6028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 6038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 6048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SET_BESTSHOT_MODE; 6058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_param = output_to_event; 6068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 6088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case MENU_ID_FLASHMODE: 6108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (output_to_event >= FLASH_MODE_MAX) { 6118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = current_menu_id; 6128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_NO_ACTION; 6138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 6148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian next_menu_id = MENU_ID_MAIN; 6158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_id_ptr = ACTION_SET_FLASH_MODE; 6168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * action_param = output_to_event; 6178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 6198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 6218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("menu id is wrong: %d\n", current_menu_id); 6228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 6238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return next_menu_id; 6268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 6278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 6298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - print_menu_preview_video - 6308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 6318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 6328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 6338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void print_menu_preview_video(void) { 6348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 6358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (!is_rec) { 6368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 6378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n"); 6388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in preview/video mode now \n"); 6398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n\n"); 6408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 6418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 6428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n"); 6438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in RECORDING mode now \n"); 6448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Press 'Q' To Stop Recording \n"); 6458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Press 'S' To Take Live Snapshot \n"); 6468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n\n"); 6478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char menuNum = 'A'; 6498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(camera_main_menu_tbl)/sizeof(camera_main_menu_tbl[0]); i++) { 6508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (i == BASE_OFFSET) { 6518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian menuNum = '1'; 6528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", menuNum, camera_main_menu_tbl[i].menu_name); 6558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian menuNum++; 6568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice: "); 6598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 6618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 6628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_wb_change_tbl(void) { 6648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 6658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 6668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 6678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in white balance change mode \n"); 6688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 6698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 6718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(white_balance_tbl) / 6728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(white_balance_tbl[0]); i++) { 6738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, white_balance_tbl[i].wb_name); 6748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 6758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for White Balance modes: "); 6778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 6788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 6798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_get_ctrl_value_tbl(void) { 6818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 6828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 6838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 6848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in get control value mode \n"); 6858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 6868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 6888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(get_ctrl_tbl) / 6898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(get_ctrl_tbl[0]); i++) { 6908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, get_ctrl_tbl[i].get_ctrl_name); 6918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 6928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 6938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for control value you want to get: "); 6948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 6958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 6968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 6978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_exp_metering_change_tbl(void) { 6988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 6998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 7008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 7018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in exposure metering change mode \n"); 7028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 7038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 7058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(exp_metering_tbl) / 7068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(exp_metering_tbl[0]); i++) { 7078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, exp_metering_tbl[i].exp_metering_name); 7088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 7098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 7108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for exposure metering modes: "); 7118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 7128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 7138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_contrast_change_tbl(void) { 7158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 7168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 7188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 7198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in change contrast resolution mode \n"); 7208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 7218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char contrastmenuNum = 'A'; 7238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(contrast_change_tbl) / 7248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(contrast_change_tbl[0]); i++) { 7258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", contrastmenuNum, 7268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrast_change_tbl[i].contrast_name); 7278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrastmenuNum++; 7288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 7298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for contrast Change: "); 7318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 7328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 7338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_EV_change_tbl(void) { 7358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 7368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 7388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n"); 7398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in EV change mode now \n"); 7408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n\n"); 7418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 7438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(camera_EV_tbl)/sizeof(camera_EV_tbl[0]); i++) { 7448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, camera_EV_tbl[i].EV_name); 7458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 7468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 7478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for EV changes: "); 7498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 7508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 7518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7523183ead484de541a04640edd93d3a30e58a94dc5Emilian Peevstatic void camera_resolution_change_tbl(void) { 7533183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev unsigned int i; 7543183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 7553183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("\n"); 7563183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("==========================================================\n"); 7573183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf(" Camera is in snapshot resolution mode \n"); 7583183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("==========================================================\n\n"); 7593183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 7603183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev for (i = 0; i < sizeof(dimension_tbl) / 7613183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev sizeof(dimension_tbl[0]); i++) { 7623183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev if ( dimension_tbl[i].supported ) { 7633183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("%d. %s\n", i, 7643183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev dimension_tbl[i].str_name); 7653183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 7663183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 7673183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 7683183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("\nPlease enter your choice for Resolution: "); 7693183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev return; 7703183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev} 7713183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 7728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_zoom_change_tbl(void) { 7738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 7748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian zoom_max_value = MAX_ZOOMS_CNT; 7758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nCurrent Zoom Value = %d ,Max Zoom Value = %d\n",zoom_level,zoom_max_value); 7768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 7778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(zoom_tbl) / 7788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(zoom_tbl[0]); i++) { 7798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, zoom_tbl[i].zoom_direction_name); 7808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 7818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 7828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for zoom change direction: "); 7838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 7848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 7858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_brightness_change_tbl(void) { 7878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 7888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 7908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 7918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in change brightness mode \n"); 7928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 7938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 7948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char brightnessmenuNum = 'A'; 7958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(brightness_change_tbl) / 7968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(brightness_change_tbl[0]); i++) { 7978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", brightnessmenuNum, 7988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightness_change_tbl[i].brightness_name); 7998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightnessmenuNum++; 8008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for Brightness Change: "); 8038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 8048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 8058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_saturation_change_tbl(void) { 8078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 8088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 8108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 8118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in change saturation mode \n"); 8128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 8138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char saturationmenuNum = 'A'; 8158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(camera_saturation_tbl) / 8168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(camera_saturation_tbl[0]); i++) { 8178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", saturationmenuNum, 8188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_saturation_tbl[i].saturation_name); 8198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian saturationmenuNum++; 8208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for Saturation Change: "); 8238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 8248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 8258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_iso_change_tbl(void) { 8278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 8288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 8298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 8308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in ISO change mode \n"); 8318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 8328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 8348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(iso_tbl) / 8358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(iso_tbl[0]); i++) { 8368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, iso_tbl[i].iso_modes_name); 8378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 8388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for iso modes: "); 8408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 8418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 8428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_preview_video_sharpness_change_tbl(void) { 8448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 8458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 8468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n"); 8478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in sharpness change mode \n"); 8488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("==========================================================\n\n"); 8498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char submenuNum = 'A'; 8518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0 ; i < sizeof(camera_sharpness_tbl) / 8528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sizeof(camera_sharpness_tbl[0]); i++) { 8538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", submenuNum, camera_sharpness_tbl[i].sharpness_name); 8548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian submenuNum++; 8558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice for sharpness modes: "); 8578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 8588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 8598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_set_bestshot_tbl(void) 8618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 8628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 8638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 8658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n"); 8668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in set besthot mode now \n"); 8678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n\n"); 8688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char bsmenuNum = 'A'; 8718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(bestshot_mode_tbl)/sizeof(bestshot_mode_tbl[0]); i++) { 8728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", bsmenuNum, 8738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian bestshot_mode_tbl[i].name); 8748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian bsmenuNum++; 8758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice of Bestshot Mode: "); 8788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 8798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 8808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianstatic void camera_set_flashmode_tbl(void) 8828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 8838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian unsigned int i; 8848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n"); 8868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n"); 8878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf(" Camera is in set flash mode now \n"); 8888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("===========================================\n\n"); 8898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian char bsmenuNum = 'A'; 8928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian for (i = 0; i < sizeof(flashmodes_tbl)/sizeof(flashmodes_tbl[0]); i++) { 8938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("%c. %s\n", bsmenuNum, 8948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian flashmodes_tbl[i].name); 8958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian bsmenuNum++; 8968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 8978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 8988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease enter your choice of Bestshot Mode: "); 8998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return; 9008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 9018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 902119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peevstatic void camera_sensors_tbl(void) 903119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev{ 904119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev unsigned int i; 905119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev size_t available_sensors = sizeof(sensor_tbl)/sizeof(sensor_tbl[0]); 906119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 907119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("\n"); 908119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("===========================================\n"); 909119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf(" Camera Sensor to be used: \n"); 910119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("===========================================\n\n"); 911119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 912119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 913119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev char bsmenuNum = 'A'; 914119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev for (i = 0; ( i < available_sensors ) && ( sensor_tbl[i].present ) ; i++) { 915119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("%c. %s\n", bsmenuNum, 916119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev sensor_tbl[i].menu_name); 917119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev bsmenuNum++; 918119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 919119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 920119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("\nPlease enter your choice for sensor: "); 921119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev return; 922119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev} 923119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 9248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 9258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - increase_contrast - 9268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 9278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 9288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 929605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint increase_contrast (mm_camera_lib_handle *lib_handle) { 9308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrast += CAMERA_CONTRAST_STEP; 9318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (contrast > CAMERA_MAX_CONTRAST) { 9328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrast = CAMERA_MAX_CONTRAST; 9338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached max CONTRAST. \n"); 9348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 9358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Increase Contrast to %d\n", contrast); 936605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 937605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_CONTRAST, 9384cdd4bdaff30120d798e502579f4f8c6be1d35b7Nikola Georgiev &contrast, 939605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 9408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 9418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 9428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 9438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - decrease_contrast - 9448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 9458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 9468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 947605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint decrease_contrast (mm_camera_lib_handle *lib_handle) { 9488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrast -= CAMERA_CONTRAST_STEP; 9498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (contrast < CAMERA_MIN_CONTRAST) { 9508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian contrast = CAMERA_MIN_CONTRAST; 9518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached min CONTRAST. \n"); 9528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 9538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Decrease Contrast to %d\n", contrast); 954605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 955605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_CONTRAST, 9564cdd4bdaff30120d798e502579f4f8c6be1d35b7Nikola Georgiev &contrast, 957605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 9588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 9598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 9608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 9618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - decrease_brightness - 9628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 9638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 9648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 965605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint decrease_brightness (mm_camera_lib_handle *lib_handle) { 9668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightness -= CAMERA_BRIGHTNESS_STEP; 9678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (brightness < CAMERA_MIN_BRIGHTNESS) { 9688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightness = CAMERA_MIN_BRIGHTNESS; 9698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached min BRIGHTNESS. \n"); 9708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 9718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Decrease Brightness to %d\n", brightness); 972605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 973605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_BRIGHTNESS, 974605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &brightness, 975605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 9768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 9778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 9788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 9798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - increase_brightness - 9808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 9818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 9828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 983605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint increase_brightness (mm_camera_lib_handle *lib_handle) { 9848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightness += CAMERA_BRIGHTNESS_STEP; 9858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (brightness > CAMERA_MAX_BRIGHTNESS) { 9868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian brightness = CAMERA_MAX_BRIGHTNESS; 9878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached max BRIGHTNESS. \n"); 9888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 9898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Increase Brightness to %d\n", brightness); 990605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 991605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_BRIGHTNESS, 992605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &brightness, 993605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 9948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 9958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 9968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 9978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - increase_EV - 9988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 9998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 10008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 10018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 10028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint increase_EV (void) { 10038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 10048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int rc = 0; 10058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int32_t value = 0; 10068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian rc = cam_config_is_parm_supported(cam_id, MM_CAMERA_PARM_EXPOSURE_COMPENSATION); 10078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(!rc) { 10088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MM_CAMERA_PARM_EXPOSURE_COMPENSATION mode is not supported for this sensor"); 10098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return -1; 10108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ev_numerator += 1; 10128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(ev_numerator >= EXPOSURE_COMPENSATION_MINIMUM_NUMERATOR && 10138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ev_numerator <= EXPOSURE_COMPENSATION_MAXIMUM_NUMERATOR){ 10148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int16_t numerator16 = (int16_t)(ev_numerator & 0x0000ffff); 10158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian uint16_t denominator16 = EXPOSURE_COMPENSATION_DENOMINATOR; 10168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian value = numerator16 << 16 | denominator16; 10178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 10188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached max EV.\n"); 10198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return mm_app_set_config_parm(cam_id, MM_CAMERA_PARM_EXPOSURE_COMPENSATION, value); 10218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 10228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return 0; 10238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 10248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 10258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 10268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - decrease_EV - 10278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 10288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 10298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 10308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint decrease_EV (void) { 10318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 10328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int rc = 0; 10338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int32_t value = 0; 10348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian rc = cam_config_is_parm_supported(cam_id, MM_CAMERA_PARM_EXPOSURE_COMPENSATION); 10358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(!rc) { 10368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("MM_CAMERA_PARM_EXPOSURE_COMPENSATION mode is not supported for this sensor"); 10378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return -1; 10388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ev_numerator -= 1; 10408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(ev_numerator >= EXPOSURE_COMPENSATION_MINIMUM_NUMERATOR && 10418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ev_numerator <= EXPOSURE_COMPENSATION_MAXIMUM_NUMERATOR){ 10428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int16_t numerator16 = (int16_t)(ev_numerator & 0x0000ffff); 10438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian uint16_t denominator16 = EXPOSURE_COMPENSATION_DENOMINATOR; 10448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian value = numerator16 << 16 | denominator16; 10458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 10468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached min EV.\n"); 10478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return mm_app_set_config_parm(cam_id, MM_CAMERA_PARM_EXPOSURE_COMPENSATION, value); 10498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 10508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return 0; 10518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 10528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 10538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 10548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - increase_saturation - 10558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 10568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 10578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 105832f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakuluint increase_saturation (mm_camera_lib_handle *lib_handle) { 10598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 10608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian saturation += CAMERA_SATURATION_STEP; 10618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (saturation > CAMERA_MAX_SATURATION) { 10628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian saturation = CAMERA_MAX_SATURATION; 10638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached max saturation. \n"); 10648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Increase Saturation to %d\n", saturation); 10668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return mm_app_set_config_parm(cam_id, MM_CAMERA_PARM_SATURATION, saturation); 10678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 106832f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu saturation += CAMERA_SATURATION_STEP; 106932f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu if (saturation > CAMERA_MAX_SATURATION) { 107032f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu saturation = CAMERA_MAX_SATURATION; 107132f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu printf("Reached max saturation. \n"); 107232f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu } 107332f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu printf("Increase saturation to %d\n", contrast); 107432f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu return mm_camera_lib_send_command(lib_handle, 107532f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu MM_CAMERA_LIB_SATURATION, 107632f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu &saturation, 107732f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu NULL); 10788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 10798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 10808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 10818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - decrease_saturation - 10828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 10838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 10848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 108532f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakuluint decrease_saturation (mm_camera_lib_handle *lib_handle) { 10868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 10878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian saturation -= CAMERA_SATURATION_STEP; 10888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (saturation < CAMERA_MIN_SATURATION) { 10898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian saturation = CAMERA_MIN_SATURATION; 10908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached min saturation. \n"); 10918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 10928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Dcrease Saturation to %d\n", saturation); 10938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return mm_app_set_config_parm(cam_id, MM_CAMERA_PARM_SATURATION, saturation); 10948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 109532f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu saturation -= CAMERA_SATURATION_STEP; 109632f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu if (saturation < CAMERA_MIN_SATURATION) { 109732f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu saturation = CAMERA_MIN_SATURATION; 109832f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu printf("Reached min saturation. \n"); 109932f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu } 110032f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu printf("decrease saturation to %d\n", contrast); 110132f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu return mm_camera_lib_send_command(lib_handle, 110232f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu MM_CAMERA_LIB_SATURATION, 110332f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu &saturation, 110432f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu NULL); 11058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 11068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint take_jpeg_snapshot(mm_camera_test_obj_t *test_obj, int is_burst_mode) 11098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 11108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG_HIGH("\nEnter take_jpeg_snapshot!!\n"); 11118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int rc = MM_CAMERA_OK; 11128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(MM_CAMERA_OK != (rc = mm_app_take_picture(test_obj, is_burst_mode))) { 11138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG_ERROR("%s: mm_app_take_picture() err=%d\n", __func__, rc); 11148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 11158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return rc; 11168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 11178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 11198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - main - 11208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 11218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 11228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian *==========================================================================*/ 11238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint main() 11248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 1125605365faedc69ae85b5a9562d192c93a61860820Emilian Peev char tc_buf[3]; 11268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int mode = 0; 11273183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev int rc = 0; 11288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Please Select Execution Mode:\n"); 11308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("0: Menu Based 1: Regression\n"); 1131605365faedc69ae85b5a9562d192c93a61860820Emilian Peev fgets(tc_buf, 3, stdin); 1132605365faedc69ae85b5a9562d192c93a61860820Emilian Peev mode = tc_buf[0] - '0'; 11338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(mode == 0) { 11348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nStarting Menu based!!\n"); 11358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if(mode == 1) { 11368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Starting Regression testing!!\n"); 11378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(!mm_app_start_regression_test(1)) { 11388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nRegressiion test passed!!\n"); 11398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return 0; 11408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 11418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nRegression test failed!!\n"); 11428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian exit(-1); 11438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 11448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 11458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nPlease Enter 0 or 1\n"); 11468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nExisting the App!!\n"); 11478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian exit(-1); 11488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 11498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11513183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev rc = submain(); 11523183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 11533183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("Exiting application\n"); 11543183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 11553183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev return rc; 11568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 11578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 11588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 11598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - set_whitebalance - 11608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 11618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 11628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1163605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_whitebalance (mm_camera_lib_handle *lib_handle, int wb_action_param) { 11648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian cam_wb_mode_type type = 0; 11658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (wb_action_param) { 11668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_AUTO: 11678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_AUTO\n"); 11688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_AUTO; 11698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_INCANDESCENT: 11718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_INCANDESCENT\n"); 11728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_INCANDESCENT; 11738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_FLUORESCENT: 11758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_FLUORESCENT\n"); 11768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_FLUORESCENT; 11778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_WARM_FLUORESCENT: 11798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_WARM_FLUORESCENT\n"); 11808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_WARM_FLUORESCENT; 11818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_DAYLIGHT: 11838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_DAYLIGHT\n"); 11848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_DAYLIGHT; 11858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_CLOUDY_DAYLIGHT: 11878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_CLOUDY_DAYLIGHT\n"); 11888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_CLOUDY_DAYLIGHT; 11898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_TWILIGHT: 11918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_TWILIGHT\n"); 11928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_TWILIGHT; 11938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case WB_SHADE: 11958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n WB_SHADE\n"); 11968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_WB_MODE_SHADE; 11978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 11988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 11998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1201605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1202605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_WB, 1203605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &type, 1204605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 12058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 12068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 12098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - set_exp_metering - 12108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 12118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 12128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1213605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_exp_metering (mm_camera_lib_handle *lib_handle, int exp_metering_action_param) { 12148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian cam_auto_exposure_mode_type type = 0; 12158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (exp_metering_action_param) { 12168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_FRAME_AVG: 12178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nAUTO_EXP_FRAME_AVG\n"); 12188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_FRAME_AVERAGE; 12198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_CENTER_WEIGHTED: 12218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_CENTER_WEIGHTED\n"); 12228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_CENTER_WEIGHTED; 12238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_SPOT_METERING: 12258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_SPOT_METERING\n"); 12268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_SPOT_METERING; 12278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_SMART_METERING: 12298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_SMART_METERING\n"); 12308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_SMART_METERING; 12318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_USER_METERING: 12338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_USER_METERING\n"); 12348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_USER_METERING; 12358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_SPOT_METERING_ADV: 12378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_SPOT_METERING_ADV\n"); 12388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_SPOT_METERING_ADV; 12398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case AUTO_EXP_CENTER_WEIGHTED_ADV: 12418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n AUTO_EXP_CENTER_WEIGHTED_ADV\n"); 12428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_AEC_MODE_CENTER_WEIGHTED_ADV; 12438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 12458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 12468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1247605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1248605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_EXPOSURE_METERING, 1249605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &type, 1250605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 12518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 12528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint get_ctrl_value (int ctrl_value_mode_param){ 12548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 12558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian int rc = 0; 12568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian struct v4l2_control ctrl; 12578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (ctrl_value_mode_param == WHITE_BALANCE_STATE) { 12598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose WHITE_BALANCE_STATE\n"); 12608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_AUTO_WHITE_BALANCE; 12618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else if (ctrl_value_mode_param == WHITE_BALANCE_TEMPERATURE) { 12638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose WHITE_BALANCE_TEMPERATURE\n"); 12648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_WHITE_BALANCE_TEMPERATURE; 12658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else if (ctrl_value_mode_param == BRIGHTNESS_CTRL) { 12678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose brightness value\n"); 12688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_BRIGHTNESS; 12698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else if (ctrl_value_mode_param == EV) { 12718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose exposure value\n"); 12728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_EXPOSURE; 12738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else if (ctrl_value_mode_param == CONTRAST_CTRL) { 12758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose contrast value\n"); 12768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_CONTRAST; 12778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else if (ctrl_value_mode_param == SATURATION_CTRL) { 12798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose saturation value\n"); 12808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_SATURATION; 12818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (ctrl_value_mode_param == SHARPNESS_CTRL) { 12828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("You chose sharpness value\n"); 12838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian ctrl.id = V4L2_CID_SHARPNESS; 12848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 12858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian // rc = ioctl(camfd, VIDIOC_G_CTRL, &ctrl); 12878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return rc; 12888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 12898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return ctrl_value_mode_param; 12908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 12918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 12928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 12938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - toggle_afr - 12948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 12958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 12968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 12978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint toggle_afr () { 12988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 12998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (fps_mode == FPS_MODE_AUTO) { 13008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nSetting FPS_MODE_FIXED\n"); 13018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian fps_mode = FPS_MODE_FIXED; 13028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 13038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\nSetting FPS_MODE_AUTO\n"); 13048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian fps_mode = FPS_MODE_AUTO; 13058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 13068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return mm_app_set_config_parm(cam_id, MM_CAMERA_PARM_FPS_MODE, fps_mode); 13078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 13088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return 0; 13098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 13108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1311605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_zoom (mm_camera_lib_handle *lib_handle, int zoom_action_param) { 13128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 13138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (zoom_action_param == ZOOM_IN) { 13148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian zoom_level += ZOOM_STEP; 13158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (zoom_level > zoom_max_value) 13168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian zoom_level = zoom_max_value; 13178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (zoom_action_param == ZOOM_OUT) { 13188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian zoom_level -= ZOOM_STEP; 13198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (zoom_level < ZOOM_MIN_VALUE) 13208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian zoom_level = ZOOM_MIN_VALUE; 13218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else { 13228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("%s: Invalid zoom_action_param value\n", __func__); 13238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return -EINVAL; 13248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1325605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1326605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_ZOOM, 1327605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &zoom_level, 1328605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 13298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 13308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 13318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 13328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - set_iso - 13338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 13348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 13358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1336605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_iso (mm_camera_lib_handle *lib_handle, int iso_action_param) { 13378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian cam_iso_mode_type type = 0; 13388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (iso_action_param) { 13398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_AUTO: 13408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_AUTO\n"); 13418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_AUTO; 13428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_DEBLUR: 13448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_DEBLUR\n"); 13458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_DEBLUR; 13468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_100: 13488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_100\n"); 13498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_100; 13508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_200: 13528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_200\n"); 13538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_200; 13548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_400: 13568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_400\n"); 13578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_400; 13588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_800: 13608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_800\n"); 13618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_800; 13628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ISO_1600: 13648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n ISO_1600\n"); 13658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_1600; 13668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 13688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 13698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1370605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1371605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_ISO, 1372605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &type, 1373605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 13748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 13758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 13768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 13778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - increase_sharpness - 13788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 13798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 13808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1381605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint increase_sharpness (mm_camera_lib_handle *lib_handle) { 13828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sharpness += CAMERA_SHARPNESS_STEP; 13838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (sharpness > CAMERA_MAX_SHARPNESS) { 13848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sharpness = CAMERA_MAX_SHARPNESS; 13858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached max SHARPNESS. \n"); 13868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 13878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Increase Sharpness to %d\n", sharpness); 1388605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1389605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_SHARPNESS, 1390605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &sharpness, 1391605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 13928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 13938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 13948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 13958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - decrease_sharpness - 13968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 13978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 13988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1399605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint decrease_sharpness (mm_camera_lib_handle *lib_handle) { 14008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sharpness -= CAMERA_SHARPNESS_STEP; 14018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (sharpness < CAMERA_MIN_SHARPNESS) { 14028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian sharpness = CAMERA_MIN_SHARPNESS; 14038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Reached min SHARPNESS. \n"); 14048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 14058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Decrease Sharpness to %d\n", sharpness); 1406605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1407605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_SHARPNESS, 1408605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &sharpness, 1409605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 14108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 14118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1412605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_flash_mode (mm_camera_lib_handle *lib_handle, int action_param) { 14138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian cam_flash_mode_t type = 0; 14148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (action_param) { 14158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case FLASH_MODE_OFF: 14168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n FLASH_MODE_OFF\n"); 14178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_FLASH_MODE_OFF; 14188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case FLASH_MODE_AUTO: 14208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n FLASH_MODE_AUTO\n"); 14218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_FLASH_MODE_AUTO; 14228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case FLASH_MODE_ON: 14248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n FLASH_MODE_ON\n"); 14258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_FLASH_MODE_ON; 14268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14278089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case FLASH_MODE_TORCH: 14288089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n FLASH_MODE_TORCH\n"); 14298089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_ISO_MODE_100; 14308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 14328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1434605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1435f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev MM_CAMERA_LIB_FLASH, 1436605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &type, 1437605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 14388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 14398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1440605365faedc69ae85b5a9562d192c93a61860820Emilian Peevint set_bestshot_mode(mm_camera_lib_handle *lib_handle, int action_param) { 14418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian cam_scene_mode_type type = 0; 14428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian switch (action_param) { 14438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_AUTO: 14448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT AUTO\n"); 14458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_OFF; 14468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_ACTION: 14488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT ACTION\n"); 14498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_ACTION; 14508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_PORTRAIT: 14528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT PORTRAIT\n"); 14538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_PORTRAIT; 14548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_LANDSCAPE: 14568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT LANDSCAPE\n"); 14578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_LANDSCAPE; 14588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_NIGHT: 14608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT NIGHT\n"); 14618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_NIGHT; 14628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14638089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_NIGHT_PORTRAIT: 14648089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT NIGHT PORTRAIT\n"); 14658089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_NIGHT_PORTRAIT; 14668089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_THEATRE: 14688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT THREATRE\n"); 14698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_THEATRE; 14708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_BEACH: 14728089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT BEACH\n"); 14738089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_BEACH; 14748089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14758089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_SNOW: 14768089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT SNOW\n"); 14778089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_SNOW; 14788089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_SUNSET: 14808089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT SUNSET\n"); 14818089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_SUNSET; 14828089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14838089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_ANTISHAKE: 14848089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT ANTISHAKE\n"); 14858089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_ANTISHAKE; 14868089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14878089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_FIREWORKS: 14888089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT FIREWORKS\n"); 14898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_FIREWORKS; 14908089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_SPORTS: 14928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT SPORTS\n"); 14938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_SPORTS; 14948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_PARTY: 14968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT PARTY\n"); 14978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_PARTY; 14988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 14998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_CANDLELIGHT: 15008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT CANDLELIGHT\n"); 15018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_CANDLELIGHT; 15028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_ASD: 15048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT ASD\n"); 15058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_AUTO; 15068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_BACKLIGHT: 15088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT BACKLIGHT\n"); 15098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_BACKLIGHT; 15108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_FLOWERS: 15128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT FLOWERS\n"); 15138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_FLOWERS; 15148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_AR: 15168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT AR\n"); 15178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_AR; 15188089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15198089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case BESTSHOT_HDR: 15208089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n BEST SHOT HDR\n"); 15218089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian type = CAM_SCENE_MODE_OFF; 15228089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15238089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian default: 15248089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 15258089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1526605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return mm_camera_lib_send_command(lib_handle, 1527605365faedc69ae85b5a9562d192c93a61860820Emilian Peev MM_CAMERA_LIB_BESTSHOT, 1528605365faedc69ae85b5a9562d192c93a61860820Emilian Peev &type, 1529605365faedc69ae85b5a9562d192c93a61860820Emilian Peev NULL); 15308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 15318089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 15328089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - print_current_menu - 15338089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 15348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 15358089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 15368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandianint print_current_menu (menu_id_change_t current_menu_id) { 15378089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (current_menu_id == MENU_ID_MAIN) { 15388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian print_menu_preview_video (); 15398089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_WHITEBALANCECHANGE) { 15408089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_wb_change_tbl(); 15418089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_EXPMETERINGCHANGE) { 15428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_exp_metering_change_tbl(); 15438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_GET_CTRL_VALUE) { 15448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_get_ctrl_value_tbl(); 15458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_ISOCHANGE) { 15468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_iso_change_tbl(); 15478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_BRIGHTNESSCHANGE) { 15488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_brightness_change_tbl (); 15498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_CONTRASTCHANGE) { 15508089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_contrast_change_tbl (); 15518089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_EVCHANGE) { 15528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_EV_change_tbl (); 15538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_SATURATIONCHANGE) { 15548089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_saturation_change_tbl (); 15558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_ZOOMCHANGE) { 15568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_zoom_change_tbl(); 15578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_SHARPNESSCHANGE) { 15588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_preview_video_sharpness_change_tbl(); 15598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_BESTSHOT) { 15608089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_set_bestshot_tbl(); 15618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } else if (current_menu_id == MENU_ID_FLASHMODE) { 15628089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian camera_set_flashmode_tbl(); 1563119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } else if (current_menu_id == MENU_ID_SENSORS ) { 1564119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev camera_sensors_tbl(); 15653183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } else if (current_menu_id == MENU_ID_SWITCH_RES ) { 15663183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev camera_resolution_change_tbl(); 15678089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 15688089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 15698089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian return 0; 15708089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 15718089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 15723183ead484de541a04640edd93d3a30e58a94dc5Emilian Peevint filter_resolutions(mm_camera_lib_handle *lib_handle, 15733183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev DIMENSION_TBL_T *tbl, 15743183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev size_t tbl_size) 15753183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev{ 15763183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev size_t i, j; 15773183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev cam_capability_t camera_cap; 15780e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev int rc = 0; 15798089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 15803183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev if ( ( NULL == lib_handle ) || ( NULL == tbl ) ) { 15810e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev return -1; 15823183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 15833183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 15843183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev rc = mm_camera_lib_get_caps(lib_handle, &camera_cap); 15853183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev if ( MM_CAMERA_OK != rc ) { 15863183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev CDBG_ERROR("%s:mm_camera_lib_get_caps() err=%d\n", __func__, rc); 15870e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev return -1; 15883183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 15893183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 15903183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev for( i = 0 ; i < tbl_size ; i++ ) { 15913183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev for( j = 0; j < camera_cap.picture_sizes_tbl_cnt; j++ ) { 15923183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev if ( ( tbl[i].width == camera_cap.picture_sizes_tbl[j].width ) && 15933183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev ( tbl[i].height == camera_cap.picture_sizes_tbl[j].height ) ) { 15943183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev tbl[i].supported = 1; 15950e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev rc = i; 15963183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev break; 15973183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 15983183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 15993183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 16008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 16013183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev return rc; 16023183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev} 1603075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1604075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev/*=========================================================================== 1605075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * FUNCTION : enableAFR 1606075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * 1607075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * DESCRIPTION: This function will go through the list 1608075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * of supported FPS ranges and select the 1609075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * one which has maximum range 1610075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * 1611075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * PARAMETERS : 1612075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * @lib_handle : camera test library handle 1613075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * 1614075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * RETURN : uint32_t type of stream handle 1615075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * MM_CAMERA_OK -- Success 1616075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev * !=MM_CAMERA_OK -- Error status 1617075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev *==========================================================================*/ 1618075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peevint enableAFR(mm_camera_lib_handle *lib_handle) 1619075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev{ 1620075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev size_t i, j; 1621075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev float max_range = 0.0f; 1622075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev cam_capability_t cap; 1623075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev int rc = MM_CAMERA_OK; 1624075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1625075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev if ( NULL == lib_handle ) { 1626075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev return MM_CAMERA_E_INVALID_INPUT; 1627075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1628075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1629075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev rc = mm_camera_lib_get_caps(lib_handle, &cap); 1630075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev if ( MM_CAMERA_OK != rc ) { 1631075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev CDBG_ERROR("%s:mm_camera_lib_get_caps() err=%d\n", __func__, rc); 1632075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev return rc; 1633075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1634075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1635075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev for( i = 0, j = 0 ; i < cap.fps_ranges_tbl_cnt ; i++ ) { 1636075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev if ( max_range < (cap.fps_ranges_tbl[i].max_fps - cap.fps_ranges_tbl[i].min_fps) ) { 1637075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev j = i; 1638075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1639075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1640075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1641075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev rc = mm_camera_lib_send_command(lib_handle, 1642075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev MM_CAMERA_LIB_FPS_RANGE, 1643075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev &cap.fps_ranges_tbl[j], 1644075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev NULL); 1645075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1646075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev CDBG_ERROR("%s : FPS range [%5.2f:%5.2f] rc = %d", 1647075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev __func__, 1648075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev cap.fps_ranges_tbl[j].min_fps, 1649075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev cap.fps_ranges_tbl[j].max_fps, 1650075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev rc); 1651075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1652075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev return rc; 1653075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev} 1654075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 16558089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian/*=========================================================================== 16568089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * FUNCTION - submain - 16578089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * 16588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * DESCRIPTION: 16598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian * ===========================================================================*/ 1660605365faedc69ae85b5a9562d192c93a61860820Emilian Peevstatic int submain() 16618089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian{ 1662605365faedc69ae85b5a9562d192c93a61860820Emilian Peev int rc = 0; 1663605365faedc69ae85b5a9562d192c93a61860820Emilian Peev char tc_buf[3]; 1664605365faedc69ae85b5a9562d192c93a61860820Emilian Peev menu_id_change_t current_menu_id = MENU_ID_MAIN, next_menu_id; 1665605365faedc69ae85b5a9562d192c93a61860820Emilian Peev camera_action_t action_id; 1666605365faedc69ae85b5a9562d192c93a61860820Emilian Peev int action_param; 1667605365faedc69ae85b5a9562d192c93a61860820Emilian Peev uint8_t previewing = 0; 16683e6c76e050de6944a1741e73ba815aef8477fdf6Emilian Peev int isZSL = 0; 16697dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev uint8_t wnr_enabled = 0; 1670605365faedc69ae85b5a9562d192c93a61860820Emilian Peev mm_camera_lib_handle lib_handle; 1671119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev int num_cameras; 1672119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev int available_sensors = sizeof(sensor_tbl) / sizeof(sensor_tbl[0]); 16730e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev int available_snap_sizes = sizeof(dimension_tbl)/sizeof(dimension_tbl[0]); 1674119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev int i,c; 16753183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev mm_camera_lib_snapshot_params snap_dim; 16763183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev snap_dim.width = DEFAULT_SNAPSHOT_WIDTH; 16773183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev snap_dim.height = DEFAULT_SNAPSHOT_HEIGHT; 1678f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev cam_scene_mode_type default_scene= CAM_SCENE_MODE_OFF; 167980bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu int set_tintless= 0; 1680605365faedc69ae85b5a9562d192c93a61860820Emilian Peev 1681605365faedc69ae85b5a9562d192c93a61860820Emilian Peev mm_camera_test_obj_t test_obj; 1682605365faedc69ae85b5a9562d192c93a61860820Emilian Peev memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); 1683605365faedc69ae85b5a9562d192c93a61860820Emilian Peev 1684605365faedc69ae85b5a9562d192c93a61860820Emilian Peev rc = mm_camera_lib_open(&lib_handle, 0); 1685605365faedc69ae85b5a9562d192c93a61860820Emilian Peev if (rc != MM_CAMERA_OK) { 1686605365faedc69ae85b5a9562d192c93a61860820Emilian Peev CDBG_ERROR("%s:mm_camera_lib_open() err=%d\n", __func__, rc); 1687605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return -1; 1688605365faedc69ae85b5a9562d192c93a61860820Emilian Peev } 16898089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1690119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev num_cameras = mm_camera_lib_number_of_cameras(&lib_handle); 1691119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if ( 0 >= num_cameras ) { 1692119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_ERROR("%s: No camera sensors reported!", __func__); 1693119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev rc = -1; 1694119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev goto ERROR; 1695119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } else if ( 1 <= num_cameras ) { 1696119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev c = MIN(num_cameras, available_sensors); 1697119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev for ( i = 0 ; i < c ; i++ ) { 1698119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev sensor_tbl[i].present = 1; 1699119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 1700119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev current_menu_id = MENU_ID_SENSORS; 17013183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } else { 17020e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev i = filter_resolutions(&lib_handle, 17033183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev dimension_tbl, 17040e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev available_snap_sizes); 17050e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev if ( ( i < 0 ) || ( i >= available_snap_sizes ) ) { 17060e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev CDBG_ERROR("%s:filter_resolutions()\n", __func__); 17073183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev goto ERROR; 17083183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 17090e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev snap_dim.width = dimension_tbl[i].width; 17100e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev snap_dim.height = dimension_tbl[i].height; 1711075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev 1712075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev rc = enableAFR(&lib_handle); 1713075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev if (rc != MM_CAMERA_OK) { 1714075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev CDBG_ERROR("%s:enableAFR() err=%d\n", __func__, rc); 1715075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev goto ERROR; 1716075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1717f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev 1718f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev rc = mm_camera_lib_send_command(&lib_handle, 1719f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev MM_CAMERA_LIB_BESTSHOT, 1720f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev &default_scene, 1721f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev NULL); 1722f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev if (rc != MM_CAMERA_OK) { 1723f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 1724f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev goto ERROR; 1725f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev } 17268089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 1727c92536da4a917d477b40ce3196f354aa010ca34eJeyaprakash Soundrapandian /*start the eztune server*/ 1728c92536da4a917d477b40ce3196f354aa010ca34eJeyaprakash Soundrapandian CDBG_HIGH("Starting eztune Server \n"); 1729c92536da4a917d477b40ce3196f354aa010ca34eJeyaprakash Soundrapandian eztune_server_start(&lib_handle); 17308089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1731119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev do { 1732119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev print_current_menu (current_menu_id); 1733119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev fgets(tc_buf, 3, stdin); 17348089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1735119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev next_menu_id = next_menu(current_menu_id, tc_buf[0], & action_id, & action_param); 17368089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1737119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if (next_menu_id != MENU_ID_INVALID) { 1738119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev current_menu_id = next_menu_id; 1739119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 1740119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if (action_id == ACTION_NO_ACTION) { 1741119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev continue; 1742119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 17438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 1744119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev switch(action_id) { 1745119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_START_PREVIEW: 1746119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_ERROR("ACTION_START_PREVIEW \n"); 1747119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev rc = mm_camera_lib_start_stream(&lib_handle); 1748119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if (rc != MM_CAMERA_OK) { 1749119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_ERROR("%s:mm_camera_lib_start_stream() err=%d\n", __func__, rc); 1750119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev goto ERROR; 1751119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 1752119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev previewing = 1; 1753119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1754119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1755119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_STOP_PREVIEW: 1756119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("ACTION_STOP_PREVIEW \n"); 1757119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev rc = mm_camera_lib_stop_stream(&lib_handle); 1758119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if (rc != MM_CAMERA_OK) { 1759119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_ERROR("%s:mm_camera_lib_stop_stream() err=%d\n", __func__, rc); 1760119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev goto ERROR; 1761119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 1762119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev previewing = 0; 1763119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1764119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1765119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SET_WHITE_BALANCE: 1766119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the White Balance changes\n"); 1767119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev set_whitebalance(&lib_handle, action_param); 1768119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1769119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 177080bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu case ACTION_SET_TINTLESS_ENABLE: 177180bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG("Selection for the Tintless enable changes\n"); 177280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu set_tintless = 1; 177380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu rc = mm_camera_lib_send_command(&lib_handle, 177480bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu MM_CAMERA_LIB_SET_TINTLESS, 177580bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu &set_tintless, 177680bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu NULL); 177780bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu if (rc != MM_CAMERA_OK) { 177880bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 177980bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu goto ERROR; 178080bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu } 178180bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu break; 178280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu 178380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu case ACTION_SET_TINTLESS_DISABLE: 178480bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG("Selection for the Tintless disable changes\n"); 178580bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu set_tintless = 0; 178680bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu rc = mm_camera_lib_send_command(&lib_handle, 178780bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu MM_CAMERA_LIB_SET_TINTLESS, 178880bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu &set_tintless, 178980bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu NULL); 179080bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu if (rc != MM_CAMERA_OK) { 179180bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 179280bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu goto ERROR; 179380bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu } 179480bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu break; 179580bba58b4fe8b3be79b2fccdd907cddf637da685Lokesh Kumar Aakulu 1796119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SET_EXP_METERING: 1797119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the Exposure Metering changes\n"); 1798119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev set_exp_metering(&lib_handle, action_param); 1799119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1800119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1801119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_GET_CTRL_VALUE: 1802119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for getting control value\n"); 1803119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev get_ctrl_value(action_param); 1804119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1805119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1806119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_BRIGHTNESS_INCREASE: 1807119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("Increase brightness\n"); 1808119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev increase_brightness(&lib_handle); 1809119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1810119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1811119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_BRIGHTNESS_DECREASE: 1812119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev printf("Decrease brightness\n"); 1813119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev decrease_brightness(&lib_handle); 1814119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1815119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1816119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_CONTRAST_INCREASE: 1817119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the contrast increase\n"); 1818119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev increase_contrast (&lib_handle); 1819119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1820119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1821119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_CONTRAST_DECREASE: 1822119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the contrast decrease\n"); 1823119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev decrease_contrast (&lib_handle); 1824119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1825119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1826119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_EV_INCREASE: 1827119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the EV increase\n"); 1828119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev increase_EV (); 1829119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1830119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1831119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_EV_DECREASE: 1832119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the EV decrease\n"); 1833119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev decrease_EV (); 1834119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1835119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1836119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SATURATION_INCREASE: 1837119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the EV increase\n"); 183832f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu increase_saturation (&lib_handle); 1839119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1840119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1841119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SATURATION_DECREASE: 1842119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the EV decrease\n"); 184332f33459144986b716c61f9dbd4500e1695f4ad0Lokesh Kumar Aakulu decrease_saturation (&lib_handle); 1844119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1845119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1846119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_TOGGLE_AFR: 1847119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Select for auto frame rate toggling\n"); 1848119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev toggle_afr(); 1849119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1850119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1851119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SET_ISO: 1852119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Select for ISO changes\n"); 1853119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev set_iso(&lib_handle, action_param); 1854119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1855119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1856119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SET_ZOOM: 1857119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for the zoom direction changes\n"); 1858119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev set_zoom(&lib_handle, action_param); 1859119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1860119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1861119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SHARPNESS_INCREASE: 1862119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for sharpness increase\n"); 1863119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev increase_sharpness(&lib_handle); 1864119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1865119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1866119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_SHARPNESS_DECREASE: 1867119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG("Selection for sharpness decrease\n"); 1868119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev decrease_sharpness(&lib_handle); 1869119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 1870119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 1871c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_SET_BESTSHOT_MODE: 1872c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG("Selection for bestshot\n"); 1873c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev set_bestshot_mode(&lib_handle, action_param); 1874c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 1875c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1876c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_SET_FLASH_MODE: 1877c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("\n Selection for flashmode\n"); 1878c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev set_flash_mode(&lib_handle, action_param); 1879c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 1880c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1881c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_SWITCH_CAMERA: 1882c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev rc = mm_camera_lib_close(&lib_handle); 1883c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev if (rc != MM_CAMERA_OK) { 1884c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG_ERROR("%s:mm_camera_lib_close() err=%d\n", __func__, rc); 1885c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev goto ERROR; 1886c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } 1887c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1888c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev rc = mm_camera_lib_open(&lib_handle, action_param); 1889c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev if (rc != MM_CAMERA_OK) { 1890c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG_ERROR("%s:mm_camera_lib_open() err=%d\n", __func__, rc); 1891c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev goto ERROR; 1892c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } 1893c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 18940e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev i = filter_resolutions(&lib_handle, 18953183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev dimension_tbl, 18963183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev sizeof(dimension_tbl)/sizeof(dimension_tbl[0])); 18970e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev if ( ( i < 0 ) || ( i >= available_snap_sizes ) ) { 18980e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev CDBG_ERROR("%s:filter_resolutions()\n", __func__); 18993183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev goto ERROR; 19003183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev } 19010e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev snap_dim.width = dimension_tbl[i].width; 19020e70fa3dc271342d3a5537ed0dabfce57aab78d4Emilian Peev snap_dim.height = dimension_tbl[i].height; 19033183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev 1904075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev rc = enableAFR(&lib_handle); 1905075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev if (rc != MM_CAMERA_OK) { 1906075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev CDBG_ERROR("%s:enableAFR() err=%d\n", __func__, rc); 1907075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev goto ERROR; 1908075218a8ae262deddcccda8f9d04cf4a26662543Emilian Peev } 1909f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev 1910f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev rc = mm_camera_lib_send_command(&lib_handle, 1911f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev MM_CAMERA_LIB_BESTSHOT, 1912f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev &default_scene, 1913f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev NULL); 1914f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev if (rc != MM_CAMERA_OK) { 1915f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 1916f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev goto ERROR; 1917f89bcfc9d1107a4cb14917c18af0591c2050b33dEmilian Peev } 1918c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 1919c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1920c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_TOGGLE_ZSL: 1921c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("ZSL Toggle !!!\n"); 1922c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev isZSL = !isZSL; 1923c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev if ( isZSL ) { 1924c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("ZSL on !!!\n"); 1925c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } else { 1926c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("ZSL off !!!\n"); 1927c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } 1928c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev rc = mm_camera_lib_send_command(&lib_handle, 1929c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev MM_CAMERA_LIB_ZSL_ENABLE, 1930c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev &isZSL, 1931c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev NULL); 1932c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev if (rc != MM_CAMERA_OK) { 1933c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 1934c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev goto ERROR; 1935c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } 1936c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 1937c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1938c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_TAKE_RAW_SNAPSHOT: 1939c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG_HIGH("\n Take RAW snapshot\n"); 194096162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 194196162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev rc = mm_camera_lib_send_command(&lib_handle, 194296162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev MM_CAMERA_LIB_DO_AF, 194396162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev NULL, 194496162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev NULL); 194596162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 194696162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev if (rc != MM_CAMERA_OK) { 194796162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 194896162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev goto ERROR; 194996162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev } 195096162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 1951c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev rc = mm_camera_lib_send_command(&lib_handle, 1952c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev MM_CAMERA_LIB_RAW_CAPTURE, 1953c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev NULL, 1954c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev NULL); 1955c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev if (rc != MM_CAMERA_OK) { 1956c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 1957c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev goto ERROR; 1958c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev } 1959c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 1960c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev 1961119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev case ACTION_TAKE_JPEG_SNAPSHOT: 1962119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_HIGH("\n Take JPEG snapshot\n"); 196396162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 196496162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev rc = mm_camera_lib_send_command(&lib_handle, 196596162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev MM_CAMERA_LIB_DO_AF, 196696162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev NULL, 196796162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev NULL); 196896162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 196996162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev if (rc != MM_CAMERA_OK) { 197096162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 197196162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev goto ERROR; 197296162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev } 197396162151ff1a8109fdf452f9c0c70265b20ad638Nikola Georgiev 1974119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev rc = mm_camera_lib_send_command(&lib_handle, 1975119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev MM_CAMERA_LIB_JPEG_CAPTURE, 19763183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev &snap_dim, 1977119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev NULL); 1978119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev if (rc != MM_CAMERA_OK) { 1979119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 1980119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev goto ERROR; 1981119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev } 1982119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 19833183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev case ACTION_SWITCH_RESOLUTION: 19843183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev printf("\n Switch snapshot resolution to %dx%d\n", 19853183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev dimension_tbl[action_param].width, 19863183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev dimension_tbl[action_param].height); 19873183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev snap_dim.width = dimension_tbl[action_param].width; 19883183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev snap_dim.height = dimension_tbl[action_param].height; 19893183ead484de541a04640edd93d3a30e58a94dc5Emilian Peev break; 1990119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 19918089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ACTION_START_RECORDING: 19928089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Start recording action\n"); 19938089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 19948089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (mm_app_start_video(cam_id) < 0) 19958089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian goto ERROR; 19968089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian is_rec = 1; 19978089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 19988089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 19998089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ACTION_STOP_RECORDING: 20008089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("Stop recording action\n"); 20018089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 20028089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(is_rec) { 20038089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if (mm_app_stop_video(cam_id) < 0) 20048089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian goto ERROR; 20058089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian is_rec = 0; 20068089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 20078089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 20088089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 20098089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian case ACTION_TAKE_LIVE_SNAPSHOT: 20108089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("Selection for live shot\n"); 20118089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#if 0 20128089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian if(is_rec) 20138089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian mm_app_take_live_snapshot(cam_id); 20148089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian else 20158089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian printf("\n !!! Use live snapshot option while recording only !!!\n"); 20168089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian#endif 20178089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian break; 2018119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev 20197dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev case ACTION_TOGGLE_WNR: 20207dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev wnr_enabled = !wnr_enabled; 20217dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev printf("WNR Enabled = %d\n", wnr_enabled); 20227dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev rc = mm_camera_lib_send_command(&lib_handle, 20237dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev MM_CAMERA_LIB_WNR_ENABLE, 20247dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev &wnr_enabled, 20257dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev NULL); 20267dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev if (rc != MM_CAMERA_OK) { 20277dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev CDBG_ERROR("%s:mm_camera_lib_send_command() err=%d\n", __func__, rc); 20287dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev goto ERROR; 20297dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev } 20307dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev break; 20317dd4302d7d873d63140854c5cba36547b4137714Nikola Georgiev 2032c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_EXIT: 2033c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("Exiting....\n"); 2034c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 2035c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev case ACTION_NO_ACTION: 2036c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("Go back to main menu"); 2037119b95a1391161cde494c1b34e5edd17abd0354bEmilian Peev break; 20388089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2039c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev default: 2040c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev printf("\n\n!!!!!WRONG INPUT: %d!!!!\n", action_id); 2041c48c5e77994422c0439ec5ab001219d0c8e440ddEmilian Peev break; 20428089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } 20438089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 20448089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian usleep(1000 * 1000); 20458089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian CDBG("action_id = %d\n", action_id); 20468089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 20478089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian } while (action_id != ACTION_EXIT); 20488089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian action_id = ACTION_NO_ACTION; 20498089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2050605365faedc69ae85b5a9562d192c93a61860820Emilian Peev mm_camera_lib_close(&lib_handle); 2051605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return 0; 20528089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 20538089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash SoundrapandianERROR: 2054605365faedc69ae85b5a9562d192c93a61860820Emilian Peev 2055605365faedc69ae85b5a9562d192c93a61860820Emilian Peev mm_camera_lib_close(&lib_handle); 2056605365faedc69ae85b5a9562d192c93a61860820Emilian Peev 2057605365faedc69ae85b5a9562d192c93a61860820Emilian Peev return rc; 20588089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian} 20598089babb9f5602b91da23ef3079ea021cebb7638Jeyaprakash Soundrapandian 2060