1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (C) Texas Instruments - http://www.ti.com/
3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Licensed under the Apache License, Version 2.0 (the "License");
5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * you may not use this file except in compliance with the License.
6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * You may obtain a copy of the License at
7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *      http://www.apache.org/licenses/LICENSE-2.0
9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Unless required by applicable law or agreed to in writing, software
11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * distributed under the License is distributed on an "AS IS" BASIS,
12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * See the License for the specific language governing permissions and
14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * limitations under the License.
15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* @file General3A_Settings.h
19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*
20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev* This file maps the Camera Hardware Interface to OMX.
21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*
22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "OMX_TI_IVCommon.h"
25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "OMX_TI_Common.h"
26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "OMX_TI_Index.h"
27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include "TICameraParameters.h"
28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef GENERAL_3A_SETTINGS_H
30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define GENERAL_3A_SETTINGS_H
31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
32f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmonsnamespace Ti {
33f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmonsnamespace Camera {
34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevstruct userToOMX_LUT{
36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    const char * userDefinition;
37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int         omxDefinition;
38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevstruct LUTtype{
41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int size;
42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    const userToOMX_LUT *Table;
43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT isoUserToOMX[] = {
46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_AUTO, 0 },
47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_100, 100 },
48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_200, 200 },
49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_400, 400 },
50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_800, 800 },
51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_1000, 1000 },
52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_1200, 1200 },
53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::ISO_MODE_1600, 1600 },
54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT effects_UserToOMX [] = {
57f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_NONE, OMX_ImageFilterNone },
58f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_NEGATIVE, OMX_ImageFilterNegative },
59f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_SOLARIZE,  OMX_ImageFilterSolarize },
60f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_SEPIA, OMX_ImageFilterSepia },
61f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_MONO, OMX_ImageFilterGrayScale },
62f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_BLACKBOARD, OMX_TI_ImageFilterBlackBoard },
63f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_WHITEBOARD, OMX_TI_ImageFilterWhiteBoard },
64f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_AQUA, OMX_TI_ImageFilterAqua },
65f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::EFFECT_POSTERIZE, OMX_TI_ImageFilterPosterize },
6620107c0eaacde4f440d84f0643515451545ef601Tyler Luu#ifdef OMAP_ENHANCEMENT
6720107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::EFFECT_NATURAL, OMX_ImageFilterNatural },
6820107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::EFFECT_VIVID, OMX_ImageFilterVivid },
6920107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::EFFECT_COLOR_SWAP, OMX_ImageFilterColourSwap   },
70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EFFECT_BLACKWHITE, OMX_TI_ImageFilterBlackWhite }
7120107c0eaacde4f440d84f0643515451545ef601Tyler Luu#endif
72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT scene_UserToOMX [] = {
75f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_AUTO, OMX_Manual },
76f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_LANDSCAPE, OMX_Landscape },
77f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_NIGHT_PORTRAIT, OMX_NightPortrait },
78f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_FIREWORKS, OMX_Fireworks },
79f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_ACTION, OMX_TI_Action },
80f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_BEACH, OMX_TI_Beach },
81f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_CANDLELIGHT, OMX_TI_Candlelight },
82f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_NIGHT, OMX_TI_Night },
83f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_PARTY, OMX_TI_Party },
84f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_PORTRAIT, OMX_TI_Portrait },
85f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_SNOW, OMX_TI_Snow },
86f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_STEADYPHOTO, OMX_TI_Steadyphoto },
87f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_SUNSET, OMX_TI_Sunset },
88f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_THEATRE, OMX_TI_Theatre },
89f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::SCENE_MODE_SPORTS, OMX_Sport },
9020107c0eaacde4f440d84f0643515451545ef601Tyler Luu#ifdef OMAP_ENHANCEMENT
9120107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_CLOSEUP, OMX_Closeup },
9220107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_AQUA, OMX_Underwater },
9320107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_MOOD, OMX_Mood },
9420107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_NIGHT_INDOOR, OMX_NightIndoor },
9520107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_DOCUMENT, OMX_Document },
9620107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_BARCODE, OMX_Barcode },
9720107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_VIDEO_SUPER_NIGHT, OMX_SuperNight },
9820107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_VIDEO_CINE, OMX_Cine },
9920107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::SCENE_MODE_VIDEO_OLD_FILM, OMX_OldFilm },
10020107c0eaacde4f440d84f0643515451545ef601Tyler Luu#endif
101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT whiteBal_UserToOMX [] = {
104f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_AUTO, OMX_WhiteBalControlAuto },
105f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_DAYLIGHT, OMX_WhiteBalControlSunLight },
106f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_CLOUDY_DAYLIGHT, OMX_WhiteBalControlCloudy },
107f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_FLUORESCENT, OMX_WhiteBalControlFluorescent },
108f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_INCANDESCENT, OMX_WhiteBalControlIncandescent },
109f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_SHADE, OMX_TI_WhiteBalControlShade },
110f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_TWILIGHT, OMX_TI_WhiteBalControlTwilight },
111f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::WHITE_BALANCE_WARM_FLUORESCENT, OMX_TI_WhiteBalControlWarmFluorescent },
11220107c0eaacde4f440d84f0643515451545ef601Tyler Luu#ifdef OMAP_ENHANCEMENT
11320107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::WHITE_BALANCE_TUNGSTEN, OMX_WhiteBalControlTungsten },
11420107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::WHITE_BALANCE_HORIZON, OMX_WhiteBalControlHorizon },
115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::WHITE_BALANCE_SUNSET, OMX_TI_WhiteBalControlSunset }
11620107c0eaacde4f440d84f0643515451545ef601Tyler Luu#endif
117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT antibanding_UserToOMX [] = {
120f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::ANTIBANDING_OFF, OMX_FlickerCancelOff },
121f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::ANTIBANDING_AUTO, OMX_FlickerCancelAuto },
122f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::ANTIBANDING_50HZ, OMX_FlickerCancel50 },
123f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::ANTIBANDING_60HZ, OMX_FlickerCancel60 }
124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT focus_UserToOMX [] = {
127f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_AUTO, OMX_IMAGE_FocusControlAutoLock },
128f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_INFINITY, OMX_IMAGE_FocusControlAutoInfinity },
129f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_INFINITY, OMX_IMAGE_FocusControlHyperfocal },
130f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_MACRO, OMX_IMAGE_FocusControlAutoMacro },
131f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_CONTINUOUS_VIDEO, OMX_IMAGE_FocusControlAuto },
132f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FOCUS_MODE_CONTINUOUS_PICTURE, OMX_IMAGE_FocusControlAuto },
13320107c0eaacde4f440d84f0643515451545ef601Tyler Luu#ifdef OMAP_ENHANCEMENT
134f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { TICameraParameters::FOCUS_MODE_FACE , OMX_IMAGE_FocusControlContinousFacePriority },
13520107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::FOCUS_MODE_PORTRAIT, OMX_IMAGE_FocusControlPortrait },
13620107c0eaacde4f440d84f0643515451545ef601Tyler Luu    { TICameraParameters::FOCUS_MODE_EXTENDED, OMX_IMAGE_FocusControlExtended },
13720107c0eaacde4f440d84f0643515451545ef601Tyler Luu#endif
138f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { TICameraParameters::FOCUS_MODE_OFF , OMX_IMAGE_FocusControlOff }
139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT exposure_UserToOMX [] = {
142f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { TICameraParameters::EXPOSURE_MODE_MANUAL, OMX_ExposureControlOff },
143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_AUTO, OMX_ExposureControlAuto },
144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_NIGHT, OMX_ExposureControlNight },
145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_BACKLIGHT, OMX_ExposureControlBackLight },
146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_SPOTLIGHT, OMX_ExposureControlSpotLight},
147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_SPORTS, OMX_ExposureControlSports },
148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_SNOW, OMX_ExposureControlSnow },
149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_BEACH, OMX_ExposureControlBeach },
150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_APERTURE, OMX_ExposureControlLargeAperture },
151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::EXPOSURE_MODE_SMALL_APERTURE, OMX_ExposureControlSmallApperture },
152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst userToOMX_LUT flash_UserToOMX [] = {
155f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FLASH_MODE_OFF           ,OMX_IMAGE_FlashControlOff             },
156f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FLASH_MODE_ON            ,OMX_IMAGE_FlashControlOn              },
157f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FLASH_MODE_AUTO          ,OMX_IMAGE_FlashControlAuto            },
158f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FLASH_MODE_TORCH         ,OMX_IMAGE_FlashControlTorch           },
159f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    { android::CameraParameters::FLASH_MODE_RED_EYE        ,OMX_IMAGE_FlashControlRedEyeReduction },
16020107c0eaacde4f440d84f0643515451545ef601Tyler Luu#ifdef OMAP_ENHANCEMENT
161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    { TICameraParameters::FLASH_MODE_FILL_IN        ,OMX_IMAGE_FlashControlFillin          }
16220107c0eaacde4f440d84f0643515451545ef601Tyler Luu#endif
163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype ExpLUT =
166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(exposure_UserToOMX)/sizeof(exposure_UserToOMX[0]),
168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    exposure_UserToOMX
169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype WBalLUT =
172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(whiteBal_UserToOMX)/sizeof(whiteBal_UserToOMX[0]),
174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    whiteBal_UserToOMX
175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype FlickerLUT =
178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(antibanding_UserToOMX)/sizeof(antibanding_UserToOMX[0]),
180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    antibanding_UserToOMX
181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype SceneLUT =
184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(scene_UserToOMX)/sizeof(scene_UserToOMX[0]),
186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    scene_UserToOMX
187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype FlashLUT =
190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(flash_UserToOMX)/sizeof(flash_UserToOMX[0]),
192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    flash_UserToOMX
193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype EffLUT =
196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(effects_UserToOMX)/sizeof(effects_UserToOMX[0]),
198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    effects_UserToOMX
199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype FocusLUT =
202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(focus_UserToOMX)/sizeof(focus_UserToOMX[0]),
204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    focus_UserToOMX
205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevconst LUTtype IsoLUT =
208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    {
209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    sizeof(isoUserToOMX)/sizeof(isoUserToOMX[0]),
210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    isoUserToOMX
211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    };
212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*   class Gen3A_settings
215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*   stores the 3A settings
216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*   also defines the look up tables
217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*   for mapping settings from Hal to OMX
218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevclass Gen3A_settings{
220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    public:
221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Exposure;
223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int WhiteBallance;
224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Flicker;
225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int SceneMode;
226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Effect;
227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Focus;
228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int EVCompensation;
229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Contrast;
230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Saturation;
231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int Sharpness;
232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int ISO;
233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    int FlashMode;
234f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    int ManualExposure;
235f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    int ManualExposureRight;
236f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    int ManualGain;
237f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    int ManualGainRight;
238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    unsigned int Brightness;
240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL ExposureLock;
2419dc08c5fb736308cfca6659f66b14165b265baebTyler Luu    OMX_BOOL FocusLock;
242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL WhiteBalanceLock;
243f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons
2440db9de9c050c698df5c160249e4060efa96e10a7Vladimir Petrov    OMX_BOOL AlgoExternalGamma;
245f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    OMX_BOOL AlgoNSF1;
246f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    OMX_BOOL AlgoNSF2;
247f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    OMX_BOOL AlgoSharpening;
248f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    OMX_BOOL AlgoThreeLinColorMap;
249f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    OMX_BOOL AlgoGIC;
250f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons
2510db9de9c050c698df5c160249e4060efa96e10a7Vladimir Petrov    OMX_TI_CONFIG_GAMMATABLE_TYPE mGammaTable;
2520db9de9c050c698df5c160249e4060efa96e10a7Vladimir Petrov
253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*   Flags raised when a setting is changed
257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevenum E3ASettingsFlags
259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{
260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetSceneMode            = 1 << 0,
261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetEVCompensation       = 1 << 1,
262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetWhiteBallance        = 1 << 2,
263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetFlicker              = 1 << 3,
264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetExposure             = 1 << 4,
265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetSharpness            = 1 << 5,
266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetBrightness           = 1 << 6,
267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetContrast             = 1 << 7,
268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetISO                  = 1 << 8,
269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetSaturation           = 1 << 9,
270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetEffect               = 1 << 10,
271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetFocus                = 1 << 11,
272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetExpMode              = 1 << 14,
273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetFlash                = 1 << 15,
274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetExpLock              = 1 << 16,
275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    SetWBLock               = 1 << 17,
276708ed7306c85286aa50d05ba15e0c33106e52ed0Iliyan Malchev    SetMeteringAreas        = 1 << 18,
277f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetManualExposure       = 1 << 19,
278f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons
2790db9de9c050c698df5c160249e4060efa96e10a7Vladimir Petrov    SetAlgoExternalGamma    = 1 << 20,
280f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetAlgoNSF1             = 1 << 21,
281f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetAlgoNSF2             = 1 << 22,
282f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetAlgoSharpening       = 1 << 23,
283f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetAlgoThreeLinColorMap = 1 << 24,
284f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons    SetAlgoGIC              = 1 << 25,
2850db9de9c050c698df5c160249e4060efa96e10a7Vladimir Petrov    SetGammaTable           = 1 << 26,
286f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons
287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    E3aSettingMax,
289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    E3AsettingsAll = ( ((E3aSettingMax -1 ) << 1) -1 ) /// all possible flags raised
290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev};
291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
292f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons} // namespace Camera
293f7a4d11e9f710e2cd0592310ac1baecccb85f1d1Jason Simmons} // namespace Ti
294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif //GENERAL_3A_SETTINGS_H
296