Remove weather in image struct
[platform/core/api/media-content.git] / include_product / media_image.h
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18
19 #ifndef __TIZEN_IMAGE_META_H__
20 #define __TIZEN_IMAGE_META_H__
21
22 #include <media_content_type.h>
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* __cplusplus */
27
28 /**
29  * @brief This file contains the image metadata API and related functions to proceed with them.
30  *        Functions include cloning and destroying the image metadata, getting image metadata such as width, height, \n
31  *        orientation, date taken, title, burst shot id and updating image to DB.
32  */
33
34 /**
35  * @addtogroup CAPI_CONTENT_MEDIA_IMAGE_MODULE
36  * @{
37  */
38
39
40 /**
41  * @brief Clones the image metadata.
42  * @details The function copies the image metadata handle from a source to destination.
43  *
44  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
45  *
46  * @remarks The destination handle must be released with image_meta_destroy().
47  *
48  * @param[out] dst  The destination handle to the image metadata
49  * @param[in]  src  The source handle to the image metadata
50  *
51  * @return @c 0 on success,
52  *         otherwise a negative error value
53  *
54  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
55  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
56  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
57  *
58  * @see image_meta_destroy()
59  */
60 int image_meta_clone(image_meta_h *dst, image_meta_h src);
61
62 /**
63  * @brief Destroys the image metadata.
64  * @details The function frees all resources related to the image metadata handle. This handle
65  *          no longer can be used to perform any operation. A new handle has to
66  *          be created before next usage.
67  *
68  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
69  *
70  * @param[in] image The image metadata handle
71  *
72  * @return @c 0 on success,
73  *         otherwise a negative error value
74  *
75  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
76  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
77  *
78  * @pre Get a copy of image_meta handle by calling image_meta_clone().
79  *
80  * @see image_meta_clone()
81  */
82 int image_meta_destroy(image_meta_h image);
83
84 /**
85  * @brief Gets the ID of an image.
86  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
87  *
88  * @param[in]  image    The image metadata handle
89  * @param[out] media_id The ID of an image
90  *
91  * @return @c 0 on success,
92  *         otherwise a negative error value
93  *
94  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
95  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
96  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
97  */
98 int image_meta_get_media_id(image_meta_h image, char **media_id);
99
100 /**
101  * @brief Gets the image width in pixels.
102  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
103  *
104  * @param[in]  image The image metadata handle
105  * @param[out] width The image width in pixels
106  *
107  * @return @c 0 on success,
108  *         otherwise a negative error value
109  *
110  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
111  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
112  */
113 int image_meta_get_width(image_meta_h image, int *width);
114
115 /**
116  * @brief Gets the image height in pixels.
117  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
118  *
119  * @param[in]  image  The image metadata handle
120  * @param[out] height The image height in pixels
121  *
122  * @return @c 0 on success,
123  *         otherwise a negative error value
124  *
125  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
126  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
127  */
128 int image_meta_get_height(image_meta_h image, int *height);
129
130 /**
131  * @brief Gets the image orientation.
132  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
133  *
134  * @param[in]  image       The image metadata handle
135  * @param[out] orientation The image orientation
136  *
137  * @return @c 0 on success,
138  *         otherwise a negative error value
139  *
140  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
141  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
142  */
143 int image_meta_get_orientation(image_meta_h image, media_content_orientation_e *orientation);
144
145 /**
146  * @brief Gets the image creation time.
147  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
148  *
149  * @param[in]  image      The image metadata handle
150  * @param[out] date_taken The time, when image was taken (in seconds, since the Epoch)
151  *
152  * @return @c 0 on success,
153  *         otherwise a negative error value
154  *
155  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
156  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
157  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
158  */
159 int image_meta_get_date_taken(image_meta_h image, char **date_taken);
160
161 /**
162  * @deprecated Deprecated since 4.0.
163  * @brief Gets the burst shot ID.
164  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
165  *
166  * @remarks You must release @a burst_id using free().
167  *
168  * @param[in]  image    The image metadata handle
169  * @param[out] burst_id The ID of burst shot\ n
170  *                      If @a burst_id is @c NULL, this is not burst shot
171  *
172  * @return @c 0 on success,
173  *         otherwise a negative error value
174  *
175  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
176  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
177  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
178  */
179 int image_meta_get_burst_id(image_meta_h image, char **burst_id) TIZEN_DEPRECATED_API;
180
181 /**
182  * @brief Gets the exposure time from exif.
183  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
184  *
185  * @remarks @a exposure time must be released with free() by you.
186  *
187  * @param[in]  image    The image metadata handle
188  * @param[out] exposure_time The value of exposure_time, getting from exif
189  *
190  * @return 0 on success,
191  *         otherwise a negative error value
192  *
193  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
194  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
195  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
196  *
197  */
198 int image_meta_get_exposure_time(image_meta_h image, char **exposure_time);
199
200 /**
201  * @brief Gets the fnumber from exif.
202  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
203  *
204  * @param[in]  image    The image metadata handle
205  * @param[out] fnumber The value of fnumber, getting from exif
206  *
207  * @return 0 on success,
208  *         otherwise a negative error value
209  *
210  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
211  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
212  *
213  */
214 int image_meta_get_fnumber(image_meta_h image, double *fnumber);
215
216 /**
217  * @brief Gets the iso from exif.
218  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
219  *
220  * @param[in]  image    The image metadata handle
221  * @param[out] iso The value of iso, getting from exif
222  *
223  * @return 0 on success,
224  *         otherwise a negative error value
225  *
226  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
227  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
228  *
229  */
230 int image_meta_get_iso(image_meta_h image, int *iso);
231
232 /**
233  * @brief Gets the model from exif.
234  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
235  *
236  * @remarks @a model must be released with free() by you.
237  *
238  * @param[in]  image    The image metadata handle
239  * @param[out] model The value of model, getting from exif
240  *
241  * @return 0 on success,
242  *         otherwise a negative error value
243  *
244  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
245  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
246  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
247  *
248  */
249 int image_meta_get_model(image_meta_h image, char **model);
250
251 /**
252  * @deprecated Deprecated since 4.0.
253  * @brief Checks whether the media is a burst shot image.
254  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
255  *
256  * @param[in]  image         The image metadata handle
257  * @param[out] is_burst_shot @c true if the media is a burst shot image,
258  *                           otherwise @c false if the media is not a burst shot image
259  *
260  * @return @c 0 on success,
261  *         otherwise a negative error value
262  *
263  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
264  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
265  */
266 int image_meta_is_burst_shot(image_meta_h image, bool *is_burst_shot) TIZEN_DEPRECATED_API;
267
268 /**
269  * @deprecated Deprecated since 4.0. This data cannot be saved to the file.
270  * @brief Sets an orientation of the image.
271  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
272  *
273  * @param[in] image       The image metadata handle
274  * @param[in] orientation The image orientation
275  *
276  * @return @c 0 on success,
277  *         otherwise a negative error value
278  *
279  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
280  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
281  */
282 int image_meta_set_orientation(image_meta_h image, media_content_orientation_e orientation) TIZEN_DEPRECATED_API;
283
284 /**
285  * @deprecated Deprecated since 4.0. Related setter functions are deprecated, therefore this function is not needed anymore.
286  * @brief Updates the image to the media database.
287  *
288  * @details The function updates the given image meta in the media database. \n
289  *               The function should be called after any change in image attributes, to be updated to the media database.
290  *
291  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
292  *
293  * @privlevel public
294  * @privilege %http://tizen.org/privilege/content.write
295  *
296  * @remarks Do not call this function in callback function of foreach function like media_info_foreach_media_from_db().
297  *
298  * @param[in] image The handle to the image
299  *
300  * @return @c 0 on success,
301  *         otherwise a negative error value
302  *
303  * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
304  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
305  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
306  * @retval #MEDIA_CONTENT_ERROR_INVALID_OPERATION Invalid operation
307  * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB Operation failed
308  * @retval #MEDIA_CONTENT_ERROR_DB_BUSY           DB Operation busy
309  * @retval #MEDIA_CONTENT_ERROR_NETWORK           Network fail
310  * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
311  *
312  * @pre This function requires opened connection to content service by media_content_connect().
313  *
314  * @see media_content_connect()
315  */
316 int image_meta_update_to_db(image_meta_h image) TIZEN_DEPRECATED_API;
317
318 /**
319  * @}
320  */
321
322
323 #ifdef __cplusplus
324 }
325 #endif /* __cplusplus */
326
327 #endif /*__TIZEN_IMAGE_META_H__*/