Fix description
[platform/core/api/media-content.git] / include_product / media_content_type.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 #ifndef __TIZEN_CONTENT_MEDIA_CONTENT_TYPE_H__
19 #define __TIZEN_CONTENT_MEDIA_CONTENT_TYPE_H__
20
21 #include <time.h>
22 #include <tizen.h>
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* __cplusplus */
27
28 #if 0
29 #ifndef _USE_SENIOR_MODE
30 #define _USE_SENIOR_MODE
31 #endif
32 #endif
33
34 /**
35  * @file media_content_type.h
36  * @brief This file contains API related to media-content enumerations for media data types, groups, orientations, \n
37  *        classes of errors and definitions of media-data. \n
38  *        Listed APIs are called when iterating over lists of album, group, bookmark and other media,  \n
39  *        when media items are inserted completely and when notification of media DB change is subscribed.
40  */
41
42 /**
43 * @addtogroup CAPI_MEDIA_CONTENT_MODULE
44  * @{
45  */
46
47 /**
48  * @ingroup CAPI_MEDIA_CONTENT_MODULE
49  * @brief Enumeration for the media file format.
50  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
51  * @remarks Since 4.0, #MEDIA_CONTENT_TYPE_OTHERS is related to the following feature:\n
52  *              %http://tizen.org/feature/content.scanning.others\n
53  *              If this feature is not supported on the device, #MEDIA_CONTENT_TYPE_OTHERS type file is not scanned.
54  */
55 typedef enum {
56         MEDIA_CONTENT_TYPE_IMAGE                = 0,    /**<The type of an image */
57         MEDIA_CONTENT_TYPE_VIDEO                = 1,    /**<The type of a video */
58         MEDIA_CONTENT_TYPE_SOUND        = 2,    /**<The type of sound */
59         MEDIA_CONTENT_TYPE_MUSIC                = 3,    /**<The type of music */
60         MEDIA_CONTENT_TYPE_OTHERS       = 4,    /**<The type of other */
61         MEDIA_CONTENT_TYPE_PVR                  = 5,            /**<The type of PVR */
62         MEDIA_CONTENT_TYPE_UHD                  = 6,            /**<The type of UHD */
63         MEDIA_CONTENT_TYPE_SCSA                 = 7,            /**<The type of SCSA */
64 } media_content_type_e;
65
66 /**
67  * @ingroup CAPI_MEDIA_CONTENT_MODULE
68  * @deprecated Deprecated since 5.0.
69  * @brief Enumeration for the storage type.
70  * @details This information is used to establish where the folder is.
71  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
72  */
73 typedef enum {
74         MEDIA_CONTENT_STORAGE_INTERNAL  = 0,    /**< The device's internal storage */
75         MEDIA_CONTENT_STORAGE_EXTERNAL  = 1,    /**< The device's external storage like sd card*/
76         MEDIA_CONTENT_STORAGE_EXTERNAL_USB = 2, /**< The external USB storage (Since @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif) */
77 } media_content_storage_e;
78
79 /**
80  * @ingroup CAPI_MEDIA_CONTENT_MODULE
81  * @brief Enumeration for media content DB update items.
82  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
83  */
84 typedef enum {
85         MEDIA_ITEM_FILE         = 0,            /**< File type, an item updated to DB */
86         MEDIA_ITEM_DIRECTORY    = 1,            /**< Directory type, an item updated to DB */
87 } media_content_db_update_item_type_e;
88
89 /**
90  * @ingroup CAPI_MEDIA_CONTENT_MODULE
91  * @brief Enumeration for media content DB update types.
92  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
93  */
94 typedef enum {
95         MEDIA_CONTENT_INSERT            = 0,            /**< Insert, the type of DB update */
96         MEDIA_CONTENT_DELETE            = 1,            /**< Delete, The type of DB update */
97         MEDIA_CONTENT_UPDATE    = 2,            /**< Update, The type of DB update */
98 } media_content_db_update_type_e;
99
100 /**
101  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
102  * @brief Enumeration for orientation types.
103  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
104  */
105 typedef enum {
106         MEDIA_CONTENT_ORIENTATION_NOT_AVAILABLE  = 0,       /**< Not available*/
107         MEDIA_CONTENT_ORIENTATION_NORMAL         = 1,       /**< Normal*/
108         MEDIA_CONTENT_ORIENTATION_HFLIP          = 2,       /**< Flip horizontal*/
109         MEDIA_CONTENT_ORIENTATION_ROT_180        = 3,       /**< Rotate 180 degrees*/
110         MEDIA_CONTENT_ORIENTATION_VFLIP          = 4,       /**< Flip vertical*/
111         MEDIA_CONTENT_ORIENTATION_TRANSPOSE      = 5,       /**< Transpose*/
112         MEDIA_CONTENT_ORIENTATION_ROT_90         = 6,       /**< Rotate 90 degrees*/
113         MEDIA_CONTENT_ORIENTATION_TRANSVERSE     = 7,       /**< Transverse*/
114         MEDIA_CONTENT_ORIENTATION_ROT_270        = 8,       /**< Rotate 270 degrees*/
115 } media_content_orientation_e;
116
117 /**
118  * @ingroup CAPI_MEDIA_CONTENT_MODULE
119  * @brief Enumeration for ordering.
120  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
121  */
122 typedef enum {
123         MEDIA_CONTENT_ORDER_ASC   = 0,      /**< Ascending order*/
124         MEDIA_CONTENT_ORDER_DESC  = 1,      /**< Descending order*/
125         MEDIA_CONTENT_ORDER_OTHER = 2,          /**< order by order key**/
126 } media_content_order_e;
127
128 /**
129  * @ingroup CAPI_MEDIA_CONTENT_MODULE
130  * @brief Enumeration for collations.
131  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
132  */
133 typedef enum {
134         MEDIA_CONTENT_COLLATE_DEFAULT   = 0,        /**< Default collation BINARY */
135         MEDIA_CONTENT_COLLATE_NOCASE    = 1,        /**< Collation NOCASE, not case sensitive */
136         MEDIA_CONTENT_COLLATE_RTRIM     = 2,        /**< Collation RTRIM, trailing space characters are ignored */
137         MEDIA_CONTENT_COLLATE_LOCALIZED = 3,        /**< Collation LOCALIZATION, NOCASE also applied */
138 } media_content_collation_e;
139
140 /**
141 * @brief Error class.
142 * @details Class for Media Content error
143 * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
144 *
145 */
146 #define MEDIA_CONTENT_ERROR_CLASS                               TIZEN_ERROR_MEDIA_CONTENT
147
148 /**
149  * @ingroup CAPI_MEDIA_CONTENT_MODULE
150  * @brief Enumeration for a media content error.
151  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
152  */
153 typedef enum {
154         MEDIA_CONTENT_ERROR_NONE                    = TIZEN_ERROR_NONE,                    /**< Successful */
155         MEDIA_CONTENT_ERROR_INVALID_PARAMETER       = TIZEN_ERROR_INVALID_PARAMETER,       /**< Invalid parameter */
156         MEDIA_CONTENT_ERROR_OUT_OF_MEMORY           = TIZEN_ERROR_OUT_OF_MEMORY,           /**< Out of memory */
157         MEDIA_CONTENT_ERROR_INVALID_OPERATION       = TIZEN_ERROR_INVALID_OPERATION,       /**< Invalid Operation */
158         MEDIA_CONTENT_FILE_NO_SPACE_ON_DEVICE       = TIZEN_ERROR_FILE_NO_SPACE_ON_DEVICE, /**< No space left on device */
159         MEDIA_CONTENT_ERROR_PERMISSION_DENIED             = TIZEN_ERROR_PERMISSION_DENIED,                /**< Permission denied */
160         MEDIA_CONTENT_ERROR_DB_FAILED               = MEDIA_CONTENT_ERROR_CLASS | 0x01,    /**< DB operation failed */
161         MEDIA_CONTENT_ERROR_DB_BUSY                 = MEDIA_CONTENT_ERROR_CLASS | 0x02,    /**< DB operation BUSY */
162         MEDIA_CONTENT_ERROR_NETWORK                 = MEDIA_CONTENT_ERROR_CLASS | 0x03,    /**< Network Fail */
163         MEDIA_CONTENT_ERROR_UNSUPPORTED_CONTENT     = MEDIA_CONTENT_ERROR_CLASS | 0x04,    /**< Unsupported Content */
164         MEDIA_CONTENT_ERROR_NOT_SUPPORTED           = TIZEN_ERROR_NOT_SUPPORTED,           /**< Not supported */
165 } media_content_error_e;
166
167 /**
168  * @ingroup CAPI_MEDIA_CONTENT_MODULE
169  * @brief Enumeration for a media group.
170  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
171  */
172 typedef enum {
173         MEDIA_CONTENT_GROUP_DISPLAY_NAME = 0,    /**< Media group ID for display name */
174         MEDIA_CONTENT_GROUP_TYPE,                /**< Media group ID for a media type */
175         MEDIA_CONTENT_GROUP_MIME_TYPE,           /**< Media group ID for a mime type */
176         MEDIA_CONTENT_GROUP_SIZE,                /**< Media group ID for content size */
177         MEDIA_CONTENT_GROUP_ADDED_TIME,          /**< Media group ID for the added time */
178         MEDIA_CONTENT_GROUP_MODIFIED_TIME,       /**< Media group ID for the modified time */
179         MEDIA_CONTENT_GROUP_TITLE,               /**< Media group ID for a content title */
180         MEDIA_CONTENT_GROUP_ARTIST,              /**< Media group ID for an artist*/
181         MEDIA_CONTENT_GROUP_ALBUM_ARTIST,        /**< Media group ID for an album artist */
182         MEDIA_CONTENT_GROUP_GENRE,               /**< Media group ID for a genre*/
183         MEDIA_CONTENT_GROUP_COMPOSER,            /**< Media group ID for a composer*/
184         MEDIA_CONTENT_GROUP_YEAR,                /**< Media group ID for a year*/
185         MEDIA_CONTENT_GROUP_RECORDED_DATE,       /**< Media group ID for the recorded date*/
186         MEDIA_CONTENT_GROUP_COPYRIGHT,           /**< Media group ID for the copyright*/
187         MEDIA_CONTENT_GROUP_TRACK_NUM,           /**< Media group ID for a track number*/
188         MEDIA_CONTENT_GROUP_DESCRIPTION,         /**< Media group ID for a description */
189         MEDIA_CONTENT_GROUP_LONGITUDE,           /**< Media group ID for the longitude*/
190         MEDIA_CONTENT_GROUP_LATITUDE,            /**< Media group ID for the latitude*/
191         MEDIA_CONTENT_GROUP_ALTITUDE,            /**< Media group ID for the altitude*/
192         MEDIA_CONTENT_GROUP_RATING = 20,              /**< Media group ID for a rating*/
193         MEDIA_CONTENT_GROUP_MODIFIED_MONTH = 29,                 /**< Media group ID for the modified time*/
194         MEDIA_CONTENT_GROUP_MODIFIED_DATE,               /**< Media group ID for the modified date*/
195 #ifdef _USE_SENIOR_MODE
196         MEDIA_CONTENT_GROUP_CONTACT,
197 #endif
198         MEDIA_CONTENT_GROUP_ALBUM,
199         MEDIA_CONTENT_GROUP_MAX,                /**< Invalid media group ID*/
200         MEDIA_PVR_GROUP_DURATION,
201         MEDIA_PVR_GROUP_TIME_ZONE,
202         MEDIA_PVR_GROUP_PTC,
203         MEDIA_PVR_GROUP_MAJOR,
204         MEDIA_PVR_GROUP_MINOR,
205         MEDIA_PVR_GROUP_CHANNEL_TYPE,
206         MEDIA_PVR_GROUP_CHANNEL_NAME,
207         MEDIA_PVR_GROUP_CHANNEL_NUM,
208         MEDIA_PVR_GROUP_PROGRAM_TITLE,
209         MEDIA_PVR_GROUP_PROGRAM_NUM,
210         MEDIA_PVR_GROUP_PROGRAM_CRID,
211         MEDIA_PVR_GROUP_GUIDANCE,
212         MEDIA_PVR_GROUP_SYNOPSIS,
213         MEDIA_PVR_GROUP_GENRE,
214         MEDIA_PVR_GROUP_LANGUAGE,
215         MEDIA_PVR_GROUP_EMBARGO_TIME,
216         MEDIA_PVR_GROUP_EXPIRY_TIME,
217         MEDIA_PVR_GROUP_START_TIME,
218         MEDIA_PVR_GROUP_PROGRAM_START_TIME,
219         MEDIA_PVR_GROUP_PROGRAM_END_TIME,
220         MEDIA_PVR_GROUP_PROGRAM_DATE,
221         MEDIA_PVR_GROUP_PARENTAL_RATING,
222         MEDIA_PVR_GROUP_TIMER_RECORD,
223         MEDIA_PVR_GROUP_SERIES_RECORD,
224         MEDIA_PVR_GROUP_HD,
225         MEDIA_PVR_GROUP_SUBTITLE,
226         MEDIA_PVR_GROUP_TTX,
227         MEDIA_PVR_GROUP_AD,
228         MEDIA_PVR_GROUP_HARDOF_HEARINGRADIO,
229         MEDIA_PVR_GROUP_DATA_SERVICE,
230         MEDIA_PVR_GROUP_CONTENT_LOCK,
231         MEDIA_PVR_GROUP_CONTENT_WATCH,
232         MEDIA_PVR_GROUP_HAS_AUDIO_ONLY,
233         MEDIA_PVR_GROUP_IS_LOCAL_RECORDED,
234         MEDIA_PVR_GROUP_RESOLUTION,
235         MEDIA_PVR_GROUP_ASPECTRATIO,
236         MEDIA_PVR_GROUP_MODIFIED_MONTH,
237         MEDIA_PVR_GROUP_MODIFIED_DATE,
238         MEDIA_PVR_GROUP_SPORTS_TYPE,
239         MEDIA_PVR_GROUP_GUIDANCE_LENGTH,
240         MEDIA_PVR_GROUP_TVMODE,
241         MEDIA_PVR_GROUP_PLAY_COUNT,
242         MEDIA_PVR_GROUP_PRIVATE_DATA,
243         MEDIA_PVR_GROUP_MAX,
244         MEDIA_UHD_GROUP_CONTENT_TITLE,
245         MEDIA_UHD_GROUP_RELEASE_DATE,
246         MEDIA_UHD_GROUP_SUB_TYPE,
247         MEDIA_UHD_GROUP_FILE_NAME,
248         MEDIA_UHD_GROUP_PLAYED_COUNT,
249         MEDIA_UHD_GROUP_MAX,
250         MEDIA_GROUP_MAX,
251 } media_group_e;
252
253 /**
254  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
255  * @brief The structure type for the Media info handle.
256  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
257  */
258 typedef struct media_info_s *media_info_h;
259
260 /**
261  * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
262  * @brief The structure type for the Media folder handle.
263  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
264  */
265 typedef struct media_folder_s *media_folder_h;
266
267 /**
268  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
269  * @brief The structure type for the Media playlist handle.
270  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
271  */
272 typedef struct media_playlist_s *media_playlist_h;
273
274 /**
275  * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
276  * @brief The structure type for the Media tag handle.
277  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
278  */
279 typedef struct media_tag_s *media_tag_h;
280
281 /**
282  * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
283  * @brief The structure type for the Media bookmark handle.
284  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
285  */
286 typedef struct media_bookmark_s *media_bookmark_h;
287
288 /**
289  * @ingroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
290  * @brief The structure type for the Media album handle.
291  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
292  */
293 typedef struct media_album_s *media_album_h;
294
295 /**
296  * @ingroup CAPI_CONTENT_MEDIA_IMAGE_META_MODULE
297  * @brief The structure type for the Image metadata handle.
298  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
299  */
300 typedef struct image_meta_s *image_meta_h;
301
302 /**
303  * @ingroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE
304  * @brief The structure type for the Video metadata handle.
305  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
306  */
307 typedef struct video_meta_s *video_meta_h;
308
309 /**
310  * @ingroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE
311  * @brief The structure type for the Audio metadata handle.
312  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
313  */
314 typedef struct audio_meta_s *audio_meta_h;
315
316 /**
317  * @ingroup CAPI_CONTENT_MEDIA_FILTER_MODULE
318  * @brief The structure type for the Media filter handle.
319  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
320  */
321 typedef struct filter_s *filter_h;
322
323 /**
324  * @ingroup CAPI_CONTENT_MEDIA_STORAGE_MODULE
325  * @deprecated Deprecated since 5.0.
326  * @brief The structure type for the Media storage handle.
327  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
328  */
329 typedef void *media_storage_h;
330
331 /**
332  * @ingroup CAPI_CONTENT_MEDIA_FACE_MODULE
333  * @brief The structure type for the Media face handle.
334  * @since_tizen 3.0
335  */
336 typedef void *media_face_h;
337
338 /**
339  * @ingroup CAPI_MEDIA_CONTENT_MODULE
340  * @brief The structure type for the Media content noti handle.
341  * @since_tizen 3.0
342  */
343 typedef void *media_content_noti_h;
344
345 /**
346  * @ingroup CAPI_MEDIA_CONTENT_MODULE
347  * @brief Called when the media scanning is finished.
348  * @details The following error codes can be received: \n
349  *             #MEDIA_CONTENT_ERROR_NONE : Success \n
350  *             #MEDIA_CONTENT_ERROR_INVALID_PARAMETER : Invalid parameter \n
351  *             #MEDIA_CONTENT_ERROR_INVALID_OPERATION : Invalid operation \n
352  *             #MEDIA_CONTENT_ERROR_PERMISSION_DENIED : Permission denied \n
353  *             #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY : Out of memory \n
354  *             #MEDIA_CONTENT_ERROR_DB_FAILED : DB Operation failed \n
355  *             #MEDIA_CONTENT_ERROR_DB_BUSY : DB Operation busy \n
356  *             #MEDIA_CONTENT_ERROR_NETWORK : Network fail \n
357  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
358  * @remarks The callback is called in a separate thread(not in the main loop).
359  *
360  * @param[in] error The error code
361  * @param[in] user_data The user data passed from the foreach function
362  *
363  * @pre media_content_scan_folder().
364  * @see media_content_scan_folder()
365  */
366 typedef void (*media_scan_completed_cb)(media_content_error_e error, void * user_data);
367
368 /**
369  * @ingroup CAPI_MEDIA_CONTENT_MODULE
370  * @brief Called when the notification of the media DB change is subscribed.
371  * @details The following error codes can be received: \n
372  *             #MEDIA_CONTENT_ERROR_NONE : Success \n
373  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
374  *
375  * @remarks The callback is called in a separate thread(not in the main loop).
376  *
377  * @param[in] error The error code
378  * @param[in] pid The PID which publishes notification
379  * @param[in] update_item The update item of notification
380  * @param[in] update_type The update type of notification
381  * @param[in] media_type The type of the media content (#media_content_type_e)
382  * @param[in] uuid The UUID of media or directory, which is updated
383  * @param[in] path The path of the media or directory
384  * @param[in] mime_type The MIME of the media info
385  * @param[in] user_data The user data passed from the foreach function
386  *
387  * @pre media_content_add_db_updated_cb().
388  * @see media_content_add_db_updated_cb()
389  */
390 typedef void (*media_content_db_update_cb)(
391                                 media_content_error_e error,
392                                 int pid,
393                                 media_content_db_update_item_type_e update_item,
394                                 media_content_db_update_type_e update_type,
395                                 media_content_type_e media_type,
396                                 char *uuid,
397                                 char *path,
398                                 char *mime_type,
399                                 void *user_data);
400
401
402 /**
403  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
404  * @brief Called for every available media info.
405  * @details Iterates over a list of media info.
406  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
407  *
408  * @remarks To use the @a media outside this function, copy the handle with media_info_clone() function. \n
409  *                  The callback is called in the main loop.
410  *
411  * @param[in] media The handle to the media info
412  * @param[in] user_data The user data passed from the foreach function
413  *
414  * @return @c true to continue with the next iteration of the loop,
415  *         otherwise @c false to break out of the loop
416  *
417  * @pre media_tag_foreach_media_from_db(), media_playlist_foreach_media_from_db(), media_genre_foreach_media_from_db(),
418  *      media_info_foreach_media_from_db(), media_folder_foreach_media_from_db() will invoke this function.
419  *
420  * @see media_info_clone()
421  * @see media_album_foreach_media_from_db()
422  * @see media_playlist_foreach_media_from_db()
423  * @see media_tag_foreach_media_from_db()
424  * @see media_info_foreach_media_from_db()
425  * @see media_folder_foreach_media_from_db()
426  */
427 typedef bool (*media_info_cb)(media_info_h media, void *user_data);
428
429
430 /**
431  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
432  * @brief Called when media items are inserted completely.
433  * @details The following error codes can be received: \n
434  *             #MEDIA_CONTENT_ERROR_NONE : Success \n
435  *             #MEDIA_CONTENT_ERROR_INVALID_PARAMETER : Invalid parameter \n
436  *             #MEDIA_CONTENT_ERROR_INVALID_OPERATION : Invalid operation \n
437  *             #MEDIA_CONTENT_ERROR_PERMISSION_DENIED : Permission denied \n
438  *             #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY : Out of memory \n
439  *             #MEDIA_CONTENT_ERROR_DB_FAILED : DB Operation failed \n
440  *             #MEDIA_CONTENT_ERROR_DB_BUSY : DB Operation busy \n
441  *             #MEDIA_CONTENT_ERROR_NETWORK : Network fail \n
442  *             #MEDIA_CONTENT_ERROR_NOT_SUPPORTED : Not supported \n
443  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
444  *
445  * @remarks The callback is called in a separate thread(not in the main loop).
446  *
447  * @param[in] error The error code
448  * @param[in] user_data The user data passed from the foreach function
449  *
450  * @pre media_info_insert_batch_to_db()
451  * @see media_info_insert_batch_to_db()
452  */
453 typedef void (*media_insert_completed_cb)(media_content_error_e error, void * user_data);
454
455
456 /**
457  * @deprecated Deprecated since 5.0.
458  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
459  * @brief Called when creating a thumbnail image.
460  * @details This callback is called for completion of generating the thumbnail image.
461  *         The following error codes can be delivered. \n
462  *         #MEDIA_CONTENT_ERROR_NONE, \n
463  *         #MEDIA_CONTENT_ERROR_INVALID_PARAMETER, \n
464  *         #MEDIA_CONTENT_ERROR_INVALID_OPERATION, \n
465  *         #MEDIA_CONTENT_ERROR_PERMISSION_DENIED, \n
466  *         #MEDIA_CONTENT_ERROR_DB_FAILED, \n
467  *         #MEDIA_CONTENT_ERROR_UNSUPPORTED_CONTENT
468  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
469  *
470  * @remarks The callback is called in a separate thread(not in the main loop).
471  *
472  * @param[in] error The error code
473  * @param[in] path The path of the thumbnail which is generated
474  * @param[in] user_data The user data passed from the foreach function
475  *
476  * @pre media_info_create_thumbnail()
477  * @see media_info_create_thumbnail()
478  */
479 typedef void (*media_thumbnail_completed_cb)(media_content_error_e error, const char *path, void *user_data);
480
481 /**
482  * @ingroup CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE
483  * @brief Called when face detection on the image is completed.
484  *
485  * @details The following error codes can be delivered. \n
486  *         #MEDIA_CONTENT_ERROR_NONE, \n
487  *         #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, \n
488  *         #MEDIA_CONTENT_ERROR_INVALID_OPERATION, \n
489  *         #MEDIA_CONTENT_ERROR_DB_FAILED, \n
490  *         #MEDIA_CONTENT_ERROR_DB_BUSY, \n
491  *         #MEDIA_CONTENT_ERROR_UNSUPPORTED_CONTENT
492  *
493  * @since_tizen 3.0
494  *
495  * @remarks The callback is called in a separate thread(not in the main loop).
496  *
497  * @param[in] error The error code
498  * @param[in] face_count The number of all detected faces
499  * @param[in] user_data The user data passed from the foreach function
500  *
501  * @pre media_info_start_face_detection()
502  * @see media_info_start_face_detection()
503  */
504 typedef void (*media_face_detection_completed_cb)(media_content_error_e error, const int face_count, void *user_data);
505
506
507 /**
508  * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
509  * @brief Called for every available media folder.
510  * @details Iterates over a list of folders.
511  *
512  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
513  *
514  * @remarks To use the @a folder outside this function, copy the handle with the media_folder_clone() function. \n
515  *                  The callback is called in the main loop.
516  *
517  * @param[in] folder The handle to the media folder
518  * @param[in] user_data The user data passed from the foreach function
519  *
520  * @return @c true to continue with the next iteration of the loop,
521  *         otherwise @c false to break out of the loop
522  *
523  * @pre media_folder_foreach_folder_from_db() will invoke this function.
524  * @see media_folder_clone()
525  * @see media_folder_foreach_folder_from_db()
526  */
527 typedef bool (*media_folder_cb)(media_folder_h folder, void *user_data);
528
529 /**
530  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
531  * @brief Called for every playlist in the obtained list of playlists.
532  * @details Iterates over a playlist list.
533  *
534  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
535  *
536  * @remarks To use the @a playlist outside this function, copy the handle with the media_playlist_clone() function. \n
537  *                  The callback is called in the main loop.
538  *
539  * @param[in] playlist The handle to the media playlist
540  * @param[in] user_data The user data passed from the foreach function
541  *
542  * @return @c true to continue with the next iteration of the loop,
543  *         otherwise @c false to break out of the loop
544  *
545  * @pre media_playlist_foreach_playlist_from_db() will invoke this function.
546  *
547  * @see media_playlist_clone()
548  * @see media_playlist_foreach_playlist_from_db()
549  */
550 typedef bool (*media_playlist_cb)(media_playlist_h playlist, void *user_data);
551
552 /**
553  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
554  * @brief Called for every media info with playlist member ID in the obtained list of media info.
555  * @details Iterates over playlist members.
556  *
557  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
558  *
559  * @remarks To use the @a media outside this function, copy the handle with the media_info_clone() function. \n
560  *                  The callback is called in the main loop.
561  *
562  * @param[in] playlist_member_id The ID of the playlist member
563  * @param[in] media The handle to the media info
564  * @param[in] user_data The user data passed from the foreach function
565  *
566  * @return @c true to continue with the next iteration of the loop,
567  *         otherwise @c false to break out of the loop
568  *
569  * @pre media_playlist_foreach_media_from_db() will invoke this function.
570  *
571  * @see media_info_clone()
572  * @see media_playlist_foreach_media_from_db()
573  */
574 typedef bool (*playlist_member_cb)(int playlist_member_id, media_info_h media, void *user_data);
575
576 /**
577  * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
578  * @brief Called for every tag in the obtained list of tags.
579  * @details Iterates over a list of tags.
580  *
581  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
582  *
583  * @remarks To use the @a tag outside this function, copy the handle with the media_tag_clone() function. \n
584  *                  The callback is called in the main loop.
585  *
586  * @param[in] tag The handle to the media tag
587  * @param[in] user_data The user data passed from the foreach function
588  *
589  * @return @c true to continue with the next iteration of the loop,
590  *         otherwise @c false to break out of the loop
591  *
592  * @pre media_tag_foreach_tag_from_db(), media_info_foreach_tag_from_db() will invoke this function.
593  *
594  * @see media_tag_clone()
595  * @see media_tag_foreach_tag_from_db()
596  * @see media_info_foreach_tag_from_db()
597  */
598 typedef bool (*media_tag_cb)(media_tag_h tag, void *user_data);
599
600 /**
601  * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
602  * @brief Called for every bookmark in the obtained list of bookmarks.
603  * @details Iterates over a bookmark list.
604  *
605  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
606  *
607  * @remarks To use the @a bookmark outside this function, copy the handle with the media_bookmark_clone() function. \n
608  *                  The callback is called in the main loop.
609  *
610  * @param[in] bookmark The handle to the media bookmark
611  * @param[in] user_data The user data passed from the foreach function
612  *
613  * @return @c true to continue with the next iteration of the loop,
614  *         otherwise @c false to break out of the loop
615  *
616  * @pre media_info_foreach_bookmark_from_db() will invoke this function.
617  * @see media_info_foreach_bookmark_from_db()
618  */
619 typedef bool (*media_bookmark_cb)(media_bookmark_h bookmark, void *user_data);
620
621 /**
622  * @ingroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
623  * @brief Called for every album in the obtained list of groups.
624  * @details Iterates over an album list.
625  *
626  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
627  *
628  * @remarks To use the @a album outside this function, copy the handle with the media_album_clone() function. \n
629  *                  The callback is called in the main loop.
630  *
631  * @param[in] album The handle to the media album
632  * @param[in] user_data The user data passed from the foreach function
633  *
634  * @return @c true to continue with the next iteration of the loop,
635  *         otherwise @c false to break out of the loop
636  *
637  * @pre media_album_foreach_album_from_db() will invoke this function.
638  *
639  * @see media_album_clone()
640  * @see media_album_foreach_album_from_db()
641  */
642 typedef bool (*media_album_cb)(media_album_h album, void *user_data);
643
644 /**
645  * @ingroup CAPI_CONTENT_MEDIA_GROUP_MODULE
646  * @brief Called for every group in the obtained list of groups.
647  * @details Iterates over a media group list.
648  *
649  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
650  *
651  * @remarks You should not free @a group_name returned by this function. \n
652  *                  The callback is called in the main loop.
653  *
654  * @param[in] group_name The name of the media group
655  * @param[in] user_data The user data passed from the foreach function
656  *
657  * @return @c true to continue with the next iteration of the loop,
658  *         otherwise @c false to break out of the loop
659  *
660  * @pre media_group_foreach_group_from_db() will invoke this function.
661  * @see media_group_foreach_group_from_db()
662  */
663 typedef bool (*media_group_cb)(const char *group_name, void *user_data);
664
665 /**
666  * @ingroup CAPI_CONTENT_MEDIA_STORAGE_MODULE
667  * @deprecated Deprecated since 5.0.
668  * @brief Called for every storage in the obtained list of storages.
669  * @details Iterates over a media storage list.
670  *
671  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
672  *
673  * @remarks You should not destroy @a storage returned by this function. \n
674  *                  The callback is called in the main loop.
675  *
676  * @param[in] storage The handle of the media storage
677  * @param[in] user_data The user data passed from the foreach function
678  *
679  * @return @c true to continue with the next iteration of the loop,
680  *         otherwise @c false to break out of the loop
681  *
682  * @pre media_storage_foreach_storage_from_db() will invoke this function.
683  * @see media_storage_foreach_storage_from_db()
684  */
685 typedef bool (*media_storage_cb)(media_storage_h storage, void *user_data);
686
687 /**
688  * @ingroup CAPI_CONTENT_MEDIA_FACE_MODULE
689  * @brief Called for every face in the obtained list of face.
690  * @details Iterates over a media face list.
691  *
692  * @since_tizen 3.0
693  *
694  * @remarks You should not destroy @a face returned by this function. \n
695  *                  The callback is called in the main loop.
696  *
697  * @param[in] face The handle of the media face
698  * @param[in] user_data The user data passed from the foreach function
699  *
700  * @return @c true to continue with the next iteration of the loop,
701  *         otherwise @c false to break out of the loop
702  *
703  * @pre media_info_foreach_face_from_db() will invoke this function.
704  * @see media_info_foreach_face_from_db()
705  */
706 typedef bool (*media_face_cb)(media_face_h face, void *user_data);
707
708 /**
709  * @}
710  */
711
712 /**
713  * @addtogroup CAPI_CONTENT_MEDIA_FILTER_MODULE
714  * @{
715  */
716
717  /**
718  * @brief Media ID.
719  * @details You can use above define to set the condition of media filter and order keyword.
720  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
721  *
722  */
723 #define MEDIA_ID "MEDIA_ID"
724
725 /**
726  * @brief Media full path.
727  * @details You can use above define to set the condition of media filter and order keyword.
728  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
729  *
730  */
731 #define MEDIA_PATH "MEDIA_PATH"
732
733 /**
734  * @brief The file name including the extension.
735  * @details You can use above define to set the condition of media filter and order keyword.
736  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
737  *
738  */
739 #define MEDIA_DISPLAY_NAME "MEDIA_DISPLAY_NAME"
740
741 /**
742  * @brief Media type.
743  * @details There are 5 media types:\n
744  *               0-image, 1-video, 2-sound, 3-music, 4-other\n
745  *               You can use above define to set the condition of media filter and order keyword.
746  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
747  *
748  */
749 #define MEDIA_TYPE "MEDIA_TYPE"
750
751 /**
752  * @brief Media MIME type.
753  * @details You can use above define to set the condition of media filter and order keyword.
754  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
755  *
756  */
757 #define MEDIA_MIME_TYPE "MEDIA_MIME_TYPE"
758
759
760 /**
761  * @brief Media file size.
762  * @details You can use above define to set the condition of media filter and order keyword.
763  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
764  *
765  */
766 #define MEDIA_SIZE "MEDIA_SIZE"
767
768 /**
769  * @brief The time that content file was first added to media database.
770  * @details You can use above define to set the condition of media filter and order keyword.
771  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
772  *
773  */
774 #define MEDIA_ADDED_TIME "MEDIA_ADDED_TIME"
775
776 /**
777  * @brief The last modification time provided by the file system.
778  * @details You can use above define to set the condition of media filter and order keyword.
779  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
780  *
781  */
782 #define MEDIA_MODIFIED_TIME "MEDIA_MODIFIED_TIME"
783
784 /**
785  * @brief  Media created time.
786  * @details You can use above define to set the condition of media filter and order keyword.
787  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
788  *
789  */
790 #define MEDIA_TIMELINE "MEDIA_TIMELINE"
791
792 /**
793  * @brief Media thumbnail path.
794  * @details You can use above define to set the condition of media filter and order keyword.
795  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
796  *
797  */
798 #define MEDIA_THUMBNAIL_PATH "MEDIA_THUMBNAIL_PATH"
799
800 /**
801  * @brief Media title get from tag or file name.
802  * @details You can use above define to set the condition of media filter and order keyword.
803  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
804  *
805  */
806 #define MEDIA_TITLE "MEDIA_TITLE"
807
808 /**
809  * @brief Media album name.
810  * @details You can use above define to set the condition of media filter and order keyword.
811  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
812  *
813  */
814 #define MEDIA_ALBUM "MEDIA_ALBUM"
815
816 /**
817  * @brief Media artist.
818  * @details You can use above define to set the condition of media filter and order keyword.
819  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
820  *
821  */
822 #define MEDIA_ARTIST "MEDIA_ARTIST"
823
824 /**
825  * @brief Media album artist.
826  * @details You can use above define to set the condition of media filter and order keyword.
827  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
828  *
829  */
830 #define MEDIA_ALBUM_ARTIST "MEDIA_ALBUM_ARTIST"
831
832 /**
833  * @brief Media genre.
834  * @details You can use above define to set the condition of media filter and order keyword.
835  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
836  *
837  */
838 #define MEDIA_GENRE "MEDIA_GENRE"
839
840 /**
841  * @brief Media composer.
842  * @details You can use above define to set the condition of media filter and order keyword.
843  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
844  *
845  */
846 #define MEDIA_COMPOSER "MEDIA_COMPOSER"
847
848 /**
849  * @brief Media year.
850  * @details You can use above define to set the condition of media filter and order keyword.
851  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
852  *
853  */
854 #define MEDIA_YEAR "MEDIA_YEAR"
855
856 /**
857  * @brief Media recorded date.
858  * @details You can use above define to set the condition of media filter and order keyword.
859  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
860  *
861  */
862 #define MEDIA_RECORDED_DATE "MEDIA_RECORDED_DATE"
863
864 /**
865  * @deprecated Deprecated since 5.5.
866  * @brief Media copyright.
867  * @details You can use above define to set the condition of media filter and order keyword.
868  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
869  *
870  */
871 #define MEDIA_COPYRIGHT "MEDIA_COPYRIGHT"
872
873 /**
874  * @brief Media track number.
875  * @details You can use above define to set the condition of media filter and order keyword.
876  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
877  *
878  */
879 #define MEDIA_TRACK_NUM "MEDIA_TRACK_NUM"
880
881 /**
882  * @deprecated Deprecated since 5.5.
883  * @brief Media description.
884  * @details You can use above define to set the condition of media filter and order keyword.
885  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
886  *
887  */
888 #define MEDIA_DESCRIPTION "MEDIA_DESCRIPTION"
889
890 /**
891  * @deprecated Deprecated since 5.5.
892  * @brief Media bitrate.
893  * @details You can use above define to set the condition of media filter and order keyword.
894  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
895  *
896  */
897 #define MEDIA_BITRATE "MEDIA_BITRATE"
898
899 /**
900  * @deprecated Deprecated since 5.5.
901  * @brief Media bit per sample.
902  * @details You can use above define to set the condition of media filter and order keyword.
903  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
904  *
905  */
906 #define MEDIA_BITPERSAMPLE "MEDIA_BITPERSAMPLE"
907
908 /**
909  * @deprecated Deprecated since 5.5.
910  * @brief Media sample rate.
911  * @details You can use above define to set the condition of media filter and order keyword.
912  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
913  *
914  */
915 #define MEDIA_SAMPLERATE "MEDIA_SAMPLERATE"
916
917 /**
918  * @deprecated Deprecated since 5.5.
919  * @brief Media channel.
920  * @details You can use above define to set the condition of media filter and order keyword.
921  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
922  *
923  */
924 #define MEDIA_CHANNEL "MEDIA_CHANNEL"
925
926 /**
927  * @brief Media duration.
928  * @details You can use above define to set the condition of media filter and order keyword.
929  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
930  *
931  */
932 #define MEDIA_DURATION "MEDIA_DURATION"
933
934 /**
935  * @brief Media longitude.
936  * @details You can use above define to set the condition of media filter and order keyword.
937  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
938  *
939  */
940 #define MEDIA_LONGITUDE "MEDIA_LONGITUDE"
941
942 /**
943  * @brief Media latitude.
944  * @details You can use above define to set the condition of media filter and order keyword.
945  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
946  *
947  */
948 #define MEDIA_LATITUDE "MEDIA_LATITUDE"
949
950 /**
951  * @brief Media altitude.
952  * @details You can use above define to set the condition of media filter and order keyword.
953  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
954  *
955  */
956 #define MEDIA_ALTITUDE "MEDIA_ALTITUDE"
957
958 /**
959  * @brief Media width.
960  * @details You can use above define to set the condition of media filter and order keyword.
961  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
962  *
963  */
964 #define MEDIA_WIDTH "MEDIA_WIDTH"
965
966 /**
967  * @brief Media height.
968  * @details You can use above define to set the condition of media filter and order keyword.
969  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
970  *
971  */
972 #define MEDIA_HEIGHT "MEDIA_HEIGHT"
973
974 /**
975  * @brief Media datetaken.
976  * @details You can use above define to set the condition of media filter and order keyword.
977  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
978  *
979  */
980 #define MEDIA_DATETAKEN "MEDIA_DATETAKEN"
981
982 /**
983  * @deprecated Deprecated since 5.5.
984  * @brief Media orientation.
985  * @details You can use above define to set the condition of media filter and order keyword.
986  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
987  *
988  */
989 #define MEDIA_ORIENTATION "MEDIA_ORIENTATION"
990
991 /**
992  * @deprecated Deprecated since 5.5.
993  * @brief Media rating.
994  * @details You can use above define to set the condition of media filter and order keyword.
995  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
996  *
997  */
998 #define MEDIA_RATING "MEDIA_RATING"
999
1000 /**
1001  * @brief The time to register favourite.
1002  * @details You can use above define to set the condition of media filter and order keyword.
1003  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1004  *
1005  */
1006 #define MEDIA_FAVOURITE "MEDIA_FAVOURITE"
1007
1008 /**
1009  * @brief Is DRM.
1010  * @details There are 2 types:\n
1011  *               0-not drm, 1-drm\n
1012  *               You can use above define to set the condition of media filter and order keyword.
1013  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1014  *
1015  */
1016 #define MEDIA_IS_DRM "MEDIA_IS_DRM"
1017
1018 /**
1019  * @deprecated Deprecated since 5.0.
1020  * @brief Media storage.
1021  * @details There are 3 types:\n
1022  *               0-internal storage, 1-SD card, 2-USB storage\n
1023  *               You can use above define to set the condition of media filter and order keyword.
1024  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1025  *
1026  */
1027 #define MEDIA_STORAGE_TYPE "MEDIA_STORAGE_TYPE"
1028
1029 /**
1030  * @deprecated Deprecated since 5.5.
1031  * @brief Media exposure time.
1032  * @details You can use above define to set the condition of media filter and order keyword.
1033  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1034  *
1035  */
1036 #define MEDIA_EXPOSURE_TIME "MEDIA_EXPOSURE_TIME"
1037
1038 /**
1039  * @deprecated Deprecated since 5.5.
1040  * @brief Media fnumber.
1041  * @details You can use above define to set the condition of media filter and order keyword.
1042  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1043  *
1044  */
1045 #define MEDIA_FNUMBER "MEDIA_FNUMBER"
1046
1047 /**
1048  * @deprecated Deprecated since 5.5.
1049  * @brief Media ISO.
1050  * @details You can use above define to set the condition of media filter and order keyword.
1051  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1052  *
1053  */
1054 #define MEDIA_ISO "MEDIA_ISO"
1055
1056 /**
1057  * @deprecated Deprecated since 5.5.
1058  * @brief Media model.
1059  * @details You can use above define to set the condition of media filter and order keyword.
1060  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1061  *
1062  */
1063 #define MEDIA_MODEL "MEDIA_MODEL"
1064
1065 /**
1066  * @brief Media file name pinyin.
1067  * @details You can use above define to set the condition of media filter and order keyword.
1068  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1069  * @remarks Since 4.0, this keyword is related to the following feature:\n
1070  *          - %http://tizen.org/feature/content.filter.pinyin\n
1071  *             If this feature is not supported on the device, PINYIN search does not work.
1072  *
1073  */
1074 #define MEDIA_FILE_NAME_PINYIN "MEDIA_FILE_NAME_PINYIN"
1075
1076 /**
1077  * @brief Media title pinyin.
1078  * @details You can use above define to set the condition of media filter and order keyword.
1079  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1080  * @remarks Since 4.0, this keyword is related to the following feature:\n
1081  *          - %http://tizen.org/feature/content.filter.pinyin\n
1082  *             If this feature is not supported on the device, PINYIN search does not work.
1083  *
1084  */
1085 #define MEDIA_TITLE_PINYIN "MEDIA_TITLE_PINYIN"
1086
1087 /**
1088  * @brief Media album pinyin.
1089  * @details You can use above define to set the condition of media filter and order keyword.
1090  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1091  * @remarks Since 4.0, this keyword is related to the following feature:\n
1092  *          - %http://tizen.org/feature/content.filter.pinyin\n
1093  *            If this feature is not supported on the device, PINYIN search does not work.
1094  *
1095  */
1096 #define MEDIA_ALBUM_PINYIN "MEDIA_ALBUM_PINYIN"
1097
1098 /**
1099  * @brief Media artist pinyin.
1100  * @details You can use above define to set the condition of media filter and order keyword.
1101  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1102  * @remarks Since 4.0, this keyword is related to the following feature:\n
1103  *          - %http://tizen.org/feature/content.filter.pinyin\n
1104  *             If this feature is not supported on the device, PINYIN search does not work.
1105  *
1106  */
1107 #define MEDIA_ARTIST_PINYIN "MEDIA_ARTIST_PINYIN"
1108
1109 /**
1110  * @brief Media album artist pinyin.
1111  * @details You can use above define to set the condition of media filter and order keyword.
1112  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1113  * @remarks Since 4.0, this keyword is related to the following feature:\n
1114  *          - %http://tizen.org/feature/content.filter.pinyin\n
1115  *            If this feature is not supported on the device, PINYIN search does not work.
1116  *
1117  */
1118 #define MEDIA_ALBUM_ARTIST_PINYIN "MEDIA_ALBUM_ARTIST_PINYIN"
1119
1120 /**
1121  * @brief Media genre pinyin.
1122  * @details You can use above define to set the condition of media filter and order keyword.
1123  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1124  * @remarks Since 4.0, this keyword is related to the following feature:\n
1125  *          - %http://tizen.org/feature/content.filter.pinyin\n
1126  *            If this feature is not supported on the device, PINYIN search does not work.
1127  *
1128  */
1129 #define MEDIA_GENRE_PINYIN "MEDIA_GENRE_PINYIN"
1130
1131 /**
1132  * @brief Media composer pinyin.
1133  * @details You can use above define to set the condition of media filter and order keyword.
1134  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1135  * @remarks Since 4.0, this keyword is related to the following feature:\n
1136  *          - %http://tizen.org/feature/content.filter.pinyin\n
1137  *            If this feature is not supported on the device, PINYIN search does not work.
1138  *
1139  */
1140 #define MEDIA_COMPOSER_PINYIN "MEDIA_COMPOSER_PINYIN"
1141
1142 /**
1143  * @deprecated Deprecated since 5.5.
1144  * @brief Media copyright pinyin.
1145  * @details You can use above define to set the condition of media filter and order keyword.
1146  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1147  * @remarks Since 4.0, this keyword is related to the following feature:\n
1148  *          - %http://tizen.org/feature/content.filter.pinyin\n
1149  *            If this feature is not supported on the device, PINYIN search does not work.
1150  *
1151  */
1152 #define MEDIA_COPYRIGHT_PINYIN "MEDIA_COPYRIGHT_PINYIN"
1153
1154 /**
1155  * @deprecated Deprecated since 5.5.
1156  * @brief Media description pinyin.
1157  * @details You can use above define to set the condition of media filter and order keyword.
1158  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1159  * @remarks Since 4.0, this keyword is related to the following feature:\n
1160  *          - %http://tizen.org/feature/content.filter.pinyin\n
1161  *            If this feature is not supported on the device, PINYIN search does not work.
1162  *
1163  */
1164 #define MEDIA_DESCRIPTION_PINYIN "MEDIA_DESCRIPTION_PINYIN"
1165
1166 /**
1167  * @brief Virtual Reality content.
1168  * @details You can use above define to set the condition of media filter and order keyword.
1169  * @since_tizen 3.0
1170  *
1171  */
1172 #define MEDIA_360 "MEDIA_360"
1173
1174  /**
1175  * @brief Folder ID.
1176  * @details You can use above define to set the condition of folder filter and order keyword.
1177  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1178  */
1179 #define FOLDER_ID "FOLDER_ID"
1180
1181 /**
1182  * @brief Folder full path.
1183  * @details You can use above define to set the condition of folder filter and order keyword.
1184  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1185  */
1186 #define FOLDER_PATH "FOLDER_PATH"
1187
1188 /**
1189  * @brief Folder base name.
1190  * @details You can use above define to set the condition of folder filter and order keyword.
1191  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1192  */
1193 #define FOLDER_NAME "FOLDER_NAME"
1194
1195 /**
1196  * @deprecated Deprecated since 5.0.
1197  * @brief Folder storage.
1198  * @details There are 2 types:\n
1199  *               0-internal storage, 1-external storage\n
1200  *               You can use above define to set the condition of folder filter and order keyword.
1201  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1202  */
1203 #define FOLDER_STORAGE_TYPE "FOLDER_STORAGE_TYPE"
1204
1205 /**
1206  * @brief Folder base name pinyin.
1207  * @details You can use above define to set the condition of folder filter and order keyword.
1208  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1209  * @remarks Since 4.0, this keyword is related to the following feature:\n
1210  *          - %http://tizen.org/feature/content.filter.pinyin\n
1211  *            If this feature is not supported on the device, PINYIN search does not work.
1212  */
1213 #define FOLDER_NAME_PINYIN "FOLDER_NAME_PINYIN"
1214
1215 /**
1216  * @brief Playlist name.
1217  * @details You can use above define to set the condition of playlist filter and order keyword.
1218  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1219  */
1220 #define PLAYLIST_NAME "PLAYLIST_NAME"
1221
1222 /**
1223  * @brief Playlist id.
1224  * @details You can use above define to set the condition of playlist filter and order keyword.
1225  * @since_tizen 4.0
1226  */
1227 #define MEDIA_PLAYLIST_ID "PLAYLIST_ID"
1228
1229 /**
1230  * @brief Playlist member order.
1231  * @details You can use above define to set the condition of playlist filter and order keyword.
1232  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1233  */
1234 #define PLAYLIST_MEMBER_ORDER "PLAYLIST_MEMBER_ORDER"
1235
1236 /**
1237  * @brief Media count in playlist.
1238  * @details You can use above define to set the condition of playlist filter and order keyword.
1239  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1240  */
1241 #define PLAYLIST_MEDIA_COUNT "PLAYLIST_MEDIA_COUNT"
1242
1243 /**
1244  * @brief Tag name.
1245  * @details You can use above define to set the condition of tag filter and order keyword.
1246  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1247  */
1248 #define TAG_NAME "TAG_NAME"
1249
1250 /**
1251  * @brief Tag id.
1252  * @details You can use above define to set the condition of tag filter and order keyword.
1253  * @since_tizen 4.0
1254  */
1255 #define MEDIA_TAG_ID "TAG_ID"
1256
1257 /**
1258  * @brief Media count in tag.
1259  * @details You can use above define to set the condition of tag filter and order keyword.
1260  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1261  */
1262 #define TAG_MEDIA_COUNT "TAG_MEDIA_COUNT"
1263
1264 /**
1265  * @brief Bookmark marked time.
1266  * @details You can use above define to set the condition of bookmark filter and order keyword.
1267  * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
1268  */
1269 #define BOOKMARK_MARKED_TIME "BOOKMARK_MARKED_TIME"
1270
1271 /**
1272  * @brief Bookmark id.
1273  * @details You can use above define to set the condition of bookmark filter and order keyword.
1274  * @since_tizen 4.0
1275  */
1276 #define MEDIA_BOOKMARK_ID "BOOKMARK_ID"
1277
1278 /**
1279  * @brief Bookmark name.
1280  * @details You can use above define to set the condition of bookmark filter and order keyword.
1281  * @since_tizen 4.0
1282  */
1283 #define BOOKMARK_NAME "BOOKMARK_NAME"
1284
1285 /**
1286  * @deprecated Deprecated since 5.0.
1287  * @brief Storage ID.
1288  * @details You can use above define to set the condition of storage filter and order keyword.
1289  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1290  */
1291 #define MEDIA_STORAGE_ID                                        "STORAGE_ID"
1292
1293 /**
1294  * @deprecated Deprecated since 5.0.
1295  * @brief Storage path.
1296  * @details You can use above define to set the condition of storage filter and order keyword.
1297  * @since_tizen @if MOBILE 2.4 @elseif WEARABLE 3.0 @endif
1298  */
1299 #define MEDIA_STORAGE_PATH                              "STORAGE_PATH"
1300
1301 /**
1302  * @brief Face tag.
1303  * @details You can use above define to set the condition of face filter and order keyword.
1304  * @since_tizen 3.0
1305  */
1306 #define MEDIA_FACE_TAG  "MEDIA_FACE_TAG"
1307
1308 /**
1309  * @brief Face id.
1310  * @details You can use above define to set the condition of face filter and order keyword.
1311  * @since_tizen 4.0
1312  */
1313 #define MEDIA_FACE_ID   "MEDIA_FACE_ID"
1314
1315 /**
1316  * @}
1317  */
1318
1319
1320 #ifdef __cplusplus
1321 }
1322 #endif /* __cplusplus */
1323
1324
1325 #endif /*__TIZEN_CONTENT_MEDIA_CONTENT_TYPE_H__*/