-/*\r
-* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved\r
-*\r
-* Licensed under the Apache License, Version 2.0 (the "License");\r
-* you may not use this file except in compliance with the License.\r
-* You may obtain a copy of the License at\r
-*\r
-* http://www.apache.org/licenses/LICENSE-2.0\r
-*\r
-* Unless required by applicable law or agreed to in writing, software\r
-* distributed under the License is distributed on an "AS IS" BASIS,\r
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-* See the License for the specific language governing permissions and\r
-* limitations under the License. \r
-*/\r
-\r
-\r
-\r
-#ifndef __TIZEN_MEDIA_CONTENT_TYPE_H__\r
-#define __TIZEN_MEDIA_CONTENT_TYPE_H__\r
-\r
-#include <time.h>\r
-#include <tizen.h>\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif /* __cplusplus */\r
-\r
-#define ERROR_MASKL16 0xFFFF\r
-#define ERROR_SET(X) ((X) & ERROR_MASKL16)\r
-\r
-\r
-/**\r
-* @addtogroup CAPI_MEDIA_CONTENT_MODULE\r
-* @{\r
-*/\r
-\r
-/**\r
- * @ingroup CAPI_MEDIA_CONTENT_MODULE\r
- * @brief The enumerations of the media file format.\r
- */\r
-typedef enum\r
-{\r
- MEDIA_CONTENT_TYPE_IMAGE = 0x01 << 0, /**<The type of image */\r
- MEDIA_CONTENT_TYPE_VIDEO = 0x01 << 1, /**<The type of video */\r
- MEDIA_CONTENT_TYPE_AUDIO = 0x01 << 2, /**<The type of audio */\r
- MEDIA_CONTENT_TYPE_ALL = MEDIA_CONTENT_TYPE_IMAGE|MEDIA_CONTENT_TYPE_VIDEO|MEDIA_CONTENT_TYPE_AUDIO, /**< The type of all media content */\r
-\r
-} media_content_type_e;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE\r
- * @brief The enumerations of the storage type.\r
- * @detail This information is used to establish where the folder is.\r
- */\r
-typedef enum\r
-{\r
- MEDIA_CONTENT_STORAGE_INTERNAL, /**< The device's internal storage */ \r
- MEDIA_CONTENT_STORAGE_EXTERNAL, /**< The device's external storage */ \r
- //MEDIA_CONTENT_STORAGE_WEB = 0x01<< 2,\r
-} media_content_storage_e;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE\r
- * @brief The type of orientation.\r
- */\r
-typedef enum {\r
- MEDIA_CONTENT_ORIENTATION_NOT_AVAILABLE=0, /**< Not available*/\r
- MEDIA_CONTENT_ORIENTATION_NORMAL =1, /**< Normal*/\r
- MEDIA_CONTENT_ORIENTATION_HFLIP =2, /**< Flip horizontal*/\r
- MEDIA_CONTENT_ORIENTATION_ROT_180 =3, /**< Rotate 180 degrees*/\r
- MEDIA_CONTENT_ORIENTATION_VFLIP =4, /**< Flip vertical*/\r
- MEDIA_CONTENT_ORIENTATION_TRANSPOSE =5, /**< Transpose*/\r
- MEDIA_CONTENT_ORIENTATION_ROT_90 =6, /**< Rotate 90 degrees*/\r
- MEDIA_CONTENT_ORIENTATION_TRANSVERSE =7, /**< Transverse*/\r
- MEDIA_CONTENT_ORIENTATION_ROT_270 =8, /**< Rotate 270 degrees*/\r
-} media_content_orientation_e;\r
-\r
-/**\r
- * @ingroup CAPI_MEDIA_CONTENT_MODULE\r
- * @brief The enumerations of ordering.\r
- */\r
-typedef enum\r
-{\r
- MEDIA_CONTENT_SORT_NONE, /**< None order of sort*/\r
- MEDIA_CONTENT_SORT_BY_NAME_ASC, /**< The sort by name in ascending order*/\r
- MEDIA_CONTENT_SORT_BY_NAME_DESC, /**< The sort by name in descending order*/\r
- MEDIA_CONTENT_SORT_BY_DATE_ASC, /**< The sort by date in ascending order*/\r
- MEDIA_CONTENT_SORT_BY_DATE_DESC, /**< The sort by date in descending order*/ \r
-} media_content_order_e;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE\r
- * @brief The category of audio.\r
- */\r
-typedef enum{\r
- CONTENT_AUDIO_MUSIC, /**< Music Category*/\r
- CONTENT_AUDIO_SOUND /**< Sound Category*/\r
-} audio_category_e;\r
-\r
-/**\r
- * @ingroup CAPI_MEDIA_CONTENT_MODULE\r
- * @brief The enumerations of media content error\r
- */\r
-typedef enum\r
-{\r
- MEDIA_CONTENT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */\r
- MEDIA_CONTENT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */\r
- MEDIA_CONTENT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */\r
- MEDIA_CONTENT_ERROR_DB_FAILED = TIZEN_ERROR_CONTENT_CLASS | 0x01, /**< DB operation failed */\r
- MEDIA_CONTENT_ERROR_NOT_SUPPORTED_AUDIO = TIZEN_ERROR_CONTENT_CLASS | 0x02, /**< Only video and image info can be added to Tag */\r
-} media_content_error_e;\r
-\r
-\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_INFO_MODULE\r
- * @brief The type of searchable media info \r
- */\r
-typedef enum\r
-{\r
- MEDIA_INFO_SEARCH_NONE = 0x00, /**< No Search */\r
- MEDIA_INFO_SEARCH_BY_DISPLAY_NAME = 0x01 << 0, /**< The search by display name */\r
- \r
-}media_info_search_type_e;\r
-\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_FOLDER_MODULE\r
- * @brief The type of searchable media folder \r
- */\r
-typedef enum\r
-{\r
- MEDIA_FOLDER_SEARCH_NONE = 0x00, /**< No Search */\r
- MEDIA_FOLDER_SEARCH_BY_FOLDER_NAME = 0x01 << 0, /**< The searchable type folder name */\r
-}media_folder_search_type_e;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_AUDIO_MODULE\r
- * @brief The type of searchable media audio \r
- */\r
-typedef enum\r
-{\r
- MEDIA_AUDIO_SEARCH_NONE = 0x00, /**< No Search */\r
- MEDIA_AUDIO_SEARCH_BY_PLAYLIST = 0x01 << 0, /**< The searchable type of playlist */\r
- MEDIA_AUDIO_SEARCH_BY_ARTIST = 0x01 << 1, /**< The searchable type of artist */\r
- MEDIA_AUDIO_SEARCH_BY_ALBUM = 0x01 << 2, /**< The searchable type of album */\r
- MEDIA_AUDIO_SEARCH_BY_AUTHOR = 0x01 << 3, /**< The searchable type of author */\r
- MEDIA_AUDIO_SEARCH_BY_GENRE = 0x01 << 4, /**< The searchable type of genre */\r
-}media_audio_search_type_e;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_TAG_MODULE\r
- * @brief The type of searchable media tag \r
- */\r
-typedef enum\r
-{\r
- MEDIA_TAG_SEARCH_NONE = 0x00, /**< No Search */\r
- MEDIA_TAG_SEARCH_BY_TAG_NAME = 0x01 << 0, /**< The searchable type folder name */\r
-}media_tag_search_type_e;\r
-\r
-\r
-\r
-\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_INFO_MODULE\r
- * @brief The handle to media info filter.\r
- */\r
-typedef struct media_info_filter_s* media_info_filter_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_FOLDER_MODULE\r
- * @brief The handle to media folder filter.\r
- */\r
-typedef struct media_folder_filter_s* media_folder_filter_h;\r
-\r
-/** \r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_TAG_MODULE\r
- * @brief The handle to media tag filter.\r
- */\r
-typedef struct media_tag_filter_s* media_tag_filter_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_AUDIO_MODULE\r
- * @brief The handle to media audio filter.\r
- */\r
-typedef struct media_audio_filter_s* media_audio_filter_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FILTER_BOOKMARK_MODULE\r
- * @brief The handle to video bookmark filter.\r
- */\r
-typedef struct video_bookmark_filter_s* video_bookmark_filter_h;\r
-\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE\r
- * @brief The handle to media info.\r
- */\r
-typedef struct media_info_s* media_info_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE\r
- * @brief The handle to media folder.\r
- */\r
-typedef struct media_folder_s* media_folder_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE\r
- * @brief The handle to media tag.\r
- */\r
-typedef struct media_tag_s* media_tag_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_IMAGE_MODULE\r
- * @brief The handle to image metadata.\r
- */\r
-typedef struct image_meta_s* image_meta_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE\r
- * @brief The handle to video metadata.\r
- */\r
-typedef struct video_meta_s* video_meta_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_VIDEO_BOOKMARK_MODULE\r
- * @brief The handle to video bookmark.\r
- */\r
-typedef struct video_bookmark_s* video_bookmark_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE\r
- * @brief The handle to audio metadata.\r
- */\r
-typedef struct audio_meta_s* audio_meta_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_PLAYLIST_MODULE\r
- * @brief The handle to audio playlist.\r
- */\r
-typedef struct audio_playlist_s* audio_playlist_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_ALBUM_MODULE\r
- * @brief The handle to audio album.\r
- */\r
-typedef struct audio_album_s* audio_album_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_AUTHOR_MODULE\r
- * @brief The handle to audio author.\r
- */\r
-typedef struct audio_author_s* audio_author_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_GENRE_MODULE\r
- * @brief The handle to audio genre.\r
- */\r
-typedef struct audio_genre_s* audio_genre_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_ARTIST_MODULE\r
- * @brief The handle to audio artist.\r
- */\r
-typedef struct audio_artist_s* audio_artist_h;\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE\r
- * @brief Iterates over a list of folders.\r
- *\r
- * @details This callback is called for every available media folder.\n\r
- *\r
- * @remarks To use the @a folder outside this function, copy the handle with #media_folder_clone() function. \r
- *\r
- * @param[in] folder The handle to media folder\r
- * @param[in] user_data The user data passed from the foreach function\r
- \r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre media_folder_foreach_folder_from_db() will invoke this function.\r
- * @see media_folder_clone()\r
- * @see media_folder_foreach_folder_from_db()\r
- */\r
-typedef bool (*media_folder_cb)(media_folder_h folder, void *user_data);\r
-\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE\r
- * @brief Iterates over a list of media info.\r
- *\r
- * @details This callback is called for every available media info.\n\r
- *\r
- * @remarks To use the @a media outside this function, copy the handle with #media_info_clone() function. \r
- *\r
- * @param[in] media The handle to media info\r
- * @param[in] user_data The user data passed from the foreach function \r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre media_tag_foreach_media_from_db(), audio_playlist_foreach_media_from_db(), audio_genre_foreach_media_from_db(),\r
- * audio_album_foreach_media_from_db(), audio_artist_foreach_media_from_db(), audio_author_foreach_media_from_db(), \r
- * media_info_foreach_media_from_db(), media_folder_foreach_media_from_db() will invoke this function.\r
- * @see media_info_clone()\r
- * @see audio_album_foreach_media_from_db()\r
- * @see audio_playlist_foreach_media_from_db()\r
- * @see audio_artist_foreach_media_from_db()\r
- * @see audio_author_foreach_media_from_db()\r
- * @see audio_genre_get_media_count_from_db()\r
- * @see media_tag_foreach_media_from_db()\r
- * @see media_info_foreach_media_from_db()\r
- * @see media_folder_foreach_media_from_db()\r
- */\r
-typedef bool (*media_info_cb)(media_info_h media, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE\r
- * @brief Iterates over a list of tags\r
- *\r
- * @details This callback is called for every tag in the obtained list of tags.\n\r
- *\r
- * @remarks To use the @a tag outside this function, copy the handle with #media_tag_clone() function. \r
- *\r
- * @param[in] tag The handle to media tag\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre media_tag_foreach_tag_from_db(), media_info_foreach_tag_from_db() will invoke this function.\r
- * @see media_tag_clone()\r
- * @see media_tag_foreach_tag_from_db()\r
- * @see media_info_foreach_tag_from_db()\r
- */\r
-typedef bool (*media_tag_cb)(media_tag_h tag, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_VIDEO_BOOKMARK_MODULE\r
- * @brief Iterates over bookmark list\r
- *\r
- * @details This callback is called for every bookmark in obtained list of bookmarks.\n\r
- *\r
- * @remarks To use the @a bookmark outside this function, copy the handle with #video_bookmark_clone() function. \r
- *\r
- * @param[in] bookmark The handle to video bookmark\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre video_bookmark_foreach_bookmark_from_db() will invoke this function.\r
- * @see video_bookmark_clone()\r
- * @see video_bookmark_foreach_bookmark_from_db()\r
- */\r
-typedef bool (*video_bookmark_cb)(video_bookmark_h bookmark, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_PLAYLIST_MODULE\r
- * @brief Iterates over playlist list\r
- *\r
- * @details This callback is called for every playlist in obtained list of playlists.\n\r
- *\r
- * @remarks To use the @a playlist outside this function, copy the handle with #audio_playlist_clone() function. \r
-\r
- *\r
- * @param[in] playlist The handle to audio playlist\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre audio_playlist_foreach_playlist_from_db() will invoke this function.\r
- * @see audio_playlist_clone()\r
- * @see audio_playlist_foreach_playlist_from_db()\r
- */\r
-typedef bool (*audio_playlist_cb)(audio_playlist_h playlist, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_GENRE_MODULE\r
- * @brief Iterates over genre list\r
- *\r
- * @details This callback is called for every genre in obtained list of groups.\n\r
- *\r
- * @remarks To use the @a genre outside this function, copy the handle with #audio_genre_clone() function. \r
- *\r
- * @param[in] genre The handle to audio genre\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre audio_genre_foreach_genre_from_db() will invoke this function.\r
- * @see audio_genre_clone()\r
- * @see audio_genre_foreach_genre_from_db()\r
- */\r
-typedef bool (*audio_genre_cb)(audio_genre_h genre, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_ARTIST_MODULE\r
- * @brief Iterates over artist list\r
- *\r
- * @details This callback is called for every artist in obtained list of groups.\n\r
- *\r
- * @remarks To use the @a artist outside this function, copy the handle with #audio_artist_clone() function. \r
- *\r
- * @param[in] artist The handle to audio artist\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre audio_artist_foreach_artist_from_db() will invoke this function.\r
- * @see audio_artist_clone()\r
- * @see audio_artist_foreach_artist_from_db()\r
- */\r
-typedef bool (*audio_artist_cb)(audio_artist_h artist, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_AUTHOR_MODULE\r
- * @brief Iterates over author list\r
- *\r
- * @details This callback is called for every author in obtained list of groups.\n\r
- *\r
- * @remarks To use the @a author outside this function, copy the handle with #audio_author_clone() function. \r
- *\r
- * @param[in] author The handle to audio author\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre audio_author_foreach_author_from_db() will invoke this function.\r
- * @see audio_author_clone()\r
- * @see audio_author_foreach_author_from_db()\r
- */\r
-typedef bool (*audio_author_cb)(audio_author_h author, void *user_data);\r
-\r
-/**\r
- * @ingroup CAPI_CONTENT_MEDIA_AUDIO_ALBUM_MODULE\r
- * @brief Iterates over album list\r
- *\r
- * @details This callback is called for every album in obtained list of groups.\n\r
- *\r
- * @remarks To use the @a album outside this function, copy the handle with #audio_album_clone() function. \r
- *\r
- * @param[in] album The handle to audio album\r
- * @param[in] user_data The user data passed from the foreach function\r
- * @return true to continue with the next iteration of the loop, \r
- * @return false to break out of the loop.\r
- * @pre audio_album_foreach_album_from_db() will invoke this function.\r
- * @see audio_album_clone()\r
- * @see audio_album_foreach_album_from_db()\r
- */\r
-\r
-typedef bool (*audio_album_cb)(audio_album_h album, void *user_data);\r
-\r
-/**\r
- * @}\r
- */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif /* __cplusplus */\r
-\r
-\r
-#endif /*__TIZEN_MEDIA_CONTENT_TYPE_H__*/\r
+/*
+* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+#ifndef __TIZEN_MEDIA_CONTENT_TYPE_H__
+#define __TIZEN_MEDIA_CONTENT_TYPE_H__
+
+#include <time.h>
+#include <tizen.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifndef DEPRECATED_API
+#define DEPRECATED_API __attribute__ ((deprecated))
+#endif
+
+/**
+* @addtogroup CAPI_MEDIA_CONTENT_MODULE
+* @{
+*/
+
+/**
+ * @ingroup CAPI_MEDIA_CONTENT_MODULE
+ * @brief The enumerations of the media file format.
+ */
+typedef enum
+{
+ MEDIA_CONTENT_TYPE_IMAGE = 0, /**<The type of image */
+ MEDIA_CONTENT_TYPE_VIDEO = 1, /**<The type of video */
+ MEDIA_CONTENT_TYPE_SOUND = 2, /**<The type of sound */
+ MEDIA_CONTENT_TYPE_MUSIC = 3, /**<The type of music */
+ MEDIA_CONTENT_TYPE_OTHERS = 4, /**<The type of other */
+} media_content_type_e;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
+ * @brief The enumerations of the storage type.
+ * @detail This information is used to establish where the folder is.
+ */
+typedef enum
+{
+ MEDIA_CONTENT_STORAGE_INTERNAL = 0, /**< The device's internal storage */
+ MEDIA_CONTENT_STORAGE_EXTERNAL = 1, /**< The device's external storage */
+} media_content_storage_e;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
+ * @brief The type of orientation.
+ */
+typedef enum {
+ MEDIA_CONTENT_ORIENTATION_NOT_AVAILABLE = 0, /**< Not available*/
+ MEDIA_CONTENT_ORIENTATION_NORMAL = 1, /**< Normal*/
+ MEDIA_CONTENT_ORIENTATION_HFLIP = 2, /**< Flip horizontal*/
+ MEDIA_CONTENT_ORIENTATION_ROT_180 = 3, /**< Rotate 180 degrees*/
+ MEDIA_CONTENT_ORIENTATION_VFLIP = 4, /**< Flip vertical*/
+ MEDIA_CONTENT_ORIENTATION_TRANSPOSE = 5, /**< Transpose*/
+ MEDIA_CONTENT_ORIENTATION_ROT_90 = 6, /**< Rotate 90 degrees*/
+ MEDIA_CONTENT_ORIENTATION_TRANSVERSE = 7, /**< Transverse*/
+ MEDIA_CONTENT_ORIENTATION_ROT_270 = 8, /**< Rotate 270 degrees*/
+} media_content_orientation_e;
+
+/**
+ * @ingroup CAPI_MEDIA_CONTENT_MODULE
+ * @brief The enumerations of ordering.
+ */
+typedef enum
+{
+ MEDIA_CONTENT_ORDER_ASC = 0, /**< ascending order*/
+ MEDIA_CONTENT_ORDER_DESC = 1, /**< descending order*/
+} media_content_order_e;
+
+/**
+ * @ingroup CAPI_MEDIA_CONTENT_MODULE
+ * @brief The enumerations of collations.
+ */
+typedef enum
+{
+ MEDIA_CONTENT_COLLATE_DEFAULT = 0, /**< default collation BINARY */
+ MEDIA_CONTENT_COLLATE_NOCASE = 1, /**< collation NOCASE, not case sensitive */
+ MEDIA_CONTENT_COLLATE_RTRIM = 2, /**< collation RTRIM, trailing space characters are ignored */
+} media_content_collation_e;
+
+/**
+ * @ingroup CAPI_MEDIA_CONTENT_MODULE
+ * @brief The enumerations of media content error
+ */
+typedef enum
+{
+ MEDIA_CONTENT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
+ MEDIA_CONTENT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
+ MEDIA_CONTENT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
+ MEDIA_CONTENT_ERROR_DB_FAILED = TIZEN_ERROR_CONTENT_CLASS | 0x01, /**< DB operation failed */
+ MEDIA_CONTENT_ERROR_DB_BUSY = TIZEN_ERROR_CONTENT_CLASS | 0x02, /**< DB operation BUSY */
+} media_content_error_e;
+
+/**
+ * @ingroup CAPI_MEDIA_CONTENT_MODULE
+ * @brief The enumerations of media group
+ */
+typedef enum {
+ MEDIA_CONTENT_GROUP_DISPLAY_NAME = 0,
+ MEDIA_CONTENT_GROUP_TYPE,
+ MEDIA_CONTENT_GROUP_MIME_TYPE,
+ MEDIA_CONTENT_GROUP_SIZE,
+ MEDIA_CONTENT_GROUP_ADDED_TIME,
+ MEDIA_CONTENT_GROUP_MODIFIED_TIME,
+ MEDIA_CONTENT_GROUP_TITLE,
+ MEDIA_CONTENT_GROUP_ARTIST,
+ MEDIA_CONTENT_GROUP_GENRE,
+ MEDIA_CONTENT_GROUP_COMPOSER,
+ MEDIA_CONTENT_GROUP_YEAR,
+ MEDIA_CONTENT_GROUP_RECORDED_DATE,
+ MEDIA_CONTENT_GROUP_COPYRIGHT,
+ MEDIA_CONTENT_GROUP_TRACK_NUM,
+ MEDIA_CONTENT_GROUP_DESCRIPTION,
+ MEDIA_CONTENT_GROUP_LONGITUDE,
+ MEDIA_CONTENT_GROUP_LATIITUDE,
+ MEDIA_CONTENT_GROUP_ALTITUDE,
+ MEDIA_CONTENT_GROUP_RATING,
+ MEDIA_CONTENT_GROUP_AUTHOR,
+ MEDIA_CONTENT_GROUP_PROVIDER,
+ MEDIA_CONTENT_GROUP_CONTENT_NAME,
+ MEDIA_CONTENT_GROUP_CATEGORY,
+ MEDIA_CONTENT_GROUP_LOCATION_TAG,
+ MEDIA_CONTENT_GROUP_AGE_RATING,
+ MEDIA_CONTENT_GROUP_KEYWORD
+} media_group_e;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
+ * @brief The handle to media info.
+ */
+typedef struct media_info_s *media_info_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
+ * @brief The handle to media folder.
+ */
+typedef struct media_folder_s *media_folder_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
+ * @brief The handle to media playlist.
+ */
+typedef struct media_playlist_s *media_playlist_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
+ * @brief The handle to media tag.
+ */
+typedef struct media_tag_s *media_tag_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
+ * @brief The handle to media bookmark.
+ */
+typedef struct media_bookmark_s *media_bookmark_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
+ * @brief The handle to media album.
+ */
+typedef struct media_album_s *media_album_h;
+
+
+typedef struct media_artist_s *media_artist_h;
+typedef struct media_genre_s *media_genre_h;
+typedef struct media_composer_s *media_composer_h;
+typedef struct media_year_s *media_year_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_IMAGE_MODULE
+ * @brief The handle to image metadata.
+ */
+typedef struct image_meta_s *image_meta_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE
+ * @brief The handle to video metadata.
+ */
+typedef struct video_meta_s *video_meta_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE
+ * @brief The handle to audio metadata.
+ */
+typedef struct audio_meta_s *audio_meta_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_FILTER_MODULE
+ * @brief The handle to media filter.
+ */
+typedef struct filter_s *filter_h;
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
+ * @brief Iterates over a list of media info.
+ *
+ * @details This callback is called for every available media info.\n
+ *
+ * @remarks To use the @a media outside this function, copy the handle with #media_info_clone() function.
+ *
+ * @param[in] media The handle to media info
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_tag_foreach_media_from_db(), media_playlist_foreach_media_from_db(), media_genre_foreach_media_from_db(),
+ * media_album_foreach_media_from_db(), media_artist_foreach_media_from_db(), media_composer_foreach_media_from_db(),
+ * media_info_foreach_media_from_db(), media_folder_foreach_media_from_db() will invoke this function.
+ * @see media_info_clone()
+ * @see media_album_foreach_media_from_db()
+ * @see media_playlist_foreach_media_from_db()
+ * @see media_artist_foreach_media_from_db()
+ * @see media_composer_foreach_media_from_db()
+ * @see media_genre_get_media_count_from_db()
+ * @see media_tag_foreach_media_from_db()
+ * @see media_info_foreach_media_from_db()
+ * @see media_folder_foreach_media_from_db()
+ */
+typedef bool (*media_info_cb)(media_info_h media, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
+ * @brief Iterates over a list of folders.
+ *
+ * @details This callback is called for every available media folder.\n
+ *
+ * @remarks To use the @a folder outside this function, copy the handle with #media_folder_clone() function.
+ *
+ * @param[in] folder The handle to media folder
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_folder_foreach_folder_from_db() will invoke this function.
+ * @see media_folder_clone()
+ * @see media_folder_foreach_folder_from_db()
+ */
+typedef bool (*media_folder_cb)(media_folder_h folder, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
+ * @brief Iterates over playlist list.
+ *
+ * @details This callback is called for every playlist in obtained list of playlists.\n
+ *
+ * @remarks To use the @a playlist outside this function, copy the handle with #media_playlist_clone() function.
+ *
+ * @param[in] playlist The handle to media playlist
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_playlist_foreach_playlist_from_db() will invoke this function.
+ * @see media_playlist_clone()
+ * @see media_playlist_foreach_playlist_from_db()
+ */
+typedef bool (*media_playlist_cb)(media_playlist_h playlist, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
+ * @brief Iterates over playlist member.
+ *
+ * @details This callback is called for every media info with playlist member ID in obtained list of media info.\n
+ *
+ * @remarks To use the @a media outside this function, copy the handle with #media_info_clone() function.
+ *
+ * @param[in] playlist_member_id The ID to member of playlist
+ * @param[in] media The handle to media info
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_playlist_foreach_media_from_db() will invoke this function.
+ * @see media_info_clone()
+ * @see media_playlist_foreach_media_from_db()
+ */
+typedef bool(* playlist_member_cb)(int playlist_member_id, media_info_h media, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
+ * @brief Iterates over a list of tags
+ *
+ * @details This callback is called for every tag in the obtained list of tags.\n
+ *
+ * @remarks To use the @a tag outside this function, copy the handle with #media_tag_clone() function.
+ *
+ * @param[in] tag The handle to media tag
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_tag_foreach_tag_from_db(), media_info_foreach_tag_from_db() will invoke this function.
+ * @see media_tag_clone()
+ * @see media_tag_foreach_tag_from_db()
+ * @see media_info_foreach_tag_from_db()
+ */
+typedef bool (*media_tag_cb)(media_tag_h tag, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
+ * @brief Iterates over bookmark list
+ *
+ * @details This callback is called for every bookmark in obtained list of bookmarks.\n
+ *
+ * @remarks To use the @a bookmark outside this function, copy the handle with #media_bookmark_clone() function.
+ *
+ * @param[in] bookmark The handle to video bookmark
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_bookmark_foreach_bookmark_from_db() will invoke this function.
+ * @see media_bookmark_foreach_bookmark_from_db()
+ */
+typedef bool (*media_bookmark_cb)(media_bookmark_h bookmark, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
+ * @brief Iterates over album list
+ *
+ * @details This callback is called for every album in obtained list of groups.\n
+ *
+ * @remarks To use the @a album outside this function, copy the handle with #media_album_clone() function.
+ *
+ * @param[in] album The handle to media album
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_album_foreach_album_from_db() will invoke this function.
+ * @see media_album_clone()
+ * @see media_album_foreach_album_from_db()
+ */
+typedef bool (*media_album_cb)(media_album_h album, void *user_data);
+
+typedef bool (*media_artist_cb)(const char *artist, void *user_data);
+typedef bool (*media_genre_cb)(const char *genre, void *user_data);
+typedef bool (*media_composer_cb)(const char *composer, void *user_data);
+typedef bool (*media_year_cb)(const char *year, void *user_data);
+
+/**
+ * @ingroup CAPI_CONTENT_MEDIA_GROUP_MODULE
+ * @brief Iterates over media group list
+ *
+ * @details This callback is called for every group in obtained list of groups.\n
+ *
+ * @remarks You should not free group_name returned by this function.
+ *
+ * @param[in] group_name The name of media group
+ * @param[in] user_data The user data passed from the foreach function
+ * @return true to continue with the next iteration of the loop,
+ * @return false to break out of the loop.
+ * @pre media_group_foreach_group_from_db() will invoke this function.
+ * @see media_group_foreach_group_from_db()
+ */
+typedef bool (*media_group_cb)(const char *group_name, void *user_data);
+
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_CONTENT_MEDIA_INFO_MODULE
+ * @{
+ *
+ */
+#define MEDIA_ID "MEDIA_ID" /**< media id */
+#define MEDIA_PATH "MEDIA_PATH" /**< media full path */
+#define MEDIA_DISPLAY_NAME "MEDIA_DISPLAY_NAME" /**< media base name */
+#define MEDIA_TYPE "MEDIA_TYPE" /**< media type. 0-image, 1-video, 2-sound, 3-music, 4-other*/
+#define MEDIA_MIME_TYPE "MEDIA_MIME_TYPE" /**< media mime type */
+#define MEDIA_SIZE "MEDIA_SIZE" /**< media mime size */
+#define MEDIA_ADDED_TIME "MEDIA_ADDED_TIME" /**< media added time */
+#define MEDIA_MODIFIED_TIME "MEDIA_MODIFIED_TIME" /**< media modified time */
+#define MEDIA_THUMBNAIL_PATH "MEDIA_THUMBNAIL_PATH" /**< media thumbnail path */
+#define MEDIA_TITLE "MEDIA_TITLE" /**< media title get from tag or file name */
+#define MEDIA_ALBUM "MEDIA_ALBUM" /**< media album name*/
+#define MEDIA_ARTIST "MEDIA_ARTIST" /**< media artist*/
+#define MEDIA_GENRE "MEDIA_GENRE" /**< media genre*/
+#define MEDIA_COMPOSER "MEDIA_COMPOSER" /**< media composer*/
+#define MEDIA_YEAR "MEDIA_YEAR" /**< media year*/
+#define MEDIA_RECORDED_DATE "MEDIA_RECORDED_DATE" /**< media recorded date*/
+#define MEDIA_COPYRIGHT "MEDIA_COPYRIGHT" /**< media copyright*/
+#define MEDIA_TRACK_NUM "MEDIA_TRACK_NUM" /**< media track number*/
+#define MEDIA_DESCRIPTION "MEDIA_DESCRIPTION" /**< media description*/
+#define MEDIA_BITRATE "MEDIA_BITRATE" /**< media bitrate*/
+#define MEDIA_SAMPLERATE "MEDIA_SAMPLERATE" /**< media sample rate*/
+#define MEDIA_CHANNEL "MEDIA_CHANNEL" /**< media channel*/
+#define MEDIA_DURATION "MEDIA_DURATION" /**< media duration */
+#define MEDIA_LONGITUDE "MEDIA_LONGITUDE" /**< media longitude */
+#define MEDIA_LATITUDE "MEDIA_LATITUDE" /**< media latitude */
+#define MEDIA_ALTITUDE "MEDIA_ALTITUDE" /**< media altitude */
+#define MEDIA_WIDTH "MEDIA_WIDTH" /**< media width*/
+#define MEDIA_HEIGHT "MEDIA_HEIGHT" /**< media height*/
+#define MEDIA_DATETAKEN "MEDIA_DATETAKEN" /**< media datetaken*/
+#define MEDIA_ORIENTATION "MEDIA_ORIENTATION" /**< media orientation*/
+#define MEDIA_PLAYED_COUNT "MEDIA_PLAYED_COUNT" /**< media playedcount*/
+#define MEDIA_LAST_PLAYED_TIME "MEDIA_LAST_PLAYED_TIME" /**< media last played time*/
+#define MEDIA_LAST_PLAYED_POSITION "MEDIA_LAST_PLAYED_POSITION" /**< media last played position of file*/
+#define MEDIA_RATING "MEDIA_RATING" /**< media rating*/
+#define MEDIA_FAVOURITE "MEDIA_FAVORITE" /**< 0-not favourite, 1-favourite*/
+#define MEDIA_AUTHOR "MEDIA_AUTHOR" /**< media authore*/
+#define MEDIA_PROVIDER "MEDIA_PROVIDER" /**< media provider*/
+#define MEDIA_CONTENT_NAME "MEDIA_CONTENT_NAME" /**< media content name*/
+#define MEDIA_CATEGORY "MEDIA_CATEGORY" /**< media category*/
+#define MEDIA_LOCATION_TAG "MEDIA_LOCATION_TAG" /**< media location tag*/
+#define MEDIA_AGE_RATING "MEDIA_AGE_RATING" /**< media age rating*/
+#define MEDIA_KEYWORD "MEDIA_KEYWORD" /**< media keyword*/
+#define MEDIA_IS_DRM "MEDIA_IS_DRM" /**< is drm. 0-not drm, 1-drm*/
+#define MEDIA_STORAGE_TYPE "MEDIA_STORAGE_TYPE" /**< media storage. 0-internal storage, 1-external storage*/
+/**
+ * @}
+ */
+
+
+/**
+
+ * @addtogroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
+ * @{
+ */
+#define FOLDER_ID "FOLDER_ID" /**< folder id */
+#define FOLDER_PATH "FOLDER_PATH" /**< folder full path */
+#define FOLDER_NAME "FOLDER_NAME" /**< folder base name */
+#define FOLDER_MODIFIED_TIME "FOLDER_MODIFIED_TIME" /**< folder modified time */
+#define FOLDER_STORAGE_TYPE "FOLDER_STORAGE_TYPE" /**< folder storage. 0-internal storage, 1-external storage*/
+
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
+ * @{
+ */
+#define PLAYLIST_NAME "PLAYLIST_NAME" /**< playlist name */
+#define PLAYLIST_MEMBER_ORDER "PLAYLIST_MEMBER_ORDER" /**< playlist name */
+#define PLAYLIST_MEDIA_COUNT "PLAYLIST_MEDIA_COUNT" /**< media count in playlist view */
+
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_CONTENT_MEDIA_TAG_MODULE
+ * @{
+ */
+#define TAG_NAME "TAG_NAME" /**< tag name */
+#define TAG_MEDIA_COUNT "TAG_MEDIA_COUNT" /**< media count in tag view */
+
+/**
+ * @}
+ */
+
+/**
+ * @addtogroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
+ * @{
+ */
+#define BOOKMARK_MARKED_TIME "BOOKMARK_MARKED_TIME" /**< bookmark marked time */
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+
+#endif /*__TIZEN_MEDIA_CONTENT_TYPE_H__*/