4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Jeongmo Yang <jm80.yang@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 #ifndef __MM_CAMCORDER_PLATFORM_H__
23 #define __MM_CAMCORDER_PLATFORM_H__
25 /*=======================================================================================
27 ========================================================================================*/
37 /*=======================================================================================
38 | GLOBAL DEFINITIONS AND DECLARATIONS FOR CAMCORDER |
39 ========================================================================================*/
40 #define MM_CAMCORDER_ATTR_NONE -1
43 /*=======================================================================================
45 ========================================================================================*/
46 /* CAMERA DEFINED VALUE */
48 #define MMF_CAM_W2560 2560
49 #define MMF_CAM_H1920 1920
52 #define MMF_CAM_W2048 2048
53 #define MMF_CAM_H1536 1536
56 #define MMF_CAM_W1600 1600
57 #define MMF_CAM_H1200 1200
60 #define MMF_CAM_W1280 1280
61 #define MMF_CAM_H960 960
64 #define MMF_CAM_W800 800
65 #define MMF_CAM_H600 600
68 #define MMF_CAM_W800 800
69 #define MMF_CAM_H480 480
72 #define MMF_CAM_W640 640
73 #define MMF_CAM_H480 480
76 #define MMF_CAM_W352 352
77 #define MMF_CAM_H288 288
80 #define MMF_CAM_W320 320
81 #define MMF_CAM_H240 240
84 #define MMF_CAM_W176 176
85 #define MMF_CAM_H144 144
88 #define MMF_CAM_W160 160
89 #define MMF_CAM_H120 120
92 #define MMF_CAM_W88 88
93 #define MMF_CAM_H72 72
96 #define MMF_CAM_W400 400
97 #define MMF_CAM_H240 240
100 #define MMF_CAM_W240 240
101 #define MMF_CAM_H320 320
104 #define MMF_CAM_W240 240
105 #define MMF_CAM_H400 400
108 #define MMF_CAM_W400 400
109 #define MMF_CAM_H300 300
112 #define MMF_CAM_W1280 1280
113 #define MMF_CAM_H720 720
120 /* Capture related */
121 /* High quality resolution */
122 #define MMFCAMCORDER_HIGHQUALITY_WIDTH MMF_CAM_W0 /* High quality resolution is not needed, */
123 #define MMFCAMCORDER_HIGHQUALITY_HEIGHT MMF_CAM_H0 /* because camsensor has a JPEG encoder inside */
126 #define MMF_CROP_VGA_LEFT 0
127 #define MMF_CROP_VGA_RIGHT 0
128 #define MMF_CROP_VGA_TOP 0
129 #define MMF_CROP_VGA_BOTTOM 0
131 /* QCIF (1 : 0.818) */
132 #define MMF_CROP_CIF_LEFT 68 /* little bit confusing */
133 #define MMF_CROP_CIF_RIGHT 68
134 #define MMF_CROP_CIF_TOP 0
135 #define MMF_CROP_CIF_BOTTOM 0
138 #define _MMCAMCORDER_CAMSTABLE_COUNT 0 /* stablize count of camsensor */
139 #define _MMCAMCORDER_MINIMUM_SPACE (512*1024) /* byte */
140 #define _MMCAMCORDER_MMS_MARGIN_SPACE (512) /* byte */
143 * Default None value for camera sensor enumeration.
145 #define _MMCAMCORDER_SENSOR_ENUM_NONE -255
147 /* camera information related */
148 #define CAMINFO_CONVERT_NUM 40
151 /*=======================================================================================
153 ========================================================================================*/
155 * Enumerations for attribute converting.
158 MM_CAMCONVERT_TYPE_INT,
159 MM_CAMCONVERT_TYPE_INT_RANGE,
160 MM_CAMCONVERT_TYPE_INT_ARRAY,
161 MM_CAMCONVERT_TYPE_INT_PAIR_ARRAY,
162 MM_CAMCONVERT_TYPE_STRING,
164 MM_CAMCONVERT_TYPE_DOUBLE,
165 MM_CAMCONVERT_TYPE_DOUBLE_PAIR,
167 MM_CAMCONVERT_TYPE_USER, /* user define */
168 } MMCamConvertingType;
171 ENUM_CONVERT_WHITE_BALANCE = 0,
172 ENUM_CONVERT_COLOR_TONE,
174 ENUM_CONVERT_PROGRAM_MODE,
175 ENUM_CONVERT_FOCUS_MODE,
176 ENUM_CONVERT_AF_RANGE,
177 ENUM_CONVERT_EXPOSURE_MODE,
178 ENUM_CONVERT_STROBE_MODE,
181 ENUM_CONVERT_ROTATION,
182 ENUM_CONVERT_ANTI_HAND_SHAKE,
183 ENUM_CONVERT_VIDEO_STABILIZATION,
185 } MMCamConvertingEnum;
188 MM_CAMCONVERT_CATEGORY_CAMERA = 1 << 0,
189 MM_CAMCONVERT_CATEGORY_DISPLAY = 1 << 1,
190 MM_CAMCONVERT_CATEGORY_AUDIO = 1 << 2,
191 MM_CAMCONVERT_CATEGORY_ALL = MM_CAMCONVERT_CATEGORY_CAMERA | MM_CAMCONVERT_CATEGORY_DISPLAY | MM_CAMCONVERT_CATEGORY_AUDIO
192 } MMCamConvertingCategory;
194 /*=======================================================================================
195 | STRUCTURE DEFINITIONS |
196 ========================================================================================*/
198 * Structure for enumeration converting.
201 int total_enum_num; /**< total enumeration count */
202 int *enum_arr; /**< enumeration array */
203 int category; /**< category */
204 const char *keyword; /**< keyword array */
205 } _MMCamcorderEnumConvert;
209 * Converting table of camera configuration.
212 int type; /**< type of configuration */
213 int category; /**< category of configuration */
214 int attr_idx; /**< attribute index */
215 int attr_idx_pair; /**< attribute index (only for 'pair' type) */
217 MMCamConvertingType conv_type;
218 _MMCamcorderEnumConvert *enum_convert; /**< converting value table */
219 } _MMCamcorderInfoConverting;
221 /*=======================================================================================
222 | CONSTANT DEFINITIONS |
223 ========================================================================================*/
225 /*=======================================================================================
227 ========================================================================================*/
229 /*=======================================================================================
230 | EXTERN GLOBAL VARIABLE |
231 ========================================================================================*/
233 /*=======================================================================================
234 | GLOBAL FUNCTION PROTOTYPES |
235 ========================================================================================*/
236 int _mmcamcorder_convert_msl_to_sensor(MMHandleType handle, int attr_idx, int mslval);
237 int _mmcamcorder_convert_sensor_to_msl(MMHandleType handle, int attr_idx, int sensval);
238 int _mmcamcorder_get_fps_array_by_resolution(MMHandleType handle, int width, int height, MMCamAttrsInfo* fps_info);
240 int _mmcamcorder_set_converted_value(MMHandleType handle, _MMCamcorderEnumConvert *convert);
241 int _mmcamcorder_init_convert_table(MMHandleType handle);
242 int _mmcamcorder_init_attr_from_configure(MMHandleType handle, MMCamConvertingCategory category);
244 int _mmcamcorder_convert_brightness(int mslVal);
245 int _mmcamcorder_convert_whitebalance(int mslVal);
246 int _mmcamcorder_convert_colortone(int mslVal);
247 double _mmcamcorder_convert_volume(int mslVal);
248 int __mmcamcorder_set_info_to_attr(MMHandleType handle, _MMCamcorderInfoConverting *info, int table_size);
254 #endif /* __MM_CAMCORDER_PLATFORM_H__ */