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