Tizen 2.0 beta
[framework/api/media-content.git] / include / media_content_type.h
index 3907703..852b13e 100755 (executable)
-/*\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__*/