• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* Copyright (c) 2013, The Linux Foundation. All rights reserved.
2   *
3   * Redistribution and use in source and binary forms, with or without
4   * modification, are permitted provided that the following conditions are
5   * met:
6   *     * Redistributions of source code must retain the above copyright
7   *       notice, this list of conditions and the following disclaimer.
8   *     * Redistributions in binary form must reproduce the above
9   *       copyright notice, this list of conditions and the following
10   *       disclaimer in the documentation and/or other materials provided
11   *       with the distribution.
12   *     * Neither the name of The Linux Foundation nor the names of its
13   *       contributors may be used to endorse or promote products derived
14   *       from this software without specific prior written permission.
15   *
16   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
17   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
18   * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
19   * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
20   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25   * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26   * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27   *
28   */
29  
30  #ifndef __MM_QCAMERA_MAIN_MENU_H__
31  #define __MM_QCAMERA_MAIN_MENU_H__
32  
33  #include "mm_camera_interface.h"
34  #include "mm_jpeg_interface.h"
35  
36  #define VIDEO_BUFFER_SIZE       (PREVIEW_WIDTH * PREVIEW_HEIGHT * 3/2)
37  #define THUMBNAIL_BUFFER_SIZE   (THUMBNAIL_WIDTH * THUMBNAIL_HEIGHT * 3/2)
38  #define SNAPSHOT_BUFFER_SIZE    (PICTURE_WIDTH * PICTURE_HEIGHT * 3/2)
39  
40  /*===========================================================================
41   * Macro
42   *===========================================================================*/
43  #define PREVIEW_FRAMES_NUM    5
44  #define VIDEO_FRAMES_NUM      5
45  #define THUMBNAIL_FRAMES_NUM  1
46  #define SNAPSHOT_FRAMES_NUM   1
47  #define MAX_NUM_FORMAT        32
48  
49  typedef enum
50  {
51    START_PREVIEW,
52    STOP_PREVIEW,
53    SET_WHITE_BALANCE,
54    SET_TINTLESS_ENABLE,
55    SET_TINTLESS_DISABLE,
56    SET_EXP_METERING,
57    GET_CTRL_VALUE,
58    TOGGLE_AFR,
59    SET_ISO,
60    BRIGHTNESS_GOTO_SUBMENU,
61    CONTRAST_GOTO_SUBMENU,
62    EV_GOTO_SUBMENU,
63    SATURATION_GOTO_SUBMENU,
64    SET_ZOOM,
65    SET_SHARPNESS,
66    TAKE_JPEG_SNAPSHOT,
67    START_RECORDING,
68    STOP_RECORDING,
69    BEST_SHOT,
70    LIVE_SHOT,
71    FLASH_MODES,
72    TOGGLE_ZSL,
73    TAKE_RAW_SNAPSHOT,
74    SWITCH_SNAP_RESOLUTION,
75    TOGGLE_WNR,
76    EXIT
77  } Camera_main_menu_t;
78  
79  typedef enum
80  {
81    ACTION_NO_ACTION,
82    ACTION_START_PREVIEW,
83    ACTION_STOP_PREVIEW,
84    ACTION_SET_WHITE_BALANCE,
85    ACTION_SET_TINTLESS_ENABLE,
86    ACTION_SET_TINTLESS_DISABLE,
87    ACTION_SET_EXP_METERING,
88    ACTION_GET_CTRL_VALUE,
89    ACTION_TOGGLE_AFR,
90    ACTION_SET_ISO,
91    ACTION_BRIGHTNESS_INCREASE,
92    ACTION_BRIGHTNESS_DECREASE,
93    ACTION_CONTRAST_INCREASE,
94    ACTION_CONTRAST_DECREASE,
95    ACTION_EV_INCREASE,
96    ACTION_EV_DECREASE,
97    ACTION_SATURATION_INCREASE,
98    ACTION_SATURATION_DECREASE,
99    ACTION_SET_ZOOM,
100    ACTION_SHARPNESS_INCREASE,
101    ACTION_SHARPNESS_DECREASE,
102    ACTION_TAKE_JPEG_SNAPSHOT,
103    ACTION_START_RECORDING,
104    ACTION_STOP_RECORDING,
105    ACTION_SET_BESTSHOT_MODE,
106    ACTION_TAKE_LIVE_SNAPSHOT,
107    ACTION_SET_FLASH_MODE,
108    ACTION_SWITCH_CAMERA,
109    ACTION_TOGGLE_ZSL,
110    ACTION_TAKE_RAW_SNAPSHOT,
111    ACTION_SWITCH_RESOLUTION,
112    ACTION_TOGGLE_WNR,
113    ACTION_EXIT
114  } camera_action_t;
115  
116  #define INVALID_KEY_PRESS 0
117  #define BASE_OFFSET  ('Z' - 'A' + 1)
118  #define BASE_OFFSET_NUM  ('Z' - 'A' + 2)
119  #define PAD_TO_WORD(a)  (((a)+3)&~3)
120  
121  
122  #define SQCIF_WIDTH     128
123  #define SQCIF_HEIGHT     96
124  #define QCIF_WIDTH      176
125  #define QCIF_HEIGHT     144
126  #define QVGA_WIDTH      320
127  #define QVGA_HEIGHT     240
128  #define HD_THUMBNAIL_WIDTH      256
129  #define HD_THUMBNAIL_HEIGHT     144
130  #define CIF_WIDTH       352
131  #define CIF_HEIGHT      288
132  #define VGA_WIDTH       640
133  #define VGA_HEIGHT      480
134  #define WVGA_WIDTH      800
135  #define WVGA_HEIGHT     480
136  #define WVGA_PLUS_WIDTH      960
137  #define WVGA_PLUS_HEIGHT     720
138  
139  #define MP1_WIDTH      1280
140  #define MP1_HEIGHT      960
141  #define MP2_WIDTH      1600
142  #define MP2_HEIGHT     1200
143  #define MP3_WIDTH      2048
144  #define MP3_HEIGHT     1536
145  #define MP5_WIDTH      2592
146  #define MP5_HEIGHT     1944
147  #define MP8_WIDTH      3264
148  #define MP8_HEIGHT     2448
149  #define MP12_WIDTH     4000
150  #define MP12_HEIGHT    3000
151  
152  #define SVGA_WIDTH      800
153  #define SVGA_HEIGHT     600
154  #define XGA_WIDTH      1024
155  #define XGA_HEIGHT      768
156  #define HD720_WIDTH    1280
157  #define HD720_HEIGHT    720
158  #define HD720_PLUS_WIDTH    1440
159  #define HD720_PLUS_HEIGHT   1080
160  #define WXGA_WIDTH     1280
161  #define WXGA_HEIGHT     768
162  #define HD1080_WIDTH   1920
163  #define HD1080_HEIGHT  1080
164  
165  
166  #define ONEMP_WIDTH    1280
167  #define SXGA_WIDTH     1280
168  #define UXGA_WIDTH     1600
169  #define QXGA_WIDTH     2048
170  #define FIVEMP_WIDTH   2560
171  
172  
173  #define ONEMP_HEIGHT    960
174  #define SXGA_HEIGHT     1024
175  #define UXGA_HEIGHT     1200
176  #define QXGA_HEIGHT     1536
177  #define FIVEMP_HEIGHT   1920
178  
179  
180  typedef enum
181  {
182    RESOLUTION_MIN,
183    QCIF                  = RESOLUTION_MIN,
184    QVGA,
185    VGA,
186    WVGA,
187    WVGA_PLUS ,
188    HD720,
189    HD720_PLUS,
190    HD1080,
191    RESOLUTION_PREVIEW_VIDEO_MAX = HD1080,
192    WXGA,
193    MP1,
194    MP2,
195    MP3,
196    MP5,
197    MP8,
198    MP12,
199    RESOLUTION_MAX         = MP12,
200  } Camera_Resolution;
201  
202  typedef struct{
203      uint16_t width;
204      uint16_t  height;
205      char * name;
206      char * str_name;
207      int supported;
208  } DIMENSION_TBL_T;
209  
210  typedef enum {
211      WHITE_BALANCE_STATE,
212      WHITE_BALANCE_TEMPERATURE,
213      BRIGHTNESS_CTRL,
214      EV,
215      CONTRAST_CTRL,
216      SATURATION_CTRL,
217      SHARPNESS_CTRL
218  } Get_Ctrl_modes;
219  
220  typedef enum {
221      AUTO_EXP_FRAME_AVG,
222      AUTO_EXP_CENTER_WEIGHTED,
223      AUTO_EXP_SPOT_METERING,
224      AUTO_EXP_SMART_METERING,
225      AUTO_EXP_USER_METERING,
226      AUTO_EXP_SPOT_METERING_ADV,
227      AUTO_EXP_CENTER_WEIGHTED_ADV,
228      AUTO_EXP_MAX
229  } Exp_Metering_modes;
230  
231  typedef enum {
232    ISO_AUTO,
233    ISO_DEBLUR,
234    ISO_100,
235    ISO_200,
236    ISO_400,
237    ISO_800,
238    ISO_1600,
239    ISO_MAX
240  } ISO_modes;
241  
242  typedef enum {
243    BESTSHOT_AUTO,
244    BESTSHOT_ACTION,
245    BESTSHOT_PORTRAIT,
246    BESTSHOT_LANDSCAPE,
247    BESTSHOT_NIGHT,
248    BESTSHOT_NIGHT_PORTRAIT,
249    BESTSHOT_THEATRE,
250    BESTSHOT_BEACH,
251    BESTSHOT_SNOW,
252    BESTSHOT_SUNSET,
253    BESTSHOT_ANTISHAKE,
254    BESTSHOT_FIREWORKS,
255    BESTSHOT_SPORTS,
256    BESTSHOT_PARTY,
257    BESTSHOT_CANDLELIGHT,
258    BESTSHOT_ASD,
259    BESTSHOT_BACKLIGHT,
260    BESTSHOT_FLOWERS,
261    BESTSHOT_AR,
262    BESTSHOT_HDR,
263    BESTSHOT_MAX
264  }Bestshot_modes;
265  
266  typedef enum {
267      FLASH_MODE_OFF,
268      FLASH_MODE_AUTO,
269      FLASH_MODE_ON,
270      FLASH_MODE_TORCH,
271      FLASH_MODE_MAX,
272  }Flash_modes;
273  
274  typedef enum {
275    WB_AUTO,
276    WB_INCANDESCENT,
277    WB_FLUORESCENT,
278    WB_WARM_FLUORESCENT,
279    WB_DAYLIGHT,
280    WB_CLOUDY_DAYLIGHT,
281    WB_TWILIGHT,
282    WB_SHADE,
283    WB_MAX
284  } White_Balance_modes;
285  
286  typedef enum
287  {
288    MENU_ID_MAIN,
289    MENU_ID_WHITEBALANCECHANGE,
290    MENU_ID_EXPMETERINGCHANGE,
291    MENU_ID_GET_CTRL_VALUE,
292    MENU_ID_TOGGLEAFR,
293    MENU_ID_ISOCHANGE,
294    MENU_ID_BRIGHTNESSCHANGE,
295    MENU_ID_CONTRASTCHANGE,
296    MENU_ID_EVCHANGE,
297    MENU_ID_SATURATIONCHANGE,
298    MENU_ID_ZOOMCHANGE,
299    MENU_ID_SHARPNESSCHANGE,
300    MENU_ID_BESTSHOT,
301    MENU_ID_FLASHMODE,
302    MENU_ID_SENSORS,
303    MENU_ID_SWITCH_RES,
304    MENU_ID_INVALID,
305  } menu_id_change_t;
306  
307  typedef enum
308  {
309    DECREASE_ZOOM,
310    INCREASE_ZOOM,
311    INCREASE_STEP_ZOOM,
312    DECREASE_STEP_ZOOM,
313  } Camera_Zoom;
314  
315  typedef enum
316  {
317    INC_CONTRAST,
318    DEC_CONTRAST,
319  } Camera_Contrast_changes;
320  
321  typedef enum
322  {
323    INC_BRIGHTNESS,
324    DEC_BRIGHTNESS,
325  } Camera_Brightness_changes;
326  
327  typedef enum
328  {
329    INCREASE_EV,
330    DECREASE_EV,
331  } Camera_EV_changes;
332  
333  typedef enum {
334    INC_SATURATION,
335    DEC_SATURATION,
336  } Camera_Saturation_changes;
337  
338  typedef enum
339  {
340    INC_ISO,
341    DEC_ISO,
342  } Camera_ISO_changes;
343  
344  typedef enum
345  {
346    INC_SHARPNESS,
347    DEC_SHARPNESS,
348  } Camera_Sharpness_changes;
349  
350  typedef enum {
351    ZOOM_IN,
352    ZOOM_OUT,
353  } Zoom_direction;
354  
355  typedef struct{
356      Camera_main_menu_t main_menu;
357      char * menu_name;
358  } CAMERA_MAIN_MENU_TBL_T;
359  
360  typedef struct{
361      char * menu_name;
362      int present;
363  } CAMERA_SENSOR_MENU_TLB_T;
364  
365  typedef struct{
366      Camera_Resolution cs_id;
367      uint16_t width;
368      uint16_t  height;
369      char * name;
370      char * str_name;
371  } PREVIEW_DIMENSION_TBL_T;
372  
373  typedef struct {
374    White_Balance_modes wb_id;
375    char * wb_name;
376  } WHITE_BALANCE_TBL_T;
377  
378  typedef struct {
379    Get_Ctrl_modes get_ctrl_id;
380    char * get_ctrl_name;
381  } GET_CTRL_TBL_T;
382  
383  typedef struct{
384    Exp_Metering_modes exp_metering_id;
385    char * exp_metering_name;
386  } EXP_METERING_TBL_T;
387  
388  typedef struct {
389    Bestshot_modes bs_id;
390    char *name;
391  } BESTSHOT_MODE_TBT_T;
392  
393  typedef struct {
394    Flash_modes bs_id;
395    char *name;
396  } FLASH_MODE_TBL_T;
397  
398  typedef struct {
399    ISO_modes iso_modes;
400    char *iso_modes_name;
401  } ISO_TBL_T;
402  
403  typedef struct {
404    Zoom_direction zoom_direction;
405    char * zoom_direction_name;
406  } ZOOM_TBL_T;
407  
408  typedef struct {
409    Camera_Sharpness_changes sharpness_change;
410    char *sharpness_change_name;
411  } SHARPNESS_TBL_T;
412  
413  typedef struct {
414    Camera_Brightness_changes bc_id;
415    char * brightness_name;
416  } CAMERA_BRIGHTNESS_TBL_T;
417  
418  typedef struct {
419    Camera_Contrast_changes cc_id;
420    char * contrast_name;
421  } CAMERA_CONTRST_TBL_T;
422  
423  typedef struct {
424    Camera_EV_changes ec_id;
425    char * EV_name;
426  } CAMERA_EV_TBL_T;
427  
428  typedef struct {
429    Camera_Saturation_changes sc_id;
430    char * saturation_name;
431  } CAMERA_SATURATION_TBL_T;
432  
433  typedef struct {
434    Camera_Sharpness_changes bc_id;
435    char * sharpness_name;
436  } CAMERA_SHARPNESS_TBL_T;
437  
438  #endif /* __MM_QCAMERA_MAIN_MENU_H__ */
439