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
116 #define MMF_CROP_VGA_LEFT 0
117 #define MMF_CROP_VGA_RIGHT 0
118 #define MMF_CROP_VGA_TOP 0
119 #define MMF_CROP_VGA_BOTTOM 0
121 /* QCIF (1 : 0.818) */
122 #define MMF_CROP_CIF_LEFT 68 /* little bit confusing */
123 #define MMF_CROP_CIF_RIGHT 68
124 #define MMF_CROP_CIF_TOP 0
125 #define MMF_CROP_CIF_BOTTOM 0
128 #define _MMCAMCORDER_MINIMUM_SPACE (512*1024) /* byte */
129 #define _MMCAMCORDER_MMS_MARGIN_SPACE (512) /* byte */
132 * Default None value for camera sensor enumeration.
134 #define _MMCAMCORDER_SENSOR_ENUM_NONE -255
136 /* camera information related */
137 #define CAMINFO_CONVERT_NUM 49
140 /*=======================================================================================
142 ========================================================================================*/
144 * Enumerations for attribute converting.
147 MM_CAMCONVERT_TYPE_INT,
148 MM_CAMCONVERT_TYPE_INT_RANGE,
149 MM_CAMCONVERT_TYPE_INT_ARRAY,
150 MM_CAMCONVERT_TYPE_INT_PAIR_ARRAY,
151 MM_CAMCONVERT_TYPE_STRING,
153 MM_CAMCONVERT_TYPE_DOUBLE,
154 MM_CAMCONVERT_TYPE_DOUBLE_PAIR,
156 MM_CAMCONVERT_TYPE_USER, /* user define */
157 } MMCamConvertingType;
160 ENUM_CONVERT_WHITE_BALANCE = 0,
161 ENUM_CONVERT_COLOR_TONE,
163 ENUM_CONVERT_PROGRAM_MODE,
164 ENUM_CONVERT_FOCUS_MODE,
165 ENUM_CONVERT_AF_RANGE,
166 ENUM_CONVERT_EXPOSURE_MODE,
167 ENUM_CONVERT_STROBE_MODE,
170 ENUM_CONVERT_ROTATION,
171 ENUM_CONVERT_ANTI_HAND_SHAKE,
172 ENUM_CONVERT_VIDEO_STABILIZATION,
174 } MMCamConvertingEnum;
177 MM_CAMCONVERT_CATEGORY_CAMERA = 1 << 0,
178 MM_CAMCONVERT_CATEGORY_DISPLAY = 1 << 1,
179 MM_CAMCONVERT_CATEGORY_AUDIO = 1 << 2,
180 MM_CAMCONVERT_CATEGORY_ALL = MM_CAMCONVERT_CATEGORY_CAMERA | MM_CAMCONVERT_CATEGORY_DISPLAY | MM_CAMCONVERT_CATEGORY_AUDIO
181 } MMCamConvertingCategory;
183 /*=======================================================================================
184 | STRUCTURE DEFINITIONS |
185 ========================================================================================*/
187 * Structure for enumeration converting.
190 int total_enum_num; /**< total enumeration count */
191 int *enum_arr; /**< enumeration array */
192 int category; /**< category */
193 const char *keyword; /**< keyword array */
194 } _MMCamcorderEnumConvert;
198 * Converting table of camera configuration.
201 int type; /**< type of configuration */
202 int category; /**< category of configuration */
203 int attr_idx; /**< attribute index */
204 int attr_idx_pair; /**< attribute index (only for 'pair' type) */
206 MMCamConvertingType conv_type;
207 _MMCamcorderEnumConvert *enum_convert; /**< converting value table */
208 } _MMCamcorderInfoConverting;
210 /*=======================================================================================
211 | CONSTANT DEFINITIONS |
212 ========================================================================================*/
214 /*=======================================================================================
216 ========================================================================================*/
218 /*=======================================================================================
219 | EXTERN GLOBAL VARIABLE |
220 ========================================================================================*/
222 /*=======================================================================================
223 | GLOBAL FUNCTION PROTOTYPES |
224 ========================================================================================*/
225 int _mmcamcorder_convert_msl_to_sensor(MMHandleType handle, int attr_idx, int mslval);
226 int _mmcamcorder_convert_sensor_to_msl(MMHandleType handle, int attr_idx, int sensval);
227 int _mmcamcorder_get_fps_array_by_resolution(MMHandleType handle, int width, int height, MMCamAttrsInfo* fps_info);
229 int _mmcamcorder_set_converted_value(MMHandleType handle, _MMCamcorderEnumConvert *convert);
230 int _mmcamcorder_init_convert_table(MMHandleType handle);
231 int _mmcamcorder_init_attr_from_configure(MMHandleType handle, MMCamConvertingCategory category);
233 int _mmcamcorder_convert_brightness(int mslVal);
234 int _mmcamcorder_convert_whitebalance(int mslVal);
235 int _mmcamcorder_convert_colortone(int mslVal);
236 double _mmcamcorder_convert_volume(int mslVal);
237 int __mmcamcorder_set_info_to_attr(MMHandleType handle, _MMCamcorderInfoConverting *info, int table_size);
243 #endif /* __MM_CAMCORDER_PLATFORM_H__ */