Remove unused API & update description 75/34475/4 tizen_3.0.2014.q4_common tizen_3.0.2015.q1_common accepted/tizen/common/20150129.111419 accepted/tizen/ivi/20150130.061549 accepted/tizen/mobile/20150130.001237 accepted/tizen/tv/20150131.031314 accepted/tizen/wearable/20150131.031735 submit/tizen/20150129.084128 submit/tizen_tv/20150130.000000 submit/tizen_tv/20150130.050505
authorMin Je Ahn <minje.ahn@samsung.com>
Wed, 28 Jan 2015 02:25:39 +0000 (11:25 +0900)
committerMin Je Ahn <minje.ahn@samsung.com>
Thu, 29 Jan 2015 04:29:26 +0000 (13:29 +0900)
Change-Id: Ie561e904d04700034d7a8e77607ddd569c7fd827

19 files changed:
include/media_audio.h
include/media_bookmark.h
include/media_content.h
include/media_content_type.h
include/media_filter.h
include/media_folder.h
include/media_group.h
include/media_image.h
include/media_info.h
include/media_info_private.h
include/media_playlist.h
include/media_tag.h
include/media_video.h
src/media_audio.c
src/media_bookmark.c
src/media_content.c
src/media_image.c
src/media_video.c
test/media-content_test.c

index 54ba328..866559a 100755 (executable)
@@ -26,317 +26,438 @@ extern "C" {
 #endif
 
 /**
+ * @file media_audio.h
+ * @brief This file contains the audio metadata API and related structure and enumeration. \n
+ *        Description of the audio content involves: album, artist, album_artist, author, genre and description tags. \n
+ *        Parameters of the recording are also supported such as format, bitrate, duration, size etc.
+ */
+
+/**
  * @addtogroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE
  * @{
- *
- * @file audio_meta.h
- * @brief This file contains the audio metadata API and related structure and enumeration. \n
- *        Description of the audio content involves: album, artist, author, genre and description tags. \n
- *        Parameters of the recording are also supported, as: format, bitrate, duration, size etc.
  */
 
 
 /**
- * @brief Destroys audio metadata.
+ * @brief Destroys the audio metadata.
+ * @since_tizen 2.3
+ *
+ * @param[in] audio The audio metadata handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata.
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre Get copy of audio metadata handle handle by calling audio_meta_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get a copy of audio metadata handle handle by calling audio_meta_clone().
+ *
  * @see audio_meta_clone()
  */
 int audio_meta_destroy(audio_meta_h audio);
 
 /**
- * @brief Clones audio metadata.
- * @details Function copies the audio metadata handle handle from source to destination.
+ * @brief Clones the audio metadata.
+ * @details This function copies the audio metadata handle from source to destination.
  *
- * @remark The destination handle must be released with audio_meta_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param [out] dst A destination handle to audio metadata
- * @param [in] src The source handle to audio metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks The destination handle must be released using audio_meta_destroy().
+ *
+ * @param[out] dst  The destination handle to audio metadata
+ * @param[in]  src  The source handle to the audio metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see audio_meta_destroy()
  */
 int audio_meta_clone(audio_meta_h *dst, audio_meta_h src);
 
 /**
- * @brief Gets id of audio of given audio metadata.
+ * @brief Gets the audio ID of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a media_id using free().
  *
- * @remarks @a audio id must be released with free() by you.
+ * @param[in]  audio    The audio metadata handle
+ * @param[out] media_id The ID of the audio
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] media_id The id of the audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_media_id(audio_meta_h audio, char **media_id);
 
 /**
- * @brief Gets title of audio of given audio metadata.
+ * @brief Gets the album name of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a audio title must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] title The title of the audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- */
-int audio_meta_get_title(audio_meta_h audio, char **title);
-
-/**
- * @brief Gets name of album of given audio metadata.\n
- * If the value is an empty string, the method returns "Unknown".
+ * @remarks You must release @a album_name using free().
+ *
+ * @param[in]  audio      The audio metadata handle
+ * @param[out] album_name The name of the album
  *
- * @remarks @a album_name must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] album_name The name of the album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_album(audio_meta_h audio, char **album_name);
 
 /**
- * @brief Gets name of artist of given audio metadata.\n
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the artist name of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a artist_name using free().
+ *
+ * @param[in]  audio       The audio metadata handle
+ * @param[out] artist_name The name of the artist
  *
- * @remarks @a artist_name must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] artist_name The name of the artist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_artist(audio_meta_h audio, char **artist_name);
 
+
 /**
- * @brief Gets name of genre of given audio metadata.\n
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the genre name of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a genre_name using free().
+ *
+ * @param[in]  audio      The audio metadata handle
+ * @param[out] genre_name The name of the genre
  *
- * @remarks @a genre_name must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] genre_name The name of the genre
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_genre(audio_meta_h audio, char **genre_name);
 
 /**
- * @brief Gets name of composer of given audio metadata.\n
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the composer name of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a author_name must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] author_name The name of the author of audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a author_name using free().
+ *
+ * @param[in]  audio       The audio metadata handle
+ * @param[out] composer_name The name of the author of the audio
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_composer(audio_meta_h audio, char **composer_name);
 
 /**
- * @brief Gets year of given audio metadata.\n
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the year of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a year using free().
  *
- * @remarks @a year must be released with free() by you.
+ * @param[in]  audio The audio metadata handle
+ * @param[out] year  The year of the audio file
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] year The year of the audio file
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_year(audio_meta_h audio, char **year);
 
 /**
- * @brief Gets recorded date of given audio metadata.
+ * @brief Gets the recorded date of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a recorded_date using free().
  *
- * @remarks @a recorded date must be released with free() by you.
+ * @param[in]  audio         The audio metadata handle
+ * @param[out] recorded_date The recorded date of the audio file
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] recorded_date The recorded date of the audio file
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_recorded_date(audio_meta_h audio, char **recorded_date);
 
 /**
- * @brief Gets copyright notice of given audio metadata.
+ * @brief Gets the copyright notice of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a copyright using free().
  *
- * @remarks @a copyright must be released with free() by you.
+ * @param[in]  audio     The audio metadata handle
+ * @param[out] copyright The audio copyright notice
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] copyright The audio copyright notice
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_copyright(audio_meta_h audio, char **copyright);
 
 /**
- * @brief Gets track number of given audio metadata. \n
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the track number of the given audio metadata.
+ * @details If the value is an empty string, the method returns "Unknown".
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio     The audio metadata handle
+ * @param[out] track_num The audio track number
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] track_num The audio track number
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_track_num(audio_meta_h audio, char **track_num);
 
 /**
- * @brief Gets bitrate of given audio metadata in bitrate per second.
+ * @brief Gets the bitrate of the given audio metadata in bitrate per second.
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio    The audio metadata handle
+ * @param[out] bit_rate The audio bitrate in bit per second [bps]
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] bit_rate The audio bitrate in bit per second [bps]
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_bit_rate(audio_meta_h audio, int *bit_rate);
 
+
 /**
- * @brief Gets sample rate of given audio metadata.
+ * @brief Gets the sample rate of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio       The audio metadata handle
+ * @param[out] sample_rate The audio sample rate[hz]
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] sample_rate The audio sample rate[hz]
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_sample_rate(audio_meta_h audio, int *sample_rate);
 
 /**
- * @brief Gets channel of given audio metadata.
+ * @brief Gets the channel of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio   The audio metadata handle
+ * @param[out] channel The channel of the audio
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] channel The channel of audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_channel(audio_meta_h audio, int *channel);
 
 /**
- * @brief Gets track duration of given audio metadata.
+ * @brief Gets the track duration of the given audio metadata.
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio    The audio metadata handle
+ * @param[out] duration The audio file duration
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] duration The audio file duration
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_duration(audio_meta_h audio, int *duration);
 
 /**
- * @brief Gets number which represents how many times given audio has been played.
+ * @brief Gets the number of times the given audio has been played.
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio        The audio metadata handle
+ * @param[out] played_count The counter of the audio played
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [out] count_played The counter of audio played
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_played_count(audio_meta_h audio, int *played_count);
 
 /**
- * @brief Gets the audio's played time parameter.
- * @details Function returns audio's elapsed playback time parameter as period
- * starting from the beginning of the track.
- *
- * @param [in] audio The handle to audio metadata
- * @param [out] played_time The elapsed time of the audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Gets the played time parameter of an audio.
+ * @details This function returns audio's elapsed playback time parameter as a period
+ *          starting from the beginning of the track.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio       The audio metadata handle
+ * @param[out] played_time The elapsed time of the audio
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_played_time(audio_meta_h audio, time_t *played_time);
 
 /**
- * @brief Gets the audio's played position parameter.
- * @details Function returns audio's elapsed playback position parameter as period
- * starting from the beginning of the track.
- *
- * @param [in] audio The handle to audio metadata
- * @param [out] played_position The elapsed time of the audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Gets the played position parameter of an audio.
+ * @details This function returns audio's elapsed playback position parameter as a period
+ *          starting from the beginning of the track.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in]  audio           The audio metadata handle
+ * @param[out] played_position The elapsed time of the audio
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int audio_meta_get_played_position(audio_meta_h audio, int *played_position);
 
 /**
- * @brief Sets the played count to audio meta handle.
+ * @brief Sets the played count to an audio meta handle.
+ * @since_tizen 2.3
+ *
+ * @param[in] audio        The audio metadata handle
+ * @param[in] played_count The played count of the audio
  *
- * @param [in] audio The handle to audio metadata
- * @param [in] played_count The played count of audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post audio_meta_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post audio_meta_update_to_db().
  */
 int audio_meta_set_played_count(audio_meta_h audio, int played_count);
 
 /**
- * @brief Sets the played time to audio meta handle.
+ * @brief Sets the played time to an audio meta handle.
+ * @since_tizen 2.3
+ *
+ * @param[in] audio       The audio metadata handle
+ * @param[in] played_time The played time of the audio
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [in] played_time The played time of audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post audio_meta_update_to_db() 
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post audio_meta_update_to_db().
  */
 int audio_meta_set_played_time(audio_meta_h audio, time_t played_time);
 
 /**
- * @brief Sets the played position to audio meta handle.
+ * @brief Sets the played position to an audio meta handle.
+ * @since_tizen 2.3
+ *
+ * @param[in] audio           The audio metadata handle
+ * @param[in] played_position The played position of the audio
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] audio The handle to audio metadata
- * @param [in] played_position The played position of audio
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post audio_meta_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post audio_meta_update_to_db().
  */
 int audio_meta_set_played_position(audio_meta_h audio, int played_position);
 
 /**
- * @brief Updates audio metadata which is modified attributes to the media database.
+ * @brief Updates an audio metadata with modified attributes in the media database.
+ * @details The function updates the given audio meta in the media database.
+ *
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
  *
- * @details The function updates the given audio meta in the media database.\n
- * The function should be called after any change in the attributes, to be updated to the media database.\n
- * For example, after using audio_meta_set_played_count() for changing the count of the played,
- * audio_meta_update_to_db() function should be called so as to update the given the attibutes in the media database.
+ * @remarks The function should be called after any change in the attributes, to update the media database.
+ *          For example, after using audio_meta_set_played_count() for changing the count of the played, the
+ *          audio_meta_update_to_db() function should be called to update the given attributes in the media database. \n
+ *          Do not call this function in callback function of foreach function like media_info_foreach_media_from_db().
  *
- * @param [in] audio The handle to audio metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] audio The audio metadata handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see audio_meta_set_played_count()
  * @see audio_meta_set_played_time()
index ce974c2..9223401 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
+/**
+ * @file media_bookmark.h
+ * @brief This file contains API on main functional operations with bookmarks that are related to media resources in the media database. \n
+ *        Operations include: inserting a new bookmark in media to the media database, removing bookmark from database, \n
+ *        getting number of bookmarks, cloning and destroying bookmark, getting bookmark`s ID, time marked parameter and thumbnail.
+ */
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
@@ -32,118 +38,174 @@ extern "C" {
  */
 
 /**
- * @brief Inserts a new bookmark in media on specified time offset to the media database.
+ * @brief Inserts a new bookmark in media on the specified time offset to the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] media_id       The media ID
+ * @param[in] time           The bookmark time offset (in seconds)
+ * @param[in] thumbnail_path The thumbnail path of video bookmark\ n
+ *                           If the media type is audio, then thumbnail is null.
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] media_id The id of media
- * @param [in] time The bookmark time offset(in seconds)
- * @param [in] thumbnail_path The thumbnail path of video bookmark. If the media type is audio, then thumbnail is null.
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_bookmark_delete_from_db()
- *
  */
 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path);
 
 /**
- * @brief Removes media bookmark from the media database.
+ * @brief Removes a media bookmark from the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] bookmark_id The ID of media bookmark
  *
- * @param [in] bookmark The handle to media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_bookmark_insert_to_db()
- *
  */
 int media_bookmark_delete_from_db(int bookmark_id);
 
 /**
- * @brief Gets number of bookmark with optional filter from media database.
+ * @brief Gets the number of bookmarks with an optional filter from the media database.
+ * @since_tizen 2.3
+ *
+ * @param[in]  filter         The handle to the media filter
+ * @param[out] bookmark_count The count of the media bookmark
  *
- * @param [in] filter  The handle to media filter
- * @param [out] bookmark_count The count of media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_bookmark_get_bookmark_count_from_db(filter_h filter, int *bookmark_count);
 
 /**
- * @brief Clones media bookmark.
+ * @brief Clones media bookmark.
  * @details This function copies the media bookmark handle from a source to destination. There is no media_bookmark_create() function.
- * The media_bookmark_h is created internally and available through media bookmark foreach function such as media_info_foreach_bookmark_from_db().
- * To use this handle outside of these foreach functions, use this function.
+ *          The media_bookmark_h is created internally and available through media bookmark foreach function such as media_info_foreach_bookmark_from_db().
+ *          To use this handle outside of these foreach functions, use this function.
+ *
+ * @since_tizen 2.3
  *
- * @remark The destination handle must be released with media_bookmark_destroy() by you.
+ * @remarks The destination handle must be released using media_bookmark_destroy().
  *
- * @param [out] dst A destination handle to media bookmark
- * @param [in] src The source handle to media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[out] dst The destination handle to media bookmark
+ * @param[in]  src The source handle to media bookmark
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_bookmark_destroy()
  * @see media_info_foreach_bookmark_from_db()
- *
  */
 int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src);
 
 /**
- * @brief Destroys media bookmark.
- * @details Function frees all resources related to bookmark handle. This handle
- * no longer can be used to perform any operation. A new handle has to
- * be created before the next use.
- *
- * @param [in] bookmark The handle to media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Destroys a media bookmark.
+ * @details This function frees all the resources related to the bookmark handle. This handle
+ *          no longer can be used to perform any operation. A new handle has to
+ *          be created before the next use.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] bookmark The handle to media bookmark
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre Get copy of bookmark handle by calling media_bookmark_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get copy of bookmark handle by calling media_bookmark_clone().
+ *
  * @see media_bookmark_clone()
  */
 int media_bookmark_destroy(media_bookmark_h bookmark);
 
 /**
- * @brief Gets bookmark's id.
+ * @brief Gets the bookmark ID.
+ * @since_tizen 2.3
+ *
+ * @param[in]  bookmark    The handle to media bookmark
+ * @param[out] bookmark_id The media bookmark ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] bookmark The handle to media bookmark
- * @param [out] bookmark_id The id of media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_bookmark_get_bookmark_id(media_bookmark_h bookmark, int *bookmark_id);
 
 /**
- * @brief Gets bookmark's time marked parameter.
- * @details Function returns time offset in milliseconds from beginning of the movie on which bookmark
- * was placed.
- *
- * @param [in] bookmark The handle to media bookmark
- * @param [out] marked_time The bookmark time offset(in milliseconds)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Gets the bookmark time marked parameter.
+ * @details This function returns time offset in milliseconds from beginning of the movie on which bookmark
+ *          was placed.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in]  bookmark    The handle to media bookmark
+ * @param[out] marked_time The bookmark time offset (in milliseconds)
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_bookmark_get_marked_time(media_bookmark_h bookmark, time_t *marked_time);
 
 /**
- * @brief Gets the media bookmark's thumbnail.
+ * @brief Gets the media bookmark thumbnail.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a path using free().
+ *
+ * @param[in]  bookmark The handle to media bookmark
+ * @param[out] path     The thumbnail path of media bookmark
  *
- * @remarks @a path must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] bookmark The handle to media bookmark
- * @param [out] path The thumbnail path of media bookmark
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **path);
 
index 5cc0c2d..f441ac8 100755 (executable)
 #include <media_playlist.h>
 #include <media_bookmark.h>
 
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
 
 /**
+ * @file media_content.h
+ * @brief This file contains API providing functions for media content in DB. \n
+ *        Operations include connect and disconnect the media content service, scanning media file and folder with subfolders, \n
+ *        subscribing and unsubscribing notifications of media DB change.
+ */
+
+/**
  * @addtogroup CAPI_MEDIA_CONTENT_MODULE
  * @{
  */
 
-
 /**
  * @brief Connects to the media content service.
  * @details Any media content related function call should be invoked after this function call.
  *
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE      Successful
  * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @post media_content_disconnect()
- * @see media_content_disconnect()
  *
+ * @see media_content_disconnect()
  */
 int media_content_connect(void);
 
 /**
  * @brief Disconnects from the media content service.
  * @details This function closes connection to the media content service. Any further media content related operation
- * cannot be performed after this function is called.
+ *          cannot be performed after this function is called.
  *
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE      Successful
  * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre media_content_connect()
+ *
  * @see media_content_connect()
  *
  */
@@ -69,57 +87,106 @@ int media_content_disconnect(void);
 
 /**
  * @brief Requests to scan a media file.
- * @details This function requests to scan a media file to media server.
+ * @details This function requests to scan a media file to the media server.
+ *          If media file is not registered to DB yet, that media file information will be added to the media DB. If it is already registered to the DB, then this tries to refresh information.
+ *          If requested file does not exist on file system, information of the media file will be removed from the media DB.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using  this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you must add all privilege.
+ *
  * @param[in] path The file path
- * @return 0 on success, otherwise a negative error value.
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @pre This function requires opened connection to content service by media_content_connect().
  */
 int media_content_scan_file(const char *path);
 
-
 /**
  * @brief Requests to scan a media folder, asynchronously.
- * @details This function requests to scan a media folder to media server with given completed callback fucntion.
- * #media_scan_completed_cb() function will be called when the scanning is finished.
- * The sub folders are also scanned, if there are sub folder in that folder. \n
- * If you want that the any folders are not scanned, you have to create a blank file ".scan_ignore" in that folder.
- * @param[in] path The folder path
- * @param[in] is_recursive /@a true if scan recursively subdirectories,
- *                    /@a false if scan only current directory,
- * @param[in] callback The callback to invoke when the scanning is finished
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
+ * @details This function requests to scan a media folder to the media server with given completed callback function.
+ *          media_scan_completed_cb() function will be called when the scanning is finished.
+ *          The sub folders are also scanned, if there are sub folders in that folder. \n
+ *          If any folder must not be scanned, a blank file ".scan_ignore" has to be created in that folder.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using  this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you must add all privilege.
+ *
+ * @param[in] path         The folder path
+ * @param[in] is_recursive Set @c true to scan recursively subdirectories,
+ *                         otherwise @c false to scan only the current directory
+ * @param[in] callback     The callback to be invoked when the scanning is finished
+ * @param[in] user_data    The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @see media_scan_completed_cb()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see media_scan_completed_cb()
  */
 int media_content_scan_folder(const char *path, bool is_recursive, media_scan_completed_cb callback, void *user_data);
 
 /**
- * @brief Subscribe notifications of media db change.
- * @details This function subscribes notifications of media db change, which are published by media server or other apps.
- * #media_content_db_update_cb() function will be called when notification of media db change is subscribed.
- * @param[in] callback The callback to invoke when the scanning is finished
+ * @brief Subscribes notifications of the media DB change.
+ * @details This function subscribes notifications of the media DB change which are published by the media server or other apps.
+ *          media_content_db_update_cb() function will be called when notification of the media DB change is subscribed.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] callback  The callback to be invoked when the scanning is finished
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_content_db_update_cb()
  * @see media_content_unset_db_updated_cb()
- *
  */
 int media_content_set_db_updated_cb(media_content_db_update_cb callback, void *user_data);
 
 /**
-
- * @brief Unsubscribe notifications of media db change.
- * @details This function unsubscribes notifications of media db change, which are published by media server or other apps.
- * @return 0 on success, otherwise a negative error value.
+ * @brief Unsubscribes notifications of the media DB change.
+ * @details This function unsubscribes notifications of the media DB change which are published by the media server or other apps.
+ *
+ * @since_tizen 2.3
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre media_content_set_db_updated_cb()
- * @see media_content_set_db_updated_cb()
  *
+ * @see media_content_set_db_updated_cb()
  */
 int media_content_unset_db_updated_cb(void);
 
index c2cb31d..4c238dd 100755 (executable)
@@ -31,204 +31,212 @@ extern "C" {
 #endif
 
 /**
+ * @file media_content_type.h
+ * @brief This file contains API related to media-content enumerations for media data types, groups, orientations, \n
+ *        classes of errors and definitions of media-data. \n
+ *        Listed APIs are called when iterating over lists of album, group, bookmark and other media,  \n
+ *        when media items and burst shot are inserted completely and when notification of media DB change is subscribed.
+ */
+
+/**
 * @addtogroup CAPI_MEDIA_CONTENT_MODULE
-* @{
-*/
+ * @{
+ */
 
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief The enumerations of the media file format.
+ * @brief Enumeration for 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_IMAGE   = 0,  /**<The type of an image */
+    MEDIA_CONTENT_TYPE_VIDEO   = 1,  /**<The type of a 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.
+ * @brief Enumeration for the storage type.
+ * @details 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_INTERNAL  = 0,  /**< The device's internal storage */
+    MEDIA_CONTENT_STORAGE_EXTERNAL  = 1,  /**< The device's external storage */
 } media_content_storage_e;
 
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief The enumerations of media content db update item
+ * @brief Enumeration for media content DB update items.
  */
 typedef enum {
-       MEDIA_ITEM_FILE                 = 0,                            /**< File type ,an item updated to db */
-       MEDIA_ITEM_DIRECTORY    = 1,                            /**< Directory type, an item updated to db */
+    MEDIA_ITEM_FILE       = 0,              /**< File type, an item updated to DB */
+    MEDIA_ITEM_DIRECTORY  = 1,              /**< Directory type, an item updated to DB */
 } media_content_db_update_item_type_e;
 
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief The enumerations of media content db update type
+ * @brief Enumeration for media content DB update types.
  */
 typedef enum {
-       MEDIA_CONTENT_INSERT    = 0,                            /**< Insert, the type of DB update */
-       MEDIA_CONTENT_DELETE    = 1,                            /**< Delete, The type of DB update */
-       MEDIA_CONTENT_UPDATE    = 2,                            /**< Update, The type of DB update */
+    MEDIA_CONTENT_INSERT  = 0,              /**< Insert, the type of DB update */
+    MEDIA_CONTENT_DELETE  = 1,              /**< Delete, The type of DB update */
+    MEDIA_CONTENT_UPDATE  = 2,              /**< Update, The type of DB update */
 } media_content_db_update_type_e;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief The type of orientation.
+ * @brief Enumeration for orientation types.
  */
 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_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.
+ * @brief Enumeration for ordering.
  */
 typedef enum
 {
-       MEDIA_CONTENT_ORDER_ASC         = 0,            /**< ascending order*/
-       MEDIA_CONTENT_ORDER_DESC        = 1,            /**< descending order*/
+    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.
+ * @brief Enumeration for 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_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;
 
+#define MEDIA_CONTENT_ERROR_CLASS                              TIZEN_ERROR_MEDIA_CONTENT
+
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief The enumerations of media content error
+ * @brief Enumeration for a media content error.
  */
-typedef enum
+ 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_INVALID_OPERATION           = TIZEN_ERROR_INVALID_OPERATION,        /**< Invalid Operation */
-       MEDIA_CONTENT_FILE_NO_SPACE_ON_DEVICE           = TIZEN_ERROR_FILE_NO_SPACE_ON_DEVICE, /**< No space left on device */
-       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_NETWORK                                     = TIZEN_ERROR_CONTENT_CLASS | 0x03,     /**< Network Fail */
-       MEDIA_CONTENT_ERROR_UNSUPPORTED_CONTENT         = TIZEN_ERROR_CONTENT_CLASS | 0x04,     /**< Unsupported Content */
+    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_INVALID_OPERATION       = TIZEN_ERROR_INVALID_OPERATION,       /**< Invalid Operation */
+    MEDIA_CONTENT_FILE_NO_SPACE_ON_DEVICE       = TIZEN_ERROR_FILE_NO_SPACE_ON_DEVICE, /**< No space left on device */
+    MEDIA_CONTENT_ERROR_PERMISSION_DENIED                = TIZEN_ERROR_PERMISSION_DENIED,                /**< Permission denied */
+    MEDIA_CONTENT_ERROR_DB_FAILED               = MEDIA_CONTENT_ERROR_CLASS | 0x01,    /**< DB operation failed */
+    MEDIA_CONTENT_ERROR_DB_BUSY                 = MEDIA_CONTENT_ERROR_CLASS | 0x02,    /**< DB operation BUSY */
+    MEDIA_CONTENT_ERROR_NETWORK                 = MEDIA_CONTENT_ERROR_CLASS | 0x03,    /**< Network Fail */
+    MEDIA_CONTENT_ERROR_UNSUPPORTED_CONTENT     = MEDIA_CONTENT_ERROR_CLASS | 0x04,    /**< Unsupported Content */
 } media_content_error_e;
 
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief The enumerations of media group
+ * @brief Enumeration for a 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_LATITUDE,
-       MEDIA_CONTENT_GROUP_ALTITUDE,
-       MEDIA_CONTENT_GROUP_BURST_IMAGE,
-       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_CONTENT_GROUP_DISPLAY_NAME = 0,    /**< Media group ID for display name */
+    MEDIA_CONTENT_GROUP_TYPE,                /**< Media group ID for a media type */
+    MEDIA_CONTENT_GROUP_MIME_TYPE,           /**< Media group ID for a mime type */
+    MEDIA_CONTENT_GROUP_SIZE,                /**< Media group ID for content size */
+    MEDIA_CONTENT_GROUP_ADDED_TIME,          /**< Media group ID for the added time */
+    MEDIA_CONTENT_GROUP_MODIFIED_TIME,       /**< Media group ID for the modified time */
+    MEDIA_CONTENT_GROUP_TITLE,               /**< Media group ID for a content title */
+    MEDIA_CONTENT_GROUP_ARTIST,              /**< Media group ID for an artist*/
+    MEDIA_CONTENT_GROUP_ALBUM_ARTIST,        /**< Media group ID for an album artist */
+    MEDIA_CONTENT_GROUP_GENRE,               /**< Media group ID for a genre*/
+    MEDIA_CONTENT_GROUP_COMPOSER,            /**< Media group ID for a composer*/
+    MEDIA_CONTENT_GROUP_YEAR,                /**< Media group ID for a year*/
+    MEDIA_CONTENT_GROUP_RECORDED_DATE,       /**< Media group ID for the recorded date*/
+    MEDIA_CONTENT_GROUP_COPYRIGHT,           /**< Media group ID for the copyright*/
+    MEDIA_CONTENT_GROUP_TRACK_NUM,           /**< Media group ID for a track number*/
+    MEDIA_CONTENT_GROUP_DESCRIPTION,         /**< Media group ID for a description */
+    MEDIA_CONTENT_GROUP_LONGITUDE,           /**< Media group ID for the longitude*/
+    MEDIA_CONTENT_GROUP_LATITUDE,            /**< Media group ID for the latitude*/
+    MEDIA_CONTENT_GROUP_ALTITUDE,            /**< Media group ID for the altitude*/
+    MEDIA_CONTENT_GROUP_BURST_IMAGE,         /**< Media group ID for the burst shot*/
+    MEDIA_CONTENT_GROUP_RATING,              /**< Media group ID for a rating*/
+    MEDIA_CONTENT_GROUP_AUTHOR,              /**< Media group ID for an author*/
+    MEDIA_CONTENT_GROUP_PROVIDER,            /**< Media group ID for a provider*/
+    MEDIA_CONTENT_GROUP_CONTENT_NAME,        /**< Media group ID for the content name*/
+    MEDIA_CONTENT_GROUP_CATEGORY,            /**< Media group ID for a category*/
+    MEDIA_CONTENT_GROUP_LOCATION_TAG,        /**< Media group ID for a location tag*/
+    MEDIA_CONTENT_GROUP_AGE_RATING,          /**< Media group ID for an age rating*/
+    MEDIA_CONTENT_GROUP_KEYWORD,             /**< Media group ID for a keyword*/
+    MEDIA_CONTENT_GROUP_WEATHER,             /**< Media group ID for the weather*/
+    MEDIA_CONTENT_GROUP_MAX                  /**< Max count of the media group ID */
 } media_group_e;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief The handle to media info.
+ * @brief The structure type for the Media info handle.
  */
 typedef struct media_info_s *media_info_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
- * @brief The handle to media folder.
+ * @brief The structure type for the Media folder handle.
  */
 typedef struct media_folder_s *media_folder_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
- * @brief The handle to media playlist.
+ * @brief The structure type for the Media playlist handle.
  */
 typedef struct media_playlist_s *media_playlist_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
- * @brief The handle to media tag.
+ * @brief The structure type for the Media tag handle.
  */
 typedef struct media_tag_s *media_tag_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
- * @brief The handle to media bookmark.
+ * @brief The structure type for the Media bookmark handle.
  */
 typedef struct media_bookmark_s *media_bookmark_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
- * @brief The handle to media album.
+ * @brief The structure type for the Media album handle.
  */
 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.
+ * @brief The structure type for the Image metadata handle.
  */
 typedef struct image_meta_s *image_meta_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE
- * @brief The handle to video metadata.
+ * @brief The structure type for the Video metadata handle.
  */
 typedef struct video_meta_s *video_meta_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE
- * @brief The handle to audio metadata.
+ * @brief The structure type for the Audio metadata handle.
  */
 typedef struct audio_meta_s *audio_meta_h;
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_FILTER_MODULE
- * @brief The handle to media filter.
+ * @brief The structure type for the Media filter handle.
  */
 typedef struct filter_s *filter_h;
 
@@ -236,9 +244,11 @@ typedef struct filter_s *filter_h;
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
  * @brief Called when the media scanning is finished.
  *
- * @param[in] error The error code
+ * @param[in] error     The error code
  * @param[in] user_data The user data passed from the foreach function
- * @pre media_content_scan()
+ *
+ * @pre media_content_scan().
+ *
  * @see media_content_scan()
  *
  */
@@ -246,47 +256,50 @@ typedef void (*media_scan_completed_cb)(media_content_error_e error, void * user
 
 /**
  * @ingroup CAPI_MEDIA_CONTENT_MODULE
- * @brief Called when notification of media db change is subscribed.
- *
- * @param[in] error The error code
- * @param[in] pid pid which publish notification
- * @param[in] update_item Update item of notification
- * @param[in] update_type Update type of notification
- * @param[in] media_type The type of media content(#media_content_type_e)
- * @param[in] uuid UUID of media or directory, which is updated
- * @param[in] path The path of media or directory
- * @param[in] mime_type The mime type of media info
- * @param[in] user_data The user data passed from the foreach function
- * @pre media_content_db_update_subscribe()
+ * @brief Called when the notification of the media DB change is subscribed.
+ *
+ * @param[in] error       The error code
+ * @param[in] pid         The PID which publishes notification
+ * @param[in] update_item The update item of notification
+ * @param[in] update_type The update type of notification
+ * @param[in] media_type  The type of the media content (#media_content_type_e)
+ * @param[in] uuid        The UUID of media or directory, which is updated
+ * @param[in] path        The path of the media or directory
+ * @param[in] mime_type   The mime type of the media info
+ * @param[in] user_data   The user data passed from the foreach function
+ *
+ * @pre media_content_db_update_subscribe().
  * @see media_content_db_update_subscribe()
- *
  */
 typedef void (*media_content_db_update_cb)(
-                                                                       media_content_error_e error,
-                                                                       int pid,
-                                                                       media_content_db_update_item_type_e update_item,
-                                                                       media_content_db_update_type_e update_type,
-                                                                       media_content_type_e media_type,
-                                                                       char *uuid,
-                                                                       char *path,
-                                                                       char *mime_type,
-                                                                       void *user_data);
+                                    media_content_error_e error,
+                                    int pid,
+                                    media_content_db_update_item_type_e update_item,
+                                    media_content_db_update_type_e update_type,
+                                    media_content_type_e media_type,
+                                    char *uuid,
+                                    char *path,
+                                    char *mime_type,
+                                    void *user_data);
 
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief Iterates over a list of media info.
+ * @brief Called for every available media info.
  *
- * @details This callback is called for every available media info.\n
+ * @details Iterates over a list of media info.
  *
- * @remarks To use the @a media outside this function, copy the handle with #media_info_clone() function.
+ * @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] media     The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c 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_info_foreach_media_from_db(), media_folder_foreach_media_from_db() will invoke this function.
+ *      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()
@@ -296,40 +309,30 @@ typedef void (*media_content_db_update_cb)(
  */
 typedef bool (*media_info_cb)(media_info_h media, void *user_data);
 
-/**
- * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief Called when batch of media items is being inserted to media database.
- *
- * @param[in] error The error code
- * @param[in] current The current count which is inserted
- * @param[in] total The total count which will be inserted
- * @pre media_info_insert_batch_to_db()
- * @see media_info_insert_batch_to_db()
- *
- */
-typedef void (*media_insert_progress_cb)(media_content_error_e error, unsigned int current, unsigned int total, void *user_data);
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief Called when media items is inserted completely.
+ * @brief Called when media items are inserted completely.
  *
- *
- * @param[in] media The handle to media info
+ * @param[in] media     The handle to the media info
  * @param[in] user_data The user data passed from the foreach function
+ *
  * @pre media_info_insert_batch_to_db()
- * @see media_info_insert_batch_to_db()
  *
+ * @see media_info_insert_batch_to_db()
  */
 typedef void (*media_insert_completed_cb)(media_content_error_e error, void * user_data);
 
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief Called when burst shot is inserted completely.
+ * @brief Called when the burst shot is inserted completely.
  *
- * @param[in] media The handle to media info
+ * @param[in] media     The handle to the media info
  * @param[in] user_data The user data passed from the foreach function
+ *
  * @pre media_info_insert_burst_shot_to_db()
+ *
  * @see media_info_insert_burst_shot_to_db()
  *
  */
@@ -338,14 +341,16 @@ typedef void (*media_insert_burst_shot_completed_cb)(media_content_error_e error
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
- * @brief Creates a thumbnail image.
+ * @brief Called when creating a thumbnail image.
  *
- * @details This callback is called for completion of generating the thumbnail image.\n
+ * @details This callback is called for completion of generating the thumbnail image.
  *
- * @param[in] error The Error code
- * @param[in] path The Path of thumbnail which is generated
+ * @param[in] error     The error code
+ * @param[in] path      The path of the thumbnail which is generated
  * @param[in] user_data The user data passed from the foreach function
+ *
  * @pre media_info_create_thumbnail()
+ *
  * @see media_info_create_thumbnail()
  */
 typedef void (*media_thumbnail_completed_cb)(media_content_error_e error, const char *path, void *user_data);
@@ -353,16 +358,18 @@ typedef void (*media_thumbnail_completed_cb)(media_content_error_e error, const
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
- * @brief Iterates over a list of folders.
+ * @brief Called for every available media folder.
  *
- * @details This callback is called for every available media folder.\n
+ * @details Iterates over a list of folders.
  *
- * @remarks To use the @a folder outside this function, copy the handle with #media_folder_clone() function.
+ * @remarks To use the @a folder outside this function, copy the handle with the media_folder_clone() function.
  *
- * @param[in] folder The handle to media folder
+ * @param[in] folder    The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c 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()
@@ -371,17 +378,20 @@ typedef bool (*media_folder_cb)(media_folder_h folder, void *user_data);
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
- * @brief Iterates over playlist list.
+ * @brief Called for every playlist in the obtained list of playlists.
  *
- * @details This callback is called for every playlist in obtained list of playlists.\n
+ * @details Iterates over a playlist list.
  *
- * @remarks To use the @a playlist outside this function, copy the handle with #media_playlist_clone() function.
+ * @remarks To use the @a playlist outside this function, copy the handle with the media_playlist_clone() function.
  *
- * @param[in] playlist The handle to media playlist
+ * @param[in] playlist  The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c 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()
  */
@@ -389,18 +399,21 @@ typedef bool (*media_playlist_cb)(media_playlist_h playlist, void *user_data);
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
- * @brief Iterates over playlist member.
+ * @brief Called for every media info with playlist member ID in the obtained list of media info.
  *
- * @details This callback is called for every media info with playlist member ID in obtained list of media info.\n
+ * @details Iterates over playlist members.
  *
- * @remarks To use the @a media outside this function, copy the handle with #media_info_clone() function.
+ * @remarks To use the @a media outside this function, copy the handle with the media_info_clone() function.
+ *
+ * @param[in] playlist_member_id The ID to member of the playlist
+ * @param[in] media              The handle to the media info
+ * @param[in] user_data          The user data passed from the foreach function
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c false to break out of the loop
  *
- * @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()
  */
@@ -408,17 +421,20 @@ typedef bool(* playlist_member_cb)(int playlist_member_id, media_info_h media, v
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_TAG_MODULE
- * @brief Iterates over a list of tags
+ * @brief Called for every tag in the obtained list of tags.
  *
- * @details This callback is called for every tag in the obtained list of tags.\n
+ * @details Iterates over a list of tags.
  *
- * @remarks To use the @a tag outside this function, copy the handle with #media_tag_clone() function.
+ * @remarks To use the @a tag outside this function, copy the handle with the media_tag_clone() function.
  *
- * @param[in] tag The handle to media tag
+ * @param[in] tag       The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c 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()
@@ -427,57 +443,61 @@ typedef bool (*media_tag_cb)(media_tag_h tag, void *user_data);
 
 /**
  * @ingroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
- * @brief Iterates over bookmark list
+ * @brief Called for every bookmark in the obtained list of bookmarks.
  *
- * @details This callback is called for every bookmark in obtained list of bookmarks.\n
+ * @details Iterates over a bookmark list.
  *
- * @remarks To use the @a bookmark outside this function, copy the handle with #media_bookmark_clone() function.
+ * @remarks To use the @a bookmark outside this function, copy the handle with the media_bookmark_clone() function.
  *
- * @param[in] bookmark The handle to video bookmark
+ * @param[in] bookmark  The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c false to break out of the loop
+ *
  * @pre media_info_foreach_bookmark_from_db() will invoke this function.
+ *
  * @see media_info_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
+ * @brief Called for every album in the obtained list of groups.
  *
- * @details This callback is called for every album in obtained list of groups.\n
+ * @details Iterates over an album list.
  *
- * @remarks To use the @a album outside this function, copy the handle with #media_album_clone() function.
+ * @remarks To use the @a album outside this function, copy the handle with the media_album_clone() function.
  *
- * @param[in] album The handle to media album
+ * @param[in] album     The handle to the 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.
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c 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
+ * @brief Called for every group in the obtained list of groups.
  *
- * @details This callback is called for every group in obtained list of groups.\n
+ * @details Iterates over a media group list.
  *
- * @remarks You should not free group_name returned by this function.
+ * @remarks You should not free @a group_name returned by this function.
+ *
+ * @param[in] group_name The name of the media group
+ * @param[in] user_data  The user data passed from the foreach function
+ *
+ * @return @c true to continue with the next iteration of the loop,
+ *         otherwise @c false to break out of the loop
  *
- * @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);
@@ -487,55 +507,56 @@ typedef bool (*media_group_cb)(const char *group_name, void *user_data);
  */
 
 /**
- * @addtogroup CAPI_CONTENT_MEDIA_INFO_MODULE
+ * @addtogroup CAPI_CONTENT_MEDIA_FILTER_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_BURST_ID "BURST_ID" /**< media burst id*/
-#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*/
+ * @brief You can use above defines to set the condition of media filter and order keyword.
+ *
+ */
+#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_BURST_ID "BURST_ID"  /**< Media burst ID*/
+#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_FAVOURITE"  /**< 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*/
 
 /**
  * @}
@@ -547,11 +568,11 @@ typedef bool (*media_group_cb)(const char *group_name, void *user_data);
  * @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*/
+#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*/
 
 /**
  * @}
@@ -561,9 +582,9 @@ typedef bool (*media_group_cb)(const char *group_name, void *user_data);
  * @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 */
+#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 */
 
 /**
  * @}
@@ -573,8 +594,8 @@ typedef bool (*media_group_cb)(const char *group_name, void *user_data);
  * @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 */
+#define TAG_NAME "TAG_NAME"  /**< Tag name */
+#define TAG_MEDIA_COUNT "TAG_MEDIA_COUNT"  /**< Media count in tag view */
 
 /**
  * @}
@@ -584,7 +605,7 @@ typedef bool (*media_group_cb)(const char *group_name, void *user_data);
  * @addtogroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
  * @{
  */
-#define BOOKMARK_MARKED_TIME "BOOKMARK_MARKED_TIME"    /**< bookmark marked time */
+#define BOOKMARK_MARKED_TIME "BOOKMARK_MARKED_TIME"  /**< Bookmark marked time */
 
 /**
  * @}
index 0592961..651e890 100755 (executable)
@@ -27,6 +27,14 @@ extern "C" {
 #endif /* __cplusplus */
 
 /**
+ * @file media_filter.h
+ * @brief This file contains the media filter API and related operation with filters. \n
+ *        The functions include: creating and destroying media filter handles that are used to get the filtered information,  \n
+ *        making free all resources related to the filter handle, limiting number of items returned, setting conditions for the filter,  \n
+ *        setting and getting media filter's content order and ordering keyword either descending or ascending.
+ */
+
+/**
  * @addtogroup CAPI_CONTENT_MEDIA_FILTER_MODULE
  * @{
  */
@@ -34,131 +42,182 @@ extern "C" {
 /**
  * @brief Creates a media filter handle.
  * @details This function creates a media filter handle. The handle can be
- * used to get filtered information based on filter properties i.e. offset, count, condition for searching and order.
- * @remarks The @a filter handle must be released with media_info_filter_destroy() by you.
- * @param[out] filter A handle to media filter
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          used to get the filtered information based on filter properties i.e. offset, count, condition for searching and order.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the @a filter handle using media_info_filter_destroy().
+ *
+ * @param[out] filter A handle to the media filter
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @see media_filter_destroy()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see media_filter_destroy()
  */
 int media_filter_create(filter_h *filter);
 
 /**
  * @brief Destroys a media filter handle.
  * @details The function frees all resources related to the media filter handle. The filter
- * handle no longer can be used to perform any operation. A new filter handle
- * has to be created before the next usage.
+ *          handle no longer can be used to perform any operation. A new filter handle
+ *          has to be created before the next usage.
+ *
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to media filter
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] filter The handle to the media filter
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see media_filter_create()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see media_filter_create()
  */
 int media_filter_destroy(filter_h filter);
 
 /**
- * @brief Set the media filter's offset and count.
- * @details This function set the @a offset and @a count for the given filter used to limit number of items returned.
- * For example, if you set the @a offset as 10 and @a count as 5, then only searched data from 10 to 14 will be returned when the filter is used with foreach functions.
- *
- * @param[in] filter The handle to media filter
- * @param[in] offset The start position of the given filter(Starting from zero).
- * @param[in] count The number of items to be searched with respect to offset
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Sets the media filter offset and count.
+ * @details This function sets the @a offset and @a count for the given filter used to limit number of items returned.
+ *          For example, if you set the @a offset as @c 10 and @a count as @c 5, then only searched data from @c 10 to @c 14 will be returned when the filter is used with foreach functions.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] filter The handle to the media filter
+ * @param[in] offset The start position of the given filter (Starting from zero)
+ * @param[in] count  The number of items to be searched with respect to the offset
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_set_offset(filter_h filter, int offset, int count);
 
 /**
- * @brief Set the @a condition for given @a filter.
+ * @brief Sets the @a condition for the given @a filter.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to media filter
- * @param[in] condition The condition which is used WHERE clause on a query
+ * @param[in] filter       The handle to the media filter
+ * @param[in] condition    The condition which is used WHERE clause on a query
  * @param[in] collate_type The collate type for comparing two strings
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_set_condition(filter_h filter, const char *condition, media_content_collation_e collate_type);
 
 /**
- * @brief Set the media filter's content @a order and @a order @a keyword either descending or ascending.
+ * @brief Sets the media filter content @a order and order keyword i.e. either descending or ascending.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to media filter
- * @param[in] order_type The search order type
+ * @param[in] filter        The handle to the media filter
+ * @param[in] order_type    The search order type
  * @param[in] order_keyword The search order keyword
- * @param[in] collate_type The collate type for comparing two strings
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] collate_type  The collate type for comparing two strings
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_set_order(filter_h filter, media_content_order_e order_type, const char *order_keyword, media_content_collation_e collate_type);
 
 /**
- * @brief Gets the @a offset and @a count for the given @a filter used to limit number of items returned.
+ * @brief Gets the @a offset and @a count for the given @a filter used to limit the number of items returned.
+ * @since_tizen 2.3
+ *
+ * @param[in]  filter The handle to the media filter
+ * @param[out] offset The start position of the given filter (Starting from zero)
+ * @param[out] count  The number of items to be searched with respect to the offset
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] filter The handle to Media filter
- * @param[out] offset The start position of the given filter(Starting from zero)
- * @param[out] count The number of items to be searched with respect to offset
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_get_offset(filter_h filter, int *offset, int *count);
 
 /**
- * @brief Get the @a condition for given @a filter.
+ * @brief Gets the @a condition for the given @a filter.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a condition using free().
  *
- * @remarks @a condition must be released with free() by you.
- * @param[in] filter The handle to media info filter
- * @param[out] condition The condition which is used WHERE clause on a query
+ * @param[in]  filter       The handle to the media info filter
+ * @param[out] condition    The condition which is used WHERE clause on a query
  * @param[out] collate_type The collate type for comparing two strings
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_get_condition(filter_h filter, char **condition, media_content_collation_e *collate_type);
 
 /**
- * @brief Get the media filter's content @a order and @a order @a keyword either descending or ascending.
+ * @brief Gets the media filter's content @a order and order keyword i.e. either descending or ascending.
+ * @since_tizen 2.3
  *
- * @remarks @a order_keyword must be released with free() by you.
- * @param[in] filter The handle to media filter
- * @param[out] order_type The search order type
+ * @remarks You must release @a order_keyword using free().
+ *
+ * @param[in]  filter        The handle to the media filter
+ * @param[out] order_type    The search order type
  * @param[out] order_keyword The search order keyword
- * @param[out] collate_type The collate type for comparing two strings
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[out] collate_type  The collate type for comparing two strings
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_filter_create()
  * @see media_filter_destroy()
  */
 int media_filter_get_order(filter_h filter, media_content_order_e* order_type, char **order_keyword, media_content_collation_e *collate_type);
 
-
 /**
  * @}
  */
 
-
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
index 38f7899..53cff8f 100755 (executable)
@@ -27,97 +27,154 @@ extern "C" {
 #endif /* __cplusplus */
 
 /**
+ * @file media_folder.h
+ * @brief This file contains API related to all operations with media folder in DB. \n
+ *        These functions include getting the number of folders and media files filtered from DB,  \n
+ *        iterating through media files and folders filtered in the given folder from DB;  \n
+ *        cloning and destroying the media folder, getting its name, ID, absolute path and date \n
+ *        and updating the media folder to the media database.
+ */
+
+/**
  * @addtogroup CAPI_CONTENT_MEDIA_FOLDER_MODULE
  * @{
  */
 
+
 /**
- * @brief Gets the number of folder for the passed @a filter from the media database.
+ * @brief Gets the count of folder for the passed @a filter from the media database.
+ * @since_tizen 2.3
+ *
+ * @param[in]  filter       The handle to filter \n
+ *                          To allow searching over different content types, you should use #filter_h.
+ * @param[out] folder_count The count of the media folder
  *
- * @param[in] filter The handle to filter. \n To allow searching over different content types, you should use @a filter_h.
- * @param[out] folder_count The count of media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_folder_get_folder_count_from_db(filter_h filter, int *folder_count);
 
 /**
  * @brief Iterates through available media folders with optional @a filter from the media database.
- * @details This function gets media folder handles meeting the given 
- * @a filter. The @a callback function will be invoked for every retrieved
- * folder. If NULL is passed to the @a filter, no filtering is applied.
+ * @details This function gets the media folder meeting the given @a filter.
+ *          The @a callback function will be invoked for every retrieved
+ *          folder. If @c NULL is passed to the @a filter, no filtering is applied.
  *
- * @param[in] filter The handle to media folder filter
- * @param[in] callback The callback function to invoke
+ * @since_tizen 2.3
+ *
+ * @remarks Do not call updating DB fuction like media_folder_update_to_db() in your callback function, your callback function is invoked as inline function.\n
+ *                   So, your callback function is in read state in SQLite. When you are in read state, sometimes you do not update DB. \n
+ *                   We do not recommend you call updating DB function in callback of foreach function.
+ *
+ * @param[in] filter    The handle to the media folder filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
- * @pre A filter handle has to be created by calling media_folder_filter_create()
- * @post This function invokes media_folder_cb()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
+ * @pre  A filter handle has to be created by calling media_filter_create().
+ * @post This function invokes media_folder_cb().
+ *
  * @see media_content_connect()
- * @see #media_folder_cb
+ * @see media_folder_cb()
  * @see media_filter_create()
  */
 int media_folder_foreach_folder_from_db(filter_h filter, media_folder_cb callback, void *user_data);
 
 /**
- * @brief Gets the number of media files for the passed @a filter in the given @a folder from the media database.
+ * @brief Gets the count of media files for the passed @a filter in the given @a folder from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] folder_id The ID of media folder
- * @param[in] filter The filter of media content
+ * @param[in] folder_id    The ID of the media folder
+ * @param[in] filter       The filter of the media content
  * @param[out] media_count The count of media folder items
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_folder_get_media_count_from_db(const char *folder_id, filter_h filter, int *media_count);
 
 /**
- * @brief Iterates through the media files with optional @a filter in the given @a folder from the media database.
+ * @brief Iterates through the media files with an optional @a filter in the given @a folder from the media database.
  * @details This function gets all media files associated with the given folder and
- * meeting desired filter option and calls registered callback function for
- * every retrieved media item. If NULL is passed to the @a filter, no filtering is applied.
+ *          meeting desired filter option and calls registered callback function for
+ *          every retrieved media item. If @c NULL is passed to the @a filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
  *
- * @param[in] folder_id The ID of media folder
- * @param[in] filter The handle to media info filter
- * @param[in] callback The callback function to invoke
+ * @remarks   Do not call updating DB function like media_info_update_to_db(), media_info_refresh_metadata_to_db(), audio_meta_update_to_db(), image_meta_update_to_db() and video_meta_update_to_db()  in your callback function,
+ *                    your callback function is invoked as inline function. \n
+ *                    So, your callback function is in read state in SQLite. When you are in read state, sometimes you do not update DB. \n
+ *                    We do not recommend you call updating DB function in callback of foreach function.
+ *
+ * @param[in] folder_id The ID of the media folder
+ * @param[in] filter    The handle to the media info filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
- * @post This function invokes media_info_cb()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
+ * @post This function invokes media_info_cb().
+ *
  * @see #media_info_cb
  * @see media_content_connect()
- * @see media_folder_filter_create()
+ * @see media_filter_create()
  */
 int media_folder_foreach_media_from_db(const char *folder_id, filter_h filter, media_info_cb callback, void *user_data);
 
 /**
  * @brief Clones the media folder.
  * @details This function copies the media folder handle from a source to
- * destination. There is no media_folder_create() function. The media_folder_h is created internally and available through 
- * media folder foreach function such as media_folder_foreach_folder_from_db(). To use this handle outside of these foreach functions, 
- * use this function.
- * @remark The destination handle must be released with media_folder_destroy() by you.
- * @param[out] dst A destination handle to media folder
- * @param[in] src The source handle to media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          destination. There is no media_folder_create() function. The media_folder_h is created internally and available through
+ *          media folder foreach function such as media_folder_foreach_folder_from_db(). To use this handle outside of these foreach functions,
+ *          use this function.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks The destination handle must be released with media_folder_destroy().
+ *
+ * @param[out] dst The destination handle to the media folder
+ * @param[in]  src The source handle to the media folder
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_folder_destroy()
  * @see media_folder_foreach_folder_from_db()
  */
@@ -126,99 +183,135 @@ int media_folder_clone(media_folder_h *dst, media_folder_h src);
 /**
  * @brief Destroys the media folder.
  * @details The function frees all resources related to the folder handle. This handle
- * no longer can be used to perform any operation. A new handle has to
- * be created before the next use.
+ *          no longer can be used to perform any operation. A new handle has to
+ *          be created before the next use.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] folder The handle to the media folder
  *
- * @param[in] folder The handle to media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre A copy of the media folder handle created by calling media_folder_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre A copy of the media folder handle created by calling media_folder_clone().
+ *
  * @see media_folder_clone()
  */
 int media_folder_destroy(media_folder_h folder);
 
 /**
- * @brief Gets media folder's ID.
+ * @brief Gets the media folder ID.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a folder_id using free().
  *
- * @remarks @a folder_id must be released with free() by you.
+ * @param[in]  folder    The handle to the media folder
+ * @param[out] folder_id The ID of the media folder
  *
- * @param [in] folder The handle to media folder
- * @param [out] folder_id The ID of media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_folder_get_folder_id(media_folder_h folder, char **folder_id);
 
 /**
- * @brief Gets the absolute path to the folder.
+ * @brief Gets the absolute path to the media folder.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a path using free().
  *
- * @remarks @a path must be released with free() by you.
+ * @param[in]  folder The handle to the media folder
+ * @param[out] path   The path of the media folder
  *
- * @param[in] folder The handle to media folder
- * @param[out] path The path of the media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
  */
 int media_folder_get_path(media_folder_h folder, char **path);
 
 /**
- * @brief Gets the folder name.
+ * @brief Gets the media folder name.
+ * @since_tizen 2.3
  *
- * @remarks @a folder_name must be released with free() by you.
+ * @remarks You must release @a folder_name using free().
  *
- * @param[in] folder The handle to media folder
+ * @param[in]  folder      The handle to the media folder
  * @param[out] folder_name The name of the media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_folder_get_name(media_folder_h folder, char **folder_name);
 
 /**
  * @brief Gets the modified date of the folder.
+ * @since_tizen 2.3
  *
- * @param[in] folder The handle to media folder
- * @param[out] date The modified date of folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  folder The handle to the media folder
+ * @param[out] date   The modified date of the folder
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  */
 int media_folder_get_modified_time(media_folder_h folder, time_t *date);
 
 /**
  * @brief Gets the folder storage type.
+ * @since_tizen 2.3
  *
- * @param[in] folder The handle to media folder
+ * @param[in]  folder       The handle to the media folder
  * @param[out] storage_type The storage type of the media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_folder_get_storage_type(media_folder_h folder, media_content_storage_e *storage_type);
 
 /**
  * @brief Gets the media folder from the media database.
  *
- * @details This function creates a new media folder handle from the media database by the given folder_id.
- * media folder will be created, which is filled with folder information.
+ * @details This function creates a new media folder handle from the media database by the given @a folder_id.
+ *          Media folder will be created, which is filled with folder information.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release @a folder using media_folder_destroy().
  *
- * @remarks @a folder must be released with media_folder_destroy() by you.
+ * @param[in]  folder_id The ID of the media folder
+ * @param[out] folder    The media folder handle associated with the folder ID
  *
- * @param[in] folder_id The ID of media folder
- * @param[out] folder The media folder handle associated with the folder ID
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_folder_destroy()
  *
@@ -228,33 +321,49 @@ int media_folder_get_folder_from_db(const char *folder_id, media_folder_h *folde
 /**
  * @brief Updates the media folder to the media database.
  *
- * @details The function updates the given media folder in the media database. The function should be called after any change in folder attributes, to be updated to the media 
- * database. For example, after using media_folder_set_name() for setting the name of the folder, media_folder_update_to_db() function should be called so as to update 
- * the given folder attibutes in the media database.
+ * @details The function updates the given media folder in the media database. The function should be called after any change in folder attributes, to be updated to the media
+ *          database. For example, after using media_folder_set_name() for setting the name of the folder, the media_folder_update_to_db() function should be called so as to update
+ *          the given folder attributes in the media database.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] folder The handle to the media folder
  *
- * @param[in] folder The handle to media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ * @pre If you do not set new name of folder by using media_folder_set_name(), your updating function is failed.
+ *
  * @see media_content_connect()
  * @see media_folder_destroy()
  * @see media_folder_set_name()
- *
  */
 int media_folder_update_to_db(media_folder_h folder);
 
 /**
  * @brief Sets the folder name.
+ * @since_tizen 2.3
  *
- * @param[in] folder The handle to media folder
- * @param[in] name The name of the media folder
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] folder The handle to the media folder
+ * @param[in] name   The name of the media folder
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @post media_folder_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_folder_update_to_db()
  */
 int media_folder_set_name(media_folder_h folder, const char *name);
 
index 9159a85..f437017 100755 (executable)
@@ -26,76 +26,113 @@ extern "C" {
 #endif /* __cplusplus */
 
 /**
+ * @file media_group.h
+ * @brief This file contains API related to handling different operations with album and other media data groups in DB.
+ *        The following APIs are capable to get number of albums, media info in the given album from DB, \n
+ *        to clone, destroy and get all albums and media files associated with the given media album from DB,  \n
+ *        to get name, ID, artist, album art path from album; to get number of groups and their names, \n
+ *        to get the number of media files and their content associated with the given group from DB.
+ */
+
+/**
  * @addtogroup CAPI_CONTENT_MEDIA_ALBUM_MODULE
  * @{
  */
 
 /**
- * @brief Gets the number of album for the passed @a filter from the media database.
+ * @brief Gets the number of the album for the passed @a filter from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to media filter.
- * @param[out] album_count The count of media album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  filter      The media filter handle
+ * @param[out] album_count The count of the media album
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_album_get_album_count_from_db(filter_h filter, int *album_count);
 
 /**
  * @brief Iterates through the media album with optional @a filter from the media database.
  * @details This function gets all media album handles meeting the given filter.
- * The callback function will be invoked for every retrieved media album.
- * If NULL is passed to the filter, no filtering is applied.
- *
- * @param [in] filter The handle to media filter
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          The callback function will be invoked for every retrieved media album.
+ *          If @c NULL is passed to the filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] filter    The media filter handle
+ * @param[in] callback  The callback function to be invoked
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_album_cb().
+ *
  * @see #media_album_cb
  * @see media_content_connect()
  * @see media_filter_create()
- *
  */
 int media_album_foreach_album_from_db(filter_h filter, media_album_cb callback, void *user_data);
 
 /**
- * @brief Gets number of media info for the given album present in the media database.
+ * @brief Gets the number of media info for the given album present in the media database.
+ * @since_tizen 2.3
  *
- * @param [in] album_id The ID of media album
- * @param [in] filter The handle to media filter
- * @param [out] media_count A count of album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  album_id    The ID of the media album
+ * @param[in]  filter      The media filter handle
+ * @param[out] media_count The count of the album
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_album_get_media_count_from_db (int album_id, filter_h filter, int *media_count);
 
 /**
- * @brief Iterates through the media files with optional @a filter in the given @a media @a album from the media database.
+ * @brief Iterates through the media files with an optional @a filter in the given media album from the media database.
  * @details This function gets all media files associated with the given media album and
- * meeting desired filter option and calls registered callback function for
- * every retrieved media info. If NULL is passed to the @a filter, no filtering is applied.
- *
- * @param [in] album_id The ID of media album
- * @param [in] filter The handle to media filter
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          meeting desired filter option and calls registered callback function for
+ *          every retrieved media info. If @c NULL is passed to the @a filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] album_id  The ID of the media album
+ * @param[in] filter    The media filter handle
+ * @param[in] callback  The callback function to be invoked
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_info_cb().
+ *
  * @see #media_info_cb
  * @see media_content_connect()
  * @see media_filter_create()
@@ -103,116 +140,155 @@ int media_album_get_media_count_from_db (int album_id, filter_h filter, int *med
 int media_album_foreach_media_from_db(int album_id, filter_h filter, media_info_cb callback, void *user_data);
 
 /**
- * @brief Destroys album handle.
- * @details Function frees all resources related to album handle. This handle
- * no longer can be used to perform any operation. A new handle has to
- * be created before the next use.
- *
- * @param [in] album The handle to media album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Destroys the album handle.
+ * @details This function frees all resources related to the album handle. This handle
+ *          can no longer be used to perform any operation. A new handle has to
+ *          be created before the next use.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] album The media album handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre Get copy of album handle by calling media_album_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get copy of album handle by calling media_album_clone().
+ *
  * @see media_album_clone()
  */
 int media_album_destroy(media_album_h album);
 
 /**
- * @brief Clones media album.
+ * @brief Clones media album.
  * @details This function copies the media album handle from a source to
- * destination. There is no media_album_create() function. The media_album_h is created internally and available through 
- * media album foreach function such as media_album_foreach_album_from_db(). To use this handle outside of these foreach functions, 
- * use this function.
+ *          destination. There is no media_album_create() function. The media_album_h is created internally and available through
+ *          media album foreach function such as media_album_foreach_album_from_db(). To use this handle outside of these foreach functions,
+ *          use this function.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the destination handle using media_album_destroy().
+ *
+ * @param[in]  src  The source handle to the media album
+ * @param[out] dst  The destination handle to the media album
  *
- * @remark The destination handle must be released with media_album_destroy() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] src The source handle to media album
- * @param [out] dst A destination handle to media album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_album_destroy()
  * @see media_album_foreach_album_from_db()
  */
 int media_album_clone(media_album_h *dst, media_album_h src);
 
 /**
- * @brief Gets a ID of the album.
+ * @brief Gets the ID of the album.
+ * @since_tizen 2.3
+ *
+ * @param[in]  album    The media album handle
+ * @param[out] album_id The media album ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] album The handle to media album
- * @param [out] album_id A ID of media album
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @see media_album_foreach_album_from_db()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see media_album_foreach_album_from_db()
  */
 int media_album_get_album_id(media_album_h album, int *album_id);
 
 /**
- * @brief Gets a name of the album.
+ * @brief Gets the name of the album.
+ * @since_tizen 2.3
  *
- * @remarks @a album_name must be released with free() by you.
+ * @remarks You must release @a album_name using free().
  *
- * @param [in] album The handle to media album
- * @param [out] album_name A name of media album handle
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in]  album       The media album handle
+ * @param[out] album_name  The name of the media album handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_album_get_name(media_album_h album, char **album_name);
 
 /**
- * @brief Gets a name of the artist from album.
+ * @brief Gets the name of the artist from the given album.
+ * @since_tizen 2.3
  *
- * @remarks @a artist must be released with free() by you.
+ * @remarks You must release @a artist using free().
  *
- * @param [in] album The handle to media album
- * @param [out] artist A name of media artist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in]  album  The media album handle
+ * @param[out] artist The name of the media artist
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_album_get_artist(media_album_h album, char **artist);
 
 /**
- * @brief Gets a album art path from album.
+ * @brief Gets the album art path from the album.
+ * @since_tizen 2.3
  *
- * @remarks @a album_art must be released with free() by you.
+ * @remarks You must release @a album_art using free().
  *
- * @param [in] album The handle to media album
- * @param [out] album_art A path of media album_art
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in]  album     The media album handle
+ * @param[out] album_art The path of the media album_art
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_album_get_album_art(media_album_h album, char **album_art);
 
 /**
  * @brief Gets the media album from the media database.
  *
- * @details This function creates a new media album handle from the media database by the given album_id.
- * media album will be created, which is filled with album information.
+ * @details This function creates a new media album handle from the media database by the given @a album_id.
+ *          Media album will be created and will be filled with the album information.
+ *
+ * @since_tizen 2.3
  *
- * @remarks @a folder must be released with media_album_destroy() by you.
+ * @remarks You must release @a folder using media_album_destroy().
  *
- * @param[in] album_id The ID of media album
- * @param[out] album The album handle associated with the album ID
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  album_id The ID of the media album
+ * @param[out] album    The album handle associated with the album ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_album_destroy()
- *
  */
 int media_album_get_album_from_db(int album_id, media_album_h *album);
 
@@ -228,36 +304,49 @@ int media_album_get_album_from_db(int album_id, media_album_h *album);
 */
 
  /**
- * @brief Gets the number of group for the passed @a filter from the media database.
+ * @brief Gets the number of the group for the passed @a filter from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to media filter
- * @param [in] group The type of media group
- * @param[out] group_count The count of media group
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  filter       The media filter handle
+ * @param[in]  group        The type of the media group
+ * @param[out] group_count  The count of the media group
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_group_get_group_count_from_db(filter_h filter, media_group_e group, int *group_count);
 
  /**
- * @brief Iterates through the media group with optional @a filter from the media database.
- * @details This function gets the names of media group meeting the given filter.
- * The callback function will be invoked for every retrieved media group.
- * If NULL is passed to the filter, no filtering is applied.
- *
- * @param [in] filter The handle to media filter
- * @param [in] group The type of media group
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Iterates through the media group with an optional @a filter from the media database.
+ * @details This function gets names of media group meeting the given filter.
+ *          The callback function will be invoked for every retrieved media group.
+ *          If @c NULL is passed to the filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] filter    The media filter handle
+ * @param[in] group     The type of the media group
+ * @param[in] callback  The callback function to be invoked
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_group_cb().
+ *
  * @see #media_group_cb
  * @see media_content_connect()
  * @see media_filter_create()
@@ -265,37 +354,52 @@ int media_group_get_group_count_from_db(filter_h filter, media_group_e group, in
 int media_group_foreach_group_from_db(filter_h filter, media_group_e group, media_group_cb callback, void *user_data);
 
  /**
- * @brief Gets number of media info for the given media group present in the media database.
- *
- * @param [in] group_name The name of media group
- * @param [in] group The type of media group
- * @param [in] filter The handle to media filter
- * @param [out] media_count The count of media
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Gets the count of the media info for the given media group present in the media database.
+ * @since_tizen 2.3
+ *
+ * @param[in]  group_name  The name of the media group
+ * @param[in]  group       The type of the media group
+ * @param[in]  filter      The media filter handle
+ * @param[out] media_count The count of the media
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_group_get_media_count_from_db(const char *group_name, media_group_e group, filter_h filter, int *media_count);
 
  /**
- * @brief Iterates through the media files with optional @a filter in the given @a group from the media database.
+ * @brief Iterates through the media files with an optional @a filter in the given @a group from the media database.
  * @details This function gets all media files associated with the given group and
- * meeting desired filter option and calls registered callback function for
- * every retrieved media info. If NULL is passed to the @a filter, no filtering is applied.
- *
- * @param [in] group_name The name of media group
- * @param [in] group The type of media group
- * @param [in] filter The handle to media filter
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          meeting desired filter option and calls registered callback function for
+ *          every retrieved media info. If @c NULL is passed to the @a filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] group_name The name of the media group
+ * @param[in] group      The type of the media group
+ * @param[in] filter     The media filter handle
+ * @param[in] callback   The callback function to be invoked
+ * @param[in] user_data  The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_info_cb().
- * @see #media_info_cb
+ *
+ * @see media_info_cb()
  * @see media_content_connect()
  * @see media_filter_create()
  */
index 75bc1ce..0cc3f8a 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
+/**
+ * @brief This file contains the image metadata API and related functions to proceed with them.
+ *        Functions include cloning and destroying the image metadata, getting image metadata such as width, height, \n
+ *        orientation, date taken, title, burst shot id and updating image to DB.
+ */
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_IMAGE_MODULE
  * @{
  */
 
+
 /**
- * @brief Clones image metadata.
- * @details Function copies the image metadata handle from source to destination.
+ * @brief Clones the image metadata.
+ * @details The function copies the image metadata handle from a source to destination.
  *
- * @remark The destination handle must be released with image_meta_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param [out] dst A destination handle to image metadata
- * @param [in] src The source handle to image metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks The destination handle must be released with image_meta_destroy().
+ *
+ * @param[out] dst  The destination handle to the image metadata
+ * @param[in]  src  The source handle to the image metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see image_meta_destroy()
  */
 int image_meta_clone(image_meta_h *dst, image_meta_h src);
 
 /**
- * @brief Destroys image metadata.
+ * @brief Destroys the image metadata.
  * @details The function frees all resources related to the image metadata handle. This handle
- * no longer can be used to perform any operation. A new handle has to
- * be created before next usage.
+ *          no longer can be used to perform any operation. A new handle has to
+ *          be created before next usage.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] image The image metadata handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] image The handle to image metadata
- * @return 0 on success, otherwise a negative error value.
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @pre Get copy of image_meta handle by calling image_meta_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get a copy of image_meta handle by calling image_meta_clone().
+ *
  * @see image_meta_clone()
  */
 int image_meta_destroy(image_meta_h image);
 
 /**
- * @brief Gets the ID of image.
+ * @brief Gets the ID of an image.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [out] media_id The ID of image
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  image    The image metadata handle
+ * @param[out] media_id The ID of an image
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_get_media_id(image_meta_h image, char **media_id);
 
 /**
- * @brief Gets image's width in pixels.
+ * @brief Gets the image width in pixels.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [out] width The image width in pixels
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  image The image metadata handle
+ * @param[out] width The image width in pixels
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_get_width(image_meta_h image, int *width);
 
 /**
- * @brief Gets image's height in pixels.
+ * @brief Gets the image height in pixels.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [out] height The image height in pixels
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  image  The image metadata handle
+ * @param[out] height The image height in pixels
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_get_height(image_meta_h image, int *height);
 
 /**
  * @brief Gets the image orientation.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [out] orientation The image orientation
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  image       The image metadata handle
+ * @param[out] orientation The image orientation
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_get_orientation(image_meta_h image, media_content_orientation_e *orientation);
 
 /**
- * @brief Gets the date, when image was created as time_t structure.
+ * @brief Gets the image creation time as time_t structure.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [out] date_taken The time, when image was taken (in seconds, since the Epoch)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- */
-int image_meta_get_date_taken(image_meta_h image, char **date_taken);
-
-/**
- * @brief Gets the title.
+ * @param[in]  image      The image metadata handle
+ * @param[out] date_taken The time, when image was taken (in seconds, since the Epoch)
  *
- * @remarks @a title must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] media The handle to image metadata
- * @param[out] title title of image
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- *
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
-int image_meta_get_title(image_meta_h image, char **title);
+int image_meta_get_date_taken(image_meta_h image, char **date_taken);
 
 /**
- * @brief Gets the burst shot id.
+ * @brief Gets the burst shot ID.
+ * @since_tizen 2.3
  *
- * @remarks @a burst id must be released with free() by you.
+ * @remarks You must release @a burst_id using free().
  *
- * @param[in] media The handle toimage metadata
- * @param[out] burst_id The id of burst shot. if burst_id is NULL, this is not burst shot.
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  image    The image metadata handle
+ * @param[out] burst_id The ID of burst shot\ n
+ *                      If @a burst_id is @c NULL, this is not burst shot.
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_get_burst_id(image_meta_h image, char **burst_id);
 
 /**
- * @brief Checks whether the media is burst shot image.
+ * @brief Checks whether the media is a burst shot image.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to image metadata
- * @param[out] is_burst_shot /@a true if the burst shot image,
- *                    /@a false if not burst shot image.
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  image         The image metadata handle
+ * @param[out] is_burst_shot @c true if the media is a burst shot image,
+ *                           otherwise @c false if the media is not a burst shot image
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int image_meta_is_burst_shot(image_meta_h image, bool *is_burst_shot);
 
 /**
- * @brief Sets the image orientation.
+ * @brief Sets an orientation of the image.
+ * @since_tizen 2.3
  *
- * @param [in] image The handle to image metadata
- * @param [in] orientation The image orientation
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] image       The image metadata handle
+ * @param[in] orientation The image orientation
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @post image_meta_update_to_db()
  */
 int image_meta_set_orientation(image_meta_h image, media_content_orientation_e orientation);
@@ -174,18 +219,30 @@ int image_meta_set_orientation(image_meta_h image, media_content_orientation_e o
 /**
  * @brief Updates the image to the media database.
  *
- * @details The function updates the given image meta in the media database. The function should be called after any change in image attributes, to be updated to the media 
- * database. For example, after using image_meta_set_orientation() for setting the orientation of the image, image_meta_update_to_db() function should be called so as to update 
- * the given image attibutes in the media database.
+ * @details The function updates the given image meta in the media database. The function should be called after any change in image attributes, to be updated to the media
+ *          database. For example, after using image_meta_set_orientation() for setting the orientation of the image, the image_meta_update_to_db() function should be called so as to update
+ *          the given image attributes in the media database.
  *
- * @param[in] image The handle to image
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @remarks Do not call this function in callback function of foreach function like media_info_foreach_media_from_db().
+ *
+ * @param[in] image The handle to the image
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see image_meta_set_orientation()
- *
  */
 int image_meta_update_to_db(image_meta_h image);
 
index 2cfc92f..1da3348 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
+/**
+ * @file media_info.h
+ * @brief This file contains the media info API and related functions to proceed with it. \n
+ *        You can use the functions to insert, clone, delete, get the number and content of files from DB. \n
+ *        You can get and set properties and parameters such as storage type, provider, and category of media info, \n
+ *        handling with thumbnail and updating media info to DB.
+ */
+
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_INFO_MODULE
@@ -33,102 +41,189 @@ extern "C" {
  */
 
 /**
- * @brief Inserts media file into the media database.
- * @details This function inserts an media item into the content storage.
- * Normally, inserting a media file in database is done automatically by media server, without calling this function.
- * This function is only called when media server is busy and user needs to get quick result of inserting
- * e.g. Taking a photo while media server is busy and user want to see the quick snapshot of the photo taken.
- * @remark The handle must be released with media_info_destroy() by you.
+ * @brief  Inserts a media file into the media database.
+ * @details This function inserts a media item into the content storage.
+ *          Normally, inserting a media file in database is done automatically by the media server, without calling this function.
+ *          This function is only called when the media server is busy and the user needs to get quick result of inserting
+ *          e.g. Taking a photo while media server is busy and the user wants to see the quick snapshot of the photo taken.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must release the handle using media_info_destroy(). \n
+ *                   You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using  this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you must add all privilege.
  *
- * @param[in] path The path to the media file
+ * @param[in]  path The path to the media file
  * @param[out] info The handle to the media info
- * @return 0 on success, otherwise a negative error value.
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_info_insert_to_db (const char *path, media_info_h *info);
 
 /**
- * @brief Insert media files into the media database, asynchronously.
- * @details This function insert an media items into the content storage.
- * Normally, inserting a media file in database is done automatically by media server, without calling this function.
- * This function invokes media_insert_completed_cb callback function.
- * #media_insert_completed_cb will be called when insertion to media database is finished.
+ * @brief Inserts media files into the media database, asynchronously.
+ * @details This function inserts media items into the content storage.
+ *          Normally, inserting a media file in database is done automatically by the media server, without calling this function.
+ *          This function invokes media_insert_completed_cb() callback function when insertion to the media database is finished.
  *
- * @param[in] path_array The path array to the media files
- * @param[in] array_length The length of array
- * @param[in] callback The callback to invoke when media items inserted completely
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using  this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you must add all privilege.
+ *
+ * @param[in] path_array   The path array to the media files
+ * @param[in] array_length The length of the array
+ * @param[in] callback     The callback to be invoked when media items inserted completely
+ * @param[in] user_data    The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_insert_completed_cb()
  */
 int media_info_insert_batch_to_db(const char **path_array,unsigned int array_length, media_insert_completed_cb callback, void *user_data);
 
 /**
- * @brief Insert the burst shot images into the media database, asynchronously.
- * @details This function insert the busrt images into the content storage.
- * #media_insert_burst_shot_completed_cb will be called when insertion to media database is finished.
+ * @brief Inserts the burst shot images into the media database, asynchronously.
+ * @details This function inserts burst images into the content storage.
+ *          media_insert_burst_shot_completed_cb() will be called when insertion to media database is finished.
  *
- * @param[in] path_array The path array to the burst shot images
- * @param[in] array_length The length of array
- * @param[in] callback The callback to invoke when the images inserted completely
- * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage with this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage with this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you must add all privilege.
+ *
+ * @param[in] path_array   The path array to the burst shot images
+ * @param[in] array_length The length of the array
+ * @param[in] callback     The callback to be invoked when the images are inserted completely
+ * @param[in] user_data    The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_insert_burst_shot_completed_cb()
  */
 int media_info_insert_burst_shot_to_db(const char **path_array,unsigned int array_length, media_insert_burst_shot_completed_cb callback, void *user_data);
 
 /**
- * @brief Deletes media file from the media database.
- * @details This function deletes an media item from the content storage.
- * Normally, deleting a media file in database is done automatically by media server, without calling this function.
- * This function is only called when media server is busy and user needs to get quick result of deleting
+ * @brief Deletes a media file from the media database.
+ * @details This function deletes a media item from the content storage.
+ *          Normally, deleting a media file in the database is done automatically by the media server, without calling this function.
+ *          This function is only called when the media server is busy and user needs to get quick result of deleting.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] media_id  The ID to the media file
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] media_id The ID to the media file
- * @return 0 on success, otherwise a negative error value.
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_info_delete_from_db(const char *media_id);
 
 /**
- * @brief Deletes media files from the media database. The media files to delete can be specified as a condition in a filter.
+ * @brief Deletes media files from the media database. 
+ *        The media files for deletion can be specified as a condition in a filter.
  * @details This function deletes the media items from the content storage.
- * Normally, deleting  media files in database are done automatically by media server, without calling this function.
- * This function is only called when media server is busy and user needs to get quick result of deleting
+ *          Normally, deleting  media files in the database are done automatically by the media server, without calling this function.
+ *          This function is only called when the media server is busy and user needs to get quick result of deleting.
+ *
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] filter  The handle to filter
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] filter The handle to filter
- * @return 0 on success, otherwise a negative error value.
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_info_delete_batch_from_db(filter_h filter);
 
 
 /**
- * @brief Destroys the media info.
+ * @brief Destroys media info.
  * @details The function frees all resources related to the media info handle. This handle
- * no longer can be used to perform any operation. New media info handle has to
- * be created before next usage.
+ *          can no longer be used to perform any operation. New media info handle has to
+ *          be created before the next usage.
  *
- * @param[in] media The handle to media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @param[in]  media  The media info handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre Get copy of media_info handle by calling media_info_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get copy of media_info handle by calling media_info_clone().
+ *
  * @see media_info_clone()
  */
 int media_info_destroy(media_info_h media);
@@ -136,18 +231,26 @@ int media_info_destroy(media_info_h media);
 /**
  * @brief Clones the media info handle.
  *
- * @details This function copies the media info handle from a source to destination.
- * There is no media_info_create() function. The media_info_h is created internally and
- * available through media info foreach function such as media_info_foreach_media_from_db().
- * To use this handle outside of these foreach functions, use this function.
- * @remark The destination handle must be released with media_info_destroy() by you.
+ * @details This function copies the media info handle from a source to the destination.
+ *          There is no media_info_create() function. The media_info_h is created internally and
+ *          available through media info foreach function such as media_info_foreach_media_from_db().
+ *          To use this handle outside of these foreach functions, use this function.
  *
- * @param[out] dst A destination handle to media info
- * @param[in] src The source handle to media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the destination handle using media_info_destroy().
+ *
+ * @param[out] dst  The destination handle to the media info
+ * @param[in]  src  The source handle to media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_info_destroy()
  * @see media_album_foreach_media_from_db()
  * @see media_playlist_foreach_media_from_db()
@@ -155,726 +258,992 @@ int media_info_destroy(media_info_h media);
  * @see media_tag_foreach_media_from_db()
  * @see media_info_foreach_media_from_db()
  * @see media_folder_foreach_media_from_db()
- *
  */
 int media_info_clone(media_info_h *dst, media_info_h src);
 
 /**
- * @brief Gets the number of media info for the passed @a filter from the media database.
+ * @brief Gets the count of media info for the passed @a filter from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to filter.
- * @param[out] media_count The count of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  filter      The handle to filter
+ * @param[out] media_count The count of media
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_info_get_media_count_from_db(filter_h filter, int *media_count);
 
 /**
  * @brief Iterates through media info from the media database.
- * @details This function gets all media info handles meeting the given @a filter. The @a callback function will be invoked for every retrieved media info.
- * If NULL is passed to the @a filter, no filtering is applied.
- * @param[in] filter The handle to media info filter
- * @param[in] callback The callback function to invoke
+ * @details This function gets all media info handles meeting the given @a filter.
+ *          The @a callback function will be invoked for every retrieved media info.
+ *          If @c NULL is passed to the @a filter, then no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks Do not call updating DB function like media_info_update_to_db(), media_info_refresh_metadata_to_db(), audio_meta_update_to_db(), image_meta_update_to_db() and video_meta_update_to_db()  in your callback function,
+ *                   your callback function is invoked as inline function.
+ *                   So, your callback function is in read state in SQLite. When you are in read state, sometimes you do not update DB.
+ *                   We do not recommend you call updating DB function in callback of foreach function.
+ *
+ * @param[in] filter    The media info handle filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_info_cb().
+ *
  * @see media_content_connect()
  * @see #media_info_cb
  * @see media_info_filter_create()
- *
  */
 int media_info_foreach_media_from_db(filter_h filter, media_info_cb callback, void *user_data);
 
 /**
- * @brief Gets the number of media tag for the passed @a filter in the given @a media ID from the media database.
+ * @brief Gets the count of media tags for the passed @a filter in the given @a media_id from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] media_id The ID of media info
- * @param[in] filter The handle to media filter
- * @param[out] tag_count The count of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  media_id  The ID of the media info
+ * @param[in]  filter    The handle to the media filter
+ * @param[out] tag_count The count of the media tag
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_info_get_tag_count_from_db(const char *media_id, filter_h filter, int *tag_count);
 
 /**
- * @brief Iterates through the media tag in the given @a media @a info from the media database.
- * @details This function gets all media tag associated with the given @a media and calls registered callback function for every retrieved media tag.
- * @param[in] media_id The ID of media info
- * @param[in] filter The handle to media filter
- * @param[in] callback The callback function to invoke
+ * @brief Iterates through the media tag in the given media info from the media database.
+ * @details This function gets all the media tags associated with the given @a media_id and calls registered callback function for every retrieved media tag.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] media_id  The ID of the media info
+ * @param[in] filter    The handle to the media filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_tag_cb().
+ *
  * @see media_content_connect()
  * @see #media_tag_cb
  */
 int media_info_foreach_tag_from_db(const char *media_id, filter_h filter, media_tag_cb callback, void *user_data);
 
 /**
- * @brief Gets the number of bookmark for the passed @a filter in the given @a media ID from the media database.
+ * @brief Gets the number of bookmarks for the passed @a filter in the given media ID from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] media_id The ID of media info
- * @param[in] filter The handle to media filter
- * @param[out] bookmark_count The count of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  media_id        The ID of the media info
+ * @param[in]  filter          The handle to the media filter
+ * @param[out] bookmark_count  The count of the media tag
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_info_get_bookmark_count_from_db(const char *media_id, filter_h filter, int *bookmark_count);
 
 /**
- * @brief Iterates through the media bookmark in the given @a media @a info from the media database.
- * @details This function gets all media bookmark associated with the given @a media and calls registered callback function for every retrieved media bookmark.
- * @param[in] media_id The ID of media info
- * @param[in] filter The handle to media filter
- * @param[in] callback The callback function to invoke
+ * @brief Iterates through the media bookmark in the given media info from the media database.
+ * @details This function gets all media bookmarks associated with the given media and calls registered callback function for every retrieved media bookmark.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] media_id  The ID of the media info
+ * @param[in] filter    The handle to the media filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_bookmark_cb().
+ *
  * @see media_content_connect()
- * @see #media_bookmark_cb
+ * @see media_bookmark_cb()
  */
 int media_info_foreach_bookmark_from_db (const char *media_id, filter_h filter, media_bookmark_cb callback, void *user_data);
 
 /**
- * @brief Gets image metadata for a given media info.
+ * @brief Gets the image metadata for a given media info.
  * @details This function returns an image metadata handle retrieved from the media info.
  *
- * @remark The @a image handle must be released with image_meta_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param [in] media The handle to media info
- * @param[out] image A handle to image meta
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release the @a image handle using image_meta_destroy().
+ *
+ * @param[in]  media  The media info handle
+ * @param[out] image  A handle to image metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see image_meta_destroy()
  */
 int media_info_get_image(media_info_h media, image_meta_h *image);
 
 /**
- * @brief Gets video metadata for a given media info.
+ * @brief Gets video metadata for a given media info.
  * @details This function returns a video metadata handle retrieved from the media info handle.
  *
- * @remark The @a video handle must be released with video_meta_destroy() by you.
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the @a video handle using video_meta_destroy().
  *
- * @param [in] media The handle to media info
+ * @param[in]  media The media info handle
  * @param[out] video A handle to the video meta
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @see video_meta_destroy()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see video_meta_destroy()
  */
 int media_info_get_video(media_info_h media, video_meta_h *video);
 
 /**
- * @brief Gets audio metadata for a given media info.
+ * @brief Gets an audio metadata for a given media info.
  * @details This function returns an audio metadata handle retrieved from the media info handle.
  *
- * @remark The @a audio handle must be released with audio_meta_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param [in] media The handle to media info
+ * @remarks You must release the @a audio handle using audio_meta_destroy().
+ *
+ * @param[in]  media The media info handle
  * @param[out] audio A handle to the audio meta
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see audio_meta_destroy()
  */
 int media_info_get_audio(media_info_h media, audio_meta_h *audio);
 
 /**
- * @brief Gets ID to media info.
+ * @brief Gets the tag ID for the media info.
+ * @since_tizen 2.3
  *
+ * @param[in]  media The media info handle
+ * @param[out] media_id     The ID of the media tag
  *
- * @param [in] media_id The ID if media info
- * @param [out] media_id The ID of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_media_id(media_info_h media, char **media_id);
 
 /**
- * @brief Gets path to media info.
+ * @brief Gets the path to the media info.
+ * @since_tizen 2.3
  *
- * @remarks @a path must be released with free() by you.
+ * @remarks You must release @a path using free().
  *
- * @param[in] media The handle to media info
- * @param[out] path The path of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  media The media info handle
+ * @param[out] path  The path of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
  */
 int media_info_get_file_path(media_info_h media, char **path);
 
 /**
- * @brief Gets name to media info.
+ * @brief Gets the name of the media info.
+ * @since_tizen 2.3
  *
- * @remarks @a name must be released with free() by you.
+ * @remarks You must release @a name using free().
  *
- * @param[in] media The handle to media info
- * @param[out] name The name of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media The media info handle
+ * @param[out] name  The name of media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_display_name(media_info_h media, char **name);
 
 /**
- * @brief Gets media info's content type.
+ * @brief Gets the content type of the media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] type The type of media content(#media_content_type_e)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media The media info handle
+ * @param[out] type  The type of the media content (#media_content_type_e)
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_media_type(media_info_h media, media_content_type_e *type);
 
 /**
- * @brief Gets name to media info.
+ * @brief Gets the MIME type from the media info.
+ * @since_tizen 2.3
  *
- * @remarks @a mime_type must be released with free() by you.
+ * @remarks You must release @a mime_type using free().
  *
- * @param[in] media The handle to media info
- * @param[out] mime_type The mime type of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media     The media info handle
+ * @param[out] mime_type The MIME type of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_mime_type(media_info_h media, char **mime_type);
 
 /**
- * @brief Gets media file's size.
+ * @brief Gets the media file size.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] size The type of media content
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media The media info handle
+ * @param[out] size  The type of the media content
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_size(media_info_h media, unsigned long long *size);
 
 /**
- * @brief Gets added time.
+ * @brief Gets the addition time of the media.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] added_time The added time to DB
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media      The media info handle
+ * @param[out] added_time The added time to the DB
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_added_time(media_info_h media, time_t *added_time);
 
 /**
- * @brief Gets media info's date of modification.
+ * @brief Gets the date of modification of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] time The date of modification of File. Get from File
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media The media info handle
+ * @param[out] time  The date of modification of the file \n
+ *                   Get from the file.
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_modified_time(media_info_h media, time_t *time);
 
+
 /**
- * @brief Gets the thumbnail to media info.
+ * @brief Gets the thumbnail of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a path must be released with free() by you.
+ * @remarks You must release @a path using free().
  *
- * @param[in] media The handle to media info
- * @param[out] path The path to thumbnail of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media The media info handle
+ * @param[out] path  The path to the thumbnail of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_thumbnail_path(media_info_h media, char **path);
 
 /**
- * @brief Gets the description to media info.
+ * @brief Gets the description of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a description must be released with free() by you.
+ * @remarks You must release @a description using free().
  *
- * @param[in] media The handle to media info
- * @param[out] description The description of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media       The media info handle
+ * @param[out] description The description of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_description(media_info_h media, char **description);
 
 /**
- * @brief Gets media info's longitude.
+ * @brief Gets the longitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] longitude The longitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media     The media info handle
+ * @param[out] longitude The longitude of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_longitude(media_info_h media, double* longitude);
 
 /**
- * @brief Gets media info's latitude.
+ * @brief Gets the latitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] latitude The latitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  media    The media info handle
+ * @param[out] latitude The latitude of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
  */
 int media_info_get_latitude(media_info_h media, double* latitude);
 
 /**
- * @brief Gets media info's altitude of modification.
+ * @brief Gets the altitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] altitude The altitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media    The media info handle
+ * @param[out] altitude The altitude of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_altitude(media_info_h media, double* altitude);
 
+
 /**
- * @brief Gets media info's rating.
+ * @brief Gets the rating of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] rating The rating of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media  The media info handle
+ * @param[out] rating The rating of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_rating(media_info_h media, int *rating);
 
 /**
- * @brief Gets the given media info's favorite status.
+ * @brief Gets the favorite status of media info.
+ * @since_tizen 2.3
  *
- * @param [in] media The handle to media info
- * @param [out] favorite The media favorite status(non zero if favorite, 0 if not favorite)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media     The media info handle
+ * @param[out] favorite  @c true if media info is set as favorite, 
+ *                       otherwise @c false if media info is not set as favorite
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_favorite(media_info_h media, bool* favorite);
 
 /**
- * @brief Gets the author to media info.
+ * @brief Gets the author of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a author must be released with free() by you.
+ * @remarks You must release @a author using free().
  *
- * @param[in] media The handle to media info
- * @param[out] author The author of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media  The media info handle
+ * @param[out] author The author of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_author(media_info_h media, char **author);
 
 /**
- * @brief Gets the provider to media info.
+ * @brief Gets the provider of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a provider must be released with free() by you.
+ * @remarks You must release @a provider using free().
  *
- * @param[in] media The handle to media info
- * @param[out] provider The provider of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media    The media info handle
+ * @param[out] provider The provider of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_provider(media_info_h media, char **provider);
 
 /**
- * @brief Gets the content name to media info.
+ * @brief Gets the content name of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a content_name must be released with free() by you.
+ * @remarks You must release @a content_name using free().
  *
- * @param[in] media The handle to media info
- * @param[out] content_name The content name of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media        The media info handle
+ * @param[out] content_name The content name of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_content_name(media_info_h media, char **content_name);
 
 /**
- * @brief Gets the title to media info.
+ * @brief Gets the title of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a title must be released with free() by you.
+ * @remarks You must release @a title using free().
  *
- * @param[in] media The handle to media info
- * @param[out] title The title of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media  The media info handle
+ * @param[out] title  The title of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_title(media_info_h media, char **title);
 
 /**
- * @brief Gets the provider to media info.
+ * @brief Gets the category of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a category must be released with free() by you.
+ * @remarks You must release @a category using free().
  *
- * @param[in] media The handle to media info
- * @param[out] category The category of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media    The media info handle
+ * @param[out] category The category of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_category(media_info_h media, char **category);
 
 /**
- * @brief Gets the location_tag to media info.
+ * @brief Gets the location tag of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a location_tag must be released with free() by you.
+ * @remarks You must release @a location_tag using free().
  *
- * @param[in] media The handle to media info
- * @param[out] location_tag The location of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media        The media info handle
+ * @param[out] location_tag The location of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_location_tag(media_info_h media, char **location_tag);
 
 /**
- * @brief Gets the age_rating to media info.
+ * @brief Gets the age_rating of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a age_rating must be released with free() by you.
+ * @remarks You must release @a age_rating using free().
  *
- * @param[in] media The handle to media info
- * @param[out] age_rating The age rating of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media      The media info handle
+ * @param[out] age_rating The age rating of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_age_rating(media_info_h media, char **age_rating);
 
 /**
- * @brief Gets the keyword to media info.
+ * @brief Gets the keyword of media info.
+ * @since_tizen 2.3
  *
- * @remarks @a keyword must be released with free() by you.
+ * @remarks You must release @a keyword using free().
  *
- * @param[in] media The handle to media info
- * @param[out] keyword The keyword of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media   The media info handle
+ * @param[out] keyword The keyword of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_keyword(media_info_h media, char **keyword);
 
 /**
- * @brief Checks whether the media is protected via drm.
+ * @brief Checks whether the media is protected via DRM.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] is_drm /@a true if the drm media,
- *                    /@a false if not drm.
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media  The media info handle
+ * @param[out] is_drm @c true if media is DRM media,
+ *                    otherwise @c false if media is not DRM media
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_is_drm(media_info_h media, bool *is_drm);
 
 /**
- * @brief Gets media info's storage_type.
+ * @brief Gets the storage type of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[out] storage_type The storage type of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in]  media        The media info handle
+ * @param[out] storage_type The storage type of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_get_storage_type(media_info_h media, media_content_storage_e *storage_type);
 
 /**
  * @brief Gets the media info from the media database.
  *
- * @details This function creates a new media handle from the media database by the given media_id.
- * media info will be created, which is filled with info information.
+ * @details This function creates a new media handle from the media database by the given @a media_id.
+ *          Media info will be created and filled with information.
  *
- * @remarks @a media must be released with media_tag_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param[in] media_id The ID of media info
- * @param[out] media The media handle associated with the media ID
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a media using media_tag_destroy().
+ *
+ * @param[in]  media_id The ID of media info
+ * @param[out] media    The media handle associated with the media ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_info_destroy()
- *
  */
 int media_info_get_media_from_db(const char *media_id, media_info_h *media);
 
 /**
- * @brief Sets display name to media info.
+ * @brief Sets the display name of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] display_name The display name of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media        The media info handle
+ * @param[in] display_name The display name of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post media_info_update_to_db().
  *
  */
 int media_info_set_display_name(media_info_h media, const char *display_name);
 
 /**
- * @brief Sets description to media info.
+ * @brief Sets the description of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] description The description of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media       The media info handle
+ * @param[in] description The description of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post media_info_update_to_db().
  *
  */
 int media_info_set_description(media_info_h media, const char *description);
 
 /**
- * @brief Sets longitude to media info.
+ * @brief Sets the longitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] longitude The longitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media     The media info handle
+ * @param[in] longitude The longitude of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db().
  */
 int media_info_set_longitude(media_info_h media, double longitude);
 
 /**
- * @brief Sets latitude to media info.
+ * @brief Sets the latitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] latitude The latitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media    The media info handle
+ * @param[in] latitude The latitude of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db().
  */
 int media_info_set_latitude(media_info_h media, double latitude);
 
 /**
- * @brief Sets altitude to media info.
+ * @brief Sets the altitude of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] altitude The altitude of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media    The media info handle
+ * @param[in] altitude The altitude of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db().
  */
 int media_info_set_altitude(media_info_h media, double altitude);
 
+
 /**
- * @brief Sets rating to media info.
+ * @brief Sets the rating of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] rating The rating of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media  The media info handle
+ * @param[in] rating The rating of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db().
  */
 int media_info_set_rating(media_info_h media, int rating);
 
 /**
- * @brief Sets favorite to media info.
+ * @brief Sets the favorite of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] favorite The favorite of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in] media    The media info handle
+ * @param[in] favorite Set @c true to set the media info as favorite,
+ *                     otherwise set @c false to not set the media info as favorite
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_set_favorite(media_info_h media, bool favorite);
 
 /**
- * @brief Sets author to media info.
+ * @brief Sets the author of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] author The author of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in] media  The media info handle
+ * @param[in] author The author of the media info
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_set_author(media_info_h media, const char *author);
 
 /**
- * @brief Sets provider to media info.
+ * @brief Sets the provider of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] provider The provider of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @param[in] media    The media info handle
+ * @param[in] provider The provider of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_info_set_provider(media_info_h media, const char *provider);
 
 /**
- * @brief Sets content name to media info.
+ * @brief Sets the content name of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] content_name The content name of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media        The media info handle
+ * @param[in] content_name The content name of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_content_name(media_info_h media, const char *content_name);
 
 /**
- * @brief Sets category to media info.
+ * @brief Sets the category of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] category The category of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media    The media info handle
+ * @param[in] category The category of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_category(media_info_h media, const char *category);
 
 /**
- * @brief Sets location tag to media info.
+ * @brief Sets the location tag of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] location_tag The location of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media        The media info handle
+ * @param[in] location_tag The location of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_location_tag(media_info_h media, const char *location_tag);
 
 /**
- * @brief Sets age rating to media info.
+ * @brief Sets the age rating of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] age_rating The age rating of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media      The media info handle
+ * @param[in] age_rating The age rating of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_age_rating(media_info_h media, const char *age_rating);
 
 /**
- * @brief Sets keyword to media info.
+ * @brief Sets the keyword of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] keyword The keyword of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media   The media info handle
+ * @param[in] keyword The keyword of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_keyword(media_info_h media, const char *keyword);
 
 /**
  * @brief Updates the media info to the media database.
+ * 
+ * @details The function updates the given media info in the media database.
  *
- * @details The function updates the given media info in the media database. The function should be called after any change in media, to be updated to the media
- * database. For example, after using media_info_set_display_name() for setting the name of the media, media_info_update_to_db() function should be called so as to update
- * the given media info attibutes in the media database.
+ * @since_tizen 2.3
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
  *
- * @param[in] media The handle to media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks The function should be called after any change in media, to be updated to the media
+ *          database. For example, after using media_info_set_display_name()
+ *          for setting the name of the media, the media_info_update_to_db() function should be called so as to update
+ *          the given media info attributes in the media database.
+ *
+ * @param[in] media The media info handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_info_set_display_name()
  * @see media_info_set_description()
@@ -889,78 +1258,133 @@ int media_info_set_keyword(media_info_h media, const char *keyword);
  * @see media_info_set_category()
  * @see media_info_set_location_tag()
  * @see media_info_set_age_rating()
- *
  */
 int media_info_update_to_db(media_info_h media);
 
 /**
- * @brief Refresh the metadata of media to media database.
+ * @brief Refreshes the media metadata to the media database.
+ * @since_tizen 2.3
  *
- * @param[in] media_id The ID of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
+ *
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using  this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you should add all privilege.
+ *
+ * @param[in] media_id The ID of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_info_refresh_metadata_to_db(const char *media_id);
 
 /**
- * @brief Sets added_time to media info.
+ * @brief Sets the added time of media info.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] added_time The added time of media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in] media      The media info handle
+ * @param[in] added_time The added time of the media info
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post media_info_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_info_update_to_db()
  */
 int media_info_set_added_time(media_info_h media, time_t added_time);
 
 /**
  * @brief Moves the media info to the given destination path in the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write \n
+ *                   %http://tizen.org/privilege/mediastorage \n
+ *                   %http://tizen.org/privilege/externalstorage
  *
- * @param[in] media The handle to media info
+ * @remarks You must add privilege http://tizen.org/privilege/content.write. And You add more privilege depending on your choice of contents path. \n
+ *                   If you want to access only internal storage by using  this API, you should add privilege http://tizen.org/privilege/mediastorage. \n
+ *                   Or if you want to access only external storage by using this API, you shold add privilege http://tizen.org/privilege/externalstorage. \n
+ *                   If you can access both storage, you should add all privilege.
+ *
+ * @param[in] media    The media info handle
  * @param[in] dst_path The path of destination
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_info_move_to_db(media_info_h media, const char* dst_path);
 
 /**
- * @brief Creates a thumbnail image for given the media, asynchronously.
- * @details This function creates an thumbnail image for given media item and and calls registered callback function for completion of creating the thumbnail.
- * If there already exist a thumbnail for given media, then the path of thumbnail will be return in callback function.
+ * @brief Creates a thumbnail image for the given media, asynchronously.
+ * @details This function creates an thumbnail image for given media item and calls registered callback function for completion of creating the thumbnail.
+ *          If a thumbnail already exists for the given media, then the path of thumbnail will be returned in callback function.
+ *
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @param[in] callback The callback function to invoke
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] media     The media info handle
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter ( Especially, if the request is duplicated, this error returns. )
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter (Especially, if the request is duplicated, this error returns.)
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  */
 int media_info_create_thumbnail(media_info_h media, media_thumbnail_completed_cb callback, void *user_data);
 
-
 /**
- * @brief Cancel to creates a thumbnail image for given the media.
+ * @brief Cancels the creation of image's thumbnail for the given media.
+ * @since_tizen 2.3
  *
- * @param[in] media The handle to media info
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] media The media info handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
  * @see media_content_connect()
  */
index 8cfd764..9c8c685 100755 (executable)
@@ -40,6 +40,19 @@ extern "C" {
 #undef LOG_TAG
 #endif
 
+
+/**
+ * @addtogroup CAPI_CONTENT_MEDIA_INFO_MODULE
+* @{
+*
+* @file media_info_private.h
+* @brief This file contains the media info API and related structure and enumeration. \n
+*        Description of the audio, video,image content involves: album, artist, album_artist, author, genre and description tags. \n
+*        Parameters of the recording are also supported, as: format, bitrate, duration, size etc. \n
+*        Defenitions of media DB fields and tables, operations with media data relating to DB and handling with media filter attributes.
+*/
+
+
 #define LOG_TAG "CAPI_CONTENT_MEDIA_CONTENT"
 
 #define SAFE_STRLCPY(dst, src, n)      ((g_strlcpy(dst, src, n) < n) ? TRUE : FALSE)
@@ -54,14 +67,11 @@ extern "C" {
 #define MEDIA_CONTENT_INSERT_FILES_PATH                tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/")
 
 #define MAX_QUERY_SIZE 4096
-#define MIN_QUERY_SIZE 256
 #define DEFAULT_QUERY_SIZE 1024
-#define MAX_KEYWORD_SIZE 2048
 #define COLLATE_STR_SIZE 32
 #define MEDIA_CONTENT_UUID_SIZE        36
 #define BATCH_REQUEST_MAX 300
 
-
 typedef enum {
        MEDIA_CONTENT_TYPE = 0,
        MEDIA_THUMBNAIL_TYPE,
@@ -69,14 +79,6 @@ typedef enum {
 } media_info_error_type_e;
 
 typedef enum {
-       Table_Media,
-       Table_Folder,
-       Table_Bookmark,
-       Table_Tag,
-       Table_TagMap,
-} media_info_table_e;
-
-typedef enum {
        MEDIA_TAG_ADD,
        MEDIA_TAG_REMOVE,
        MEDIA_TAG_UPDATE_TAG_NAME,
@@ -242,26 +244,6 @@ typedef struct
 
 typedef struct
 {
-       char *name;
-}media_artist_s;
-
-typedef struct
-{
-       char *name;
-}media_genre_s;
-
-typedef struct
-{
-       char *name;
-}media_composer_s;
-
-typedef struct
-{
-       char *name;
-}media_year_s;
-
-typedef struct
-{
        char *media_id;         // media_uuid
        int function;                   // Add, remove, modify
        char *tag_name;         // tag_name
@@ -538,10 +520,6 @@ typedef struct _media_content_cb_data {
 #define SELECT_MEDIA_FROM_MEDIA                        "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND media_uuid='%s'"
 #define SELECT_MEDIA_BY_PATH                           "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND path='%q'"
 #define SELECT_MEDIA_FROM_ALBUM                        "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND album_id=%d"
-#define SELECT_MEDIA_FROM_ARTIST                       "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND artist='%q'"
-#define SELECT_MEDIA_FROM_GENRE                        "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND genre='%q'"
-#define SELECT_MEDIA_FROM_COMPOSER             "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND author='%q'"
-#define SELECT_MEDIA_FROM_YEAR                 "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND year='%q'"
 #define SELECT_MEDIA_FROM_GROUP                        "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND %s='%q'"
 #define SELECT_MEDIA_FROM_GROUP_NULL   "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND %s IS NULL"
 #define SELECT_MEDIA_FROM_FOLDER                       "SELECT "MEDIA_INFO_ITEM" FROM "DB_TABLE_MEDIA" WHERE validity=1 AND folder_uuid='%q'"
@@ -669,6 +647,7 @@ int _media_db_get_media_group_item_count(const char *group_name, media_group_e g
 int _media_db_get_media_group_item(const char *group_name, media_group_e group, filter_h filter, media_info_cb callback, void *user_data);
 
 /**
+ * @internal
  * @brief Creates a media filter attribute handle.
  * @details This function creates a media filter attribute handle. The handle can be
  * used to convert to attributes of database from attributes of user.
@@ -678,12 +657,14 @@ int _media_db_get_media_group_item(const char *group_name, media_group_e group,
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  * @see media_filter_attribute_destory()
  *
  */
 int _media_filter_attribute_create(attribute_h *attr);
 
 /**
+ * @internal
  * @brief Add the attributes to the handle.
  * @details This function add the attribute to handle.
  * @param[in] filter The handle to media filter attribute
@@ -693,12 +674,14 @@ int _media_filter_attribute_create(attribute_h *attr);
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  * @see media_filter_attribute_remove()
  *
  */
 int _media_filter_attribute_add(attribute_h atrr, char *user_attr, char *platform_attr);
 
 /**
+ * @internal
  * @brief Destroys a media filter attribute handle.
  * @details The function frees all resources related to the media filter attribute handle. The filter attribute
  * handle no longer can be used to perform any operation. A new handle
@@ -708,12 +691,14 @@ int _media_filter_attribute_add(attribute_h atrr, char *user_attr, char *platfor
  * @return 0 on success, otherwise a negative error value.
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  * @see media_filter_create()
  *
  */
 int _media_filter_attribute_destory(attribute_h attr);
 
 /**
+ * @internal
  * @brief Replace to platform attributes from user attributes.
  * @details This function replace to platform attributes from user attributes to generate the WHERE clause
  * @param[in] filter The handle to media filter attribute
@@ -723,11 +708,31 @@ int _media_filter_attribute_destory(attribute_h attr);
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  * @see media_filter_attribute_create()
  * @see media_filter_attribute_destory()
  *
  */
 int _media_filter_attribute_generate(attribute_h attr, char *condition, media_content_collation_e collate_type, char **generated_condition);
+
+
+/**
+ * @internal
+ * @brief Replace to platform attributes from user attributes.
+ * @details This function replace to platform attributes from user attributes to generate the WHERE clause
+ * @param[in] filter The handle to media filter attribute
+ * @param[in] attr The attribute
+ * @param[in] generated_option The handle to generated option
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED Filed DB
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ * @see media_filter_attribute_create()
+ * @see media_filter_attribute_destory()
+ *
+ */
+
 int _media_filter_attribute_option_generate(attribute_h attr, filter_h filter, char **generated_option);
 
 #define FONT_COLOR_RESET    "\033[0m"
index ba3cdb0..e6ccea9 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
-
+/**
+ * @file
+ * @brief This file contains the playlist API and functions related with handling playlists. \n
+ *        Functions include operations to get the number of playlists, the number of media-info for the playlist  \n
+ *        and all media files in the playlist, to clone, destroy, insert and delete playlist from DB,  \n
+ *        to handle with name, ID, thumbnail, played order and media info of the playlist.
+ */
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
  * @{
  */
 
+
 /**
- * @brief Gets the number of playlist for the passed @a filter from the media database.
+ * @brief Gets the number of playlists for the passed @a filter from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] filter The handle to filter.
- * @param[out] playlist_count The count of media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  filter         The handle to the filter
+ * @param[out] playlist_count The count of the media playlist
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_playlist_get_playlist_count_from_db(filter_h filter, int *playlist_count);
 
 /**
- * @brief Iterates through the media playlist with optional @a filter from the media database.
- * @details This function gets all media playlist handles meeting the given filter.
- * The callback function will be invoked for every retrieved media playlist.
- * If NULL is passed to the filter, no filtering is applied.
- *
- * @param [in] filter The handle to audio filter
- * @param [in] callback The callback function to invoke
- * @param [in] user_data User data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @brief Iterates through the media playlists with an optional @a filter from the media database.
+ * @details This function gets all media playlists meeting the given filter.
+ *          The callback function will be invoked for every retrieved media playlist.
+ *          If @c NULL is passed to the filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] filter    The handle to the audio filter
+ * @param[in] callback  The callback function to be invoked
+ * @param[in] user_data The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_playlist_cb().
- * @see #media_playlist_cb
+ *
+ * @see media_playlist_cb()
  * @see media_content_connect()
  * @see media_filter_create()
- *
  */
 int media_playlist_foreach_playlist_from_db(filter_h filter, media_playlist_cb callback, void *user_data);
 
 /**
- * @brief Gets number of media info for the given playlist present in the media database.
+ * @brief Gets the number of the media info for the given playlist present in the media database.
+ * @since_tizen 2.3
  *
- * @param [in] playlist_id The ID of media playlist
- * @param [in] filter The handle to media filter
- * @param [out] media_count The number of media items
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  playlist_id  The ID of the media playlist
+ * @param[in]  filter       The media filter handle
+ * @param[out] media_count  The number of media items
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_playlist_get_media_count_from_db(int playlist_id, filter_h filter, int *media_count);
 
 /**
- * @brief Iterates through the media files with optional @a filter in the given @a audio @a playlist from the media database.
+ * @brief Iterates through the media files with an optional @a filter in the given audio playlist from the media database.
  * @details This function gets all media files associated with the given media playlist and
- * meeting desired filter option and calls registered callback function for
- * every retrieved media info. If NULL is passed to the @a filter, no filtering is applied.
- *
- * @param [in] playlist_id The ID of media playlist
- * @param [in] filter The handle to audio filter
- * @param [in] callback The callback function to invoke
- * @param [in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *          meeting desired filter option and calls registered callback function for
+ *          every retrieved media info. If @c NULL is passed to the @a filter, no filtering is applied.
+ *
+ * @since_tizen 2.3
+ *
+ * @param[in] playlist_id The ID of the media playlist
+ * @param[in] filter      The audio filter handle
+ * @param[in] callback    The callback function to be invoked
+ * @param[in] user_data   The user data to be passed to the callback function
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_info_cb().
- * @see #media_info_cb
+ *
+ * @see media_info_cb()
  * @see media_content_connect()
  * @see media_filter_create()
- *
  */
 int media_playlist_foreach_media_from_db(int playlist_id, filter_h filter, playlist_member_cb callback, void *user_data);
 
 /**
- * @brief Inserts a new playlist with given name in the media database.
+ * @brief Inserts a new playlist with the given name into the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @remarks You must release the created handle using media_playlist_destroy().
+ *
+ * @param[in]  name     The name of the inserted playlist
+ * @param[out] playlist A created handle to media playlist
  *
- * @remark The created handle must be released with media_playlist_destroy() by you.
- * @param [in] name The name of the inserted playlist
- * @param [out] playlist A created handle to media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @retval #MEDIA_CONTENT_ERROR_INVALID_OPERATION Invalid Operation
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB Operation failed
- * @retval #MEDIA_CONTENT_ERROR_DB_BUSY DB Operation BUSY
- * @retval #MEDIA_CONTENT_ERROR_NETWORK Network Fail
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_OPERATION Invalid operation
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB Operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_BUSY           DB Operation busy
+ * @retval #MEDIA_CONTENT_ERROR_NETWORK           Network fail
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_playlist_delete_from_db()
- *
  */
 int media_playlist_insert_to_db(const char *name, media_playlist_h *playlist);
 
 /**
  * @brief Deletes the given playlist from the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
  *
- * @param [in] playlist The handle to media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] playlist_id The ID of media playlist
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_playlist_insert_to_db()
- *
  */
 int media_playlist_delete_from_db(int playlist_id);
 
 /**
  * @brief Gets the media playlist from the media database.
  *
- * @details This function creates a new media playlist handle from the media database by the given playlist_id.
- * media playlist will be created, which is filled with playlist information.
+ * @details This function creates a new media playlist handle from the media database by the given @a playlist_id.
+ *          The media playlist will be created and will be filled with the playlist information.
  *
- * @remarks @a playlist must be released with media_playlist_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param[in] playlist_id The ID of media playlist
- * @param[out] playlist The media playlist handle associated with the playlist ID
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a playlist using media_playlist_destroy().
+ *
+ * @param[in]  playlist_id The ID of the media playlist
+ * @param[out] playlist    The media playlist handle associated with the playlist ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_playlist_destroy()
- *
  */
 int media_playlist_get_playlist_from_db(int playlist_id, media_playlist_h *playlist);
 
 /**
  * @brief Destroys a playlist handle.
- * @details Function frees all resources related to playlist handle. This
- * handle no longer can be used to perform any operation. New handle has to
- * be created before next usage.
+ * @details This function frees all resources related to the playlist handle. This
+ *          handle no longer can be used to perform any operation. A new handle has to
+ *          be created before next usage.
  *
- * @param [in] playlist The handle to media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @param[in] playlist The media playlist handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see media_playlist_clone()
- * @pre Get copy of playlist handle by calling media_playlist_clone() or media_playlist_insert_to_db()
- * @see media_playlist_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get a copy of playlist handle by calling media_playlist_clone() or media_playlist_insert_to_db().
  *
+ * @see media_playlist_clone()
  */
 int media_playlist_destroy(media_playlist_h playlist);
 
 /**
- * @brief Clones playlist handle.
+ * @brief Clones playlist handle.
  * @details This function copies the media playlist handle from a source to
- * destination. There is no media_playlist_create() function. The media_playlist_h is created internally and available through 
- * media playlist foreach function such as media_playlist_foreach_playlist_from_db(). To use this handle outside of these foreach functions, 
- * use this function.
+ *          destination. There is no media_playlist_create() function. The media_playlist_h is created internally and available through
+ *          media playlist foreach function such as media_playlist_foreach_playlist_from_db().
+ *          To use this handle outside of these foreach functions, use this function.
  *
- * @remark The destination handle must be released with media_playlist_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param [in] src The source handle to media playlist
- * @param [out] dst A destination handle to media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks The destination handle must be released using media_playlist_destroy().
+ *
+ * @param[in]  src  The source handle of a media playlist
+ * @param[out] dst  The destination handle to a media playlist
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see media_playlist_destroy()
  * @see media_playlist_foreach_playlist_from_db()
  */
 int media_playlist_clone(media_playlist_h *dst, media_playlist_h src);
 
 /**
- * @brief Gets media playlist's ID.
+ * @brief Gets the media playlist ID.
+ * @since_tizen 2.3
+ *
+ * @param[in]  playlist    The media playlist handle
+ * @param[out] playlist_id The ID of the media playlist
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] playlist The handle to media playlist
- * @param [out] playlist_id The ID of media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_playlist_get_playlist_id(media_playlist_h playlist, int *playlist_id);
 
 /**
  * @brief Gets a name of the playlist.
+ * @since_tizen 2.3
  *
- * @remarks @a playlist_name must be released with free() by you.
+ * @remarks You must release @a playlist_name using free().
  *
- * @param [in] playlist The handle to media playlist
- * @param [out] playlist_name The playlist name
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in]  playlist      The media playlist handle
+ * @param[out] playlist_name The playlist name
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_playlist_get_name(media_playlist_h playlist, char **playlist_name);
 
 /**
- * @brief Sets the playlist name.
+ * @brief Sets the name of the playlist.
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
+ * @param[in] playlist      The media playlist handle
  * @param[in] playlist_name The name of the media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @post media_playlist_update_to_db()
  *
  */
@@ -239,114 +326,157 @@ int media_playlist_set_name(media_playlist_h playlist, const char *playlist_name
 
 /**
  * @brief Gets a thumbnail path of the playlist.
+ * @since_tizen 2.3
  *
- * @remarks @a path must be released with free() by you.
+ * @remarks You must release @a path using free().
  *
- * @param [in] playlist The handle to media playlist
- * @param [out] path The path of thumbnail
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @param[in]  playlist The media playlist handle
+ * @param[out] path     The path of the thumbnail
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_playlist_get_thumbnail_path(media_playlist_h playlist, char **path);
 
 /**
  * @brief Sets the thumbnail path of the playlist.
+ * @since_tizen 2.3
+ *
+ * @param[in] playlist The media playlist handle
+ * @param[in] path     The path of the thumbnail
  *
- * @param[in] playlist The handle to media playlist
- * @param[in] path The path of thumbnail
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @post media_playlist_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_playlist_update_to_db()
  */
 int media_playlist_set_thumbnail_path(media_playlist_h playlist, const char *path);
 
 
 /**
- * @brief Sets the played order in the playlist.
+ * @brief Sets the playing order in the playlist.
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
- * @param[in] playlist_member_id The ID to member of playlist
- * @param[in] play_order The played order
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] playlist           The media playlist handle
+ * @param[in] playlist_member_id The playlist member ID
+ * @param[in] play_order         The playing order
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @post media_playlist_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_playlist_update_to_db()
  */
 int media_playlist_set_play_order(media_playlist_h playlist, int playlist_member_id, int play_order);
 
 /**
  * @brief Adds a new media info to the playlist.
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
- * @param[in] media_id The ID to media info which is added
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] playlist The media playlist handle
+ * @param[in] media_id The ID to the media info which is added
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post media_playlist_update_to_db()
+ *
  * @see media_content_connect()
  * @see media_playlist_remove_media()
- *
  */
 int media_playlist_add_media(media_playlist_h playlist, const char *media_id);
 
 /**
- * @brief Removes the playlist member related with media from the given playlist.
+ * @brief Removes the playlist members related with the media from the given playlist.
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
- * @param[in] playlist_member_id The ID to member of playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] playlist           The media playlist handle
+ * @param[in] playlist_member_id The playlist member ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post media_playlist_update_to_db()
+ *
  * @see media_content_connect()
  * @see media_playlist_add_media()
- *
  */
 int media_playlist_remove_media(media_playlist_h playlist, int playlist_member_id);
 
 /**
- * @brief Gets the played order in the playlist.
+ * @brief Gets the played order of the playlist.
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
- * @param[in] playlist_member_id The ID to member of playlist
- * @param [out] play_order The played order
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] playlist           The media playlist handle
+ * @param[in] playlist_member_id The playlist member ID
+ * @param[out] play_order        The played order
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_playlist_get_play_order(media_playlist_h playlist, int playlist_member_id, int *play_order);
 
 /**
  * @brief Updates the media playlist to the media database.
  *
- * @details The function updates the given media playlist in the media database. The function should be called after any change in playlist, to be updated to the media 
- * database. For example, after using media_playlist_set_name() for setting the name of the playlist, media_playlist_update_to_db() function should be called so as to update 
- * the given playlist attibutes in the media database.
+ * @details The function updates the given media playlist in the media database.
+ *          The function should be called after any change in the playlist, to be updated to the media database.
+ *          For example, after using media_playlist_set_name() for setting the name of the playlist, the
+ *          media_playlist_update_to_db() function should be called so as to update
+ *          the given playlist attributes in the media database.
+ *
+ * @since_tizen 2.3
  *
- * @param[in] playlist The handle to media playlist
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] playlist The media playlist handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_playlist_destroy()
  * @see media_playlist_add_media()
  * @see media_playlist_remove_media()
  * @see media_playlist_set_name()
  * @see media_playlist_set_play_order()
- *
  */
 int media_playlist_update_to_db(media_playlist_h playlist);
 
index 2d0eee8..355611a 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
+/**
+ * @file media_tag.h
+ * @brief This file contains the media tag API and functions related with handling tags. \n
+ *        Functions include operations to get the number and content of the tag, the number of media files  \n
+ *        and all media items in the tag, to clone, destroy, insert and delete tag from DB,  \n
+ *        to handle with name, ID, and media info of the tag.
+ */
+
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_TAG_MODULE
@@ -33,107 +41,153 @@ extern "C" {
 
 /**
  * @brief Inserts a new tag in the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @remarks The created tag handle must be released using media_tag_destroy().
+ *
+ * @param[in]  tag_name The tag name to be inserted
+ * @param[out] tag      The created handle to the media tag
  *
- * @remark The created tag handle must be released with media_tag_destroy() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] tag_name The tag name to be inserted
- * @param[out] tag A created handle to media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_tag_delete_from_db()
  * @see media_tag_destroy()
- *
  */
 int media_tag_insert_to_db(const char *tag_name, media_tag_h *tag);
 
 /**
  * @brief Deletes a given tag from the media database.
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] tag_id The ID of media tag
  *
- * @param[in] tag The handle to media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_tag_insert_to_db()
- *
  */
 int media_tag_delete_from_db(int tag_id);
 
 /**
- * @brief Gets the number of tag for the passed @a filter from the media database.
+ * @brief Gets the count of the tag for the passed @a filter from the media database.
+ * @since_tizen 2.3
+ *
+ * @param[in]  filter    The handle to the filter
+ * @param[out] tag_count The count of the media tag
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] filter The handle to filter
- * @param[out] tag_count The count of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_tag_get_tag_count_from_db(filter_h filter, int *tag_count);
 
 /**
  * @brief Iterates through tags from the media database.
  * @details This function gets all tags meeting a desired @a filter
- * and calls a registered callback function for every retrieved tag. If NULL is passed to the @a filter, no filtering is applied.
+ *          and calls a registered callback function for every retrieved tag.
+ *          If @c NULL is passed to the @a filter, no filtering is applied.
  *
- * @param[in] filter The handle to tag filter
- * @param[in] callback The callback function to invoke
+ * @since_tizen 2.3
+ *
+ * @param[in] filter    The tag filter handle
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_tag_cb().
+ *
  * @see media_content_connect()
  * @see #media_tag_cb
  * @see media_filter_create()
- *
  */
 int media_tag_foreach_tag_from_db (filter_h filter, media_tag_cb callback, void *user_data);
 
 /**
  * @brief Gets the number of media files for the passed @a filter in the given @a tag from the media database.
+ * @since_tizen 2.3
  *
- * @param[in] tag_id The ID of media tag
- * @param[in] filter The handle to media filter
+ * @param[in]  tag_id      The ID of the media tag
+ * @param[in]  filter      The handle to the media filter
  * @param[out] media_count The count of media items
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_FAILED         DB operation failed
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
- * @see media_content_connect()
  *
+ * @see media_content_connect()
  */
 int media_tag_get_media_count_from_db (int tag_id, filter_h filter, int *media_count);
 
 /**
  * @brief Iterates through media items for a given tag from the media database.
  * @details This function gets all media items associated with a given tag and
- * meeting a desired @a filter and calls a registered callback function for
- * every retrieved media item. If NULL is passed to the @a filter, no filtering is applied.
+ *          meeting a desired @a filter and calls a registered callback function for
+ *          every retrieved media item. If @c NULL is passed to the @a filter, no filtering is applied.
  *
- * @param[in] tag_id The ID of media tag
- * @param[in] filter The handle to media filter
- * @param[in] callback The callback function to invoke
+ * @since_tizen 2.3
+ *
+ * @param[in] tag_id    The ID of the media tag
+ * @param[in] filter    The handle to the media filter
+ * @param[in] callback  The callback function to be invoked
  * @param[in] user_data The user data to be passed to the callback function
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post This function invokes media_info_cb().
+ *
  * @see media_content_connect()
- * @see #media_info_cb
+ * @see media_info_cb()
  * @see media_filter_create()
  */
 int media_tag_foreach_media_from_db(int tag_id, filter_h filter, media_info_cb callback, void *user_data);
@@ -141,151 +195,206 @@ int media_tag_foreach_media_from_db(int tag_id, filter_h filter, media_info_cb c
 /**
  * @brief Clones the media tag.
  * @details This function copies the media tag handle from a source to destination.
- * There is no media_tag_create() function. The media_tag_h is created internally and available through media tag foreach function 
- * such as media_tag_foreach_tag_from_db().
- * To use this handle outside of these foreach functions, use this function.
- * @remark The destination handle must be released with media_tag_destroy() by you.
- *
- * @param[out] dst A destination handle to media tag
- * @param[in] src The source handle to media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ *          There is no media_tag_create() function. The media_tag_h is created internally and available through media tag foreach function
+ *          such as media_tag_foreach_tag_from_db().
+ *          To use this handle outside of these foreach functions, use this function.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the destination handle using media_tag_destroy().
+ *
+ * @param[out] dst The destination handle to the media tag
+ * @param[in]  src The source handle to the media tag
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @see media_tag_destroy()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @see media_tag_destroy()
  */
 int media_tag_clone(media_tag_h *dst, media_tag_h src);
 
 /**
  * @brief Destroys the media tag.
  * @details This function frees all resources related to the tag handle. The tag handle can no longer
- * be used for any operation. A new tag handle has to be created before next usage.
+ *          be used for any operation. A new tag handle has to be created before next usage.
+ *
+ * @since_tizen 2.3
  *
  * @param[in] tag The media tag handle
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre A copy of the media tag handle created by calling media_tag_clone() or media_tag_insert_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre A copy of the media tag handle created by calling media_tag_clone() or media_tag_insert_to_db().
+ *
  * @see media_tag_clone()
  * @see media_tag_insert_to_db()
- *
  */
 int media_tag_destroy(media_tag_h tag);
 
 /**
- * @brief Gets media tag's ID.
+ * @brief Gets the media tag ID.
+ * @since_tizen 2.3
  *
+ * @param[in]  tag     The media tag handle
+ * @param[out] tag_id  The ID of the media tag
  *
- * @param [in] tag The handle to media tag
- * @param [out] tag_id The ID of media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_tag_get_tag_id(media_tag_h tag, int *tag_id);
 
 /**
  * @brief Gets the tag name.
+ * @since_tizen 2.3
  *
- * @remarks @a tag_name must be released with free() by you.
+ * @remarks You must release @a tag_name using free().
  *
- * @param[in] tag The handle to media tag
+ * @param[in]  tag      The media tag handle
  * @param[out] tag_name The name of the tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
  *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
+ * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int media_tag_get_name(media_tag_h tag, char **tag_name);
 
 /**
  * @brief Gets the media tag from the media database.
  *
- * @details This function creates a new media tag handle from the media database by the given tag_id.
- * media tag will be created, which is filled with tag information.
+ * @details This function creates a new media tag handle from the media database by the given @a tag_id.
+ *          Media tag will be created and will be filled with tag information.
  *
- * @remarks @a folder must be released with media_tag_destroy() by you.
+ * @since_tizen 2.3
  *
- * @param[in] tag_id The ID of media tag
- * @param[out] tag The media tag handle associated with the tag ID
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a folder using media_tag_destroy().
+ *
+ * @param[in]  tag_id The ID of the media tag
+ * @param[out] tag    The media tag handle associated with the tag ID
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_tag_destroy()
- *
  */
 int media_tag_get_tag_from_db(int tag_id, media_tag_h *tag);
 
 /**
  * @brief Adds a new media info to the tag.
+ * @since_tizen 2.3
+ *
+ * @param[in] tag      The media tag handle
+ * @param[in] media_id The ID to the media info which is added
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] tag The handle to media tag
- * @param[in] media_id The ID to media info which is added
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post media_tag_update_to_db()
+ *
  * @see media_content_connect()
  * @see media_tag_remove_media()
- *
  */
 int media_tag_add_media(media_tag_h tag, const char *media_id);
 
 /**
  * @brief Removes the media info from the given tag.
+ * @since_tizen 2.3
+ *
+ * @param[in] tag      The media tag handle
+ * @param[in] media_id The ID to the media info which is removed
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param[in] tag The handle to media tag
- * @param[in] media_id The ID to media info which is removed
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @pre This function requires opened connection to content service by media_content_connect().
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre  This function requires opened connection to content service by media_content_connect().
  * @post media_tag_update_to_db()
+ *
  * @see media_content_connect()
  * @see media_tag_add_media()
- *
  */
 int media_tag_remove_media(media_tag_h tag, const char *media_id);
 
 /**
- * @brief Sets the tag name.
+ * @brief Sets the name of the tag.
+ * @since_tizen 2.3
  *
- * @param[in] tag The handle to media tag
+ * @param[in] tag      The media tag handle
  * @param[in] tag_name The name of the media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- * @post media_tag_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  *
+ * @post media_tag_update_to_db()
  */
 int media_tag_set_name(media_tag_h tag, char *tag_name);
 
 /**
  * @brief Updates the media tag to the media database.
  *
- * @details The function updates the given media tag in the media database. The function should be called after any change in tag attributes, to be updated to the media 
- * database. For example, after using media_tag_set_name() for setting the name of the tag, media_tag_update_to_db() function should be called so as to update 
- * the given tag attibutes in the media database.
+ * @details The function updates the given media tag in the media database. The function should be called after any change in tag attributes, to be updated to the media
+ *          database. For example, after using media_tag_set_name() for setting the name of the tag, the media_tag_update_to_db() function should be called so as to update
+ *          the given tag attributes in the media database.
  *
- * @param[in] tag The handle to media tag
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @param[in] tag The media tag handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see media_tag_destroy()
  * @see media_tag_add_media()
  * @see media_tag_remove_media()
  * @see media_tag_set_name()
- *
  */
 int media_tag_update_to_db(media_tag_h tag);
 
index acd3262..38c7e90 100755 (executable)
 extern "C" {
 #endif /* __cplusplus */
 
+/**
+ * @file media_video.h
+ * @brief This file contains the video metadata API and related functions to proceed with video metadata. \n
+ *        Functions include cloning and destroying video metadata, getting video metadata such as width, height, \n
+ *        album, genre, played parameters etc. and updating video to DB.
+ */
 
 /**
  * @addtogroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE
@@ -32,301 +38,408 @@ extern "C" {
  */
 
 /**
- * @brief Clones video metadata.
+ * @brief Clones the video metadata.
  * @details This function copies the video metadata handle from a source to
- * destination.
-
- * @remark The destination handle must be released with video_meta_destroy() by you.
+ *          destination.
+ *
+ * @since_tizen 2.3
+ *
+ * @remarks You must release the destination handle using video_meta_destroy().
+ *
+ * @param[out] dst The destination handle to the video metadata
+ * @param[in]  src The source handle to the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [out] dst A destination handle to video metadata
- * @param [in] src The source handle to video metadata
- * @return 0 on success, otherwise a negative error value.
  * @retval #MEDIA_CONTENT_ERROR_NONE Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
  * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @see video_meta_destroy()
  */
 int video_meta_clone(video_meta_h *dst, video_meta_h src);
 
 /**
- * @brief Destroys video metadata.
- * @details Function frees all resources related to video metadata handle. This handle
- * no longer can be used to perform any operation. A new handle has to
- * be created before the next use.
+ * @brief Destroys the video metadata.
+ * @details This function frees all resources related to the video metadata handle. This handle
+ *          no longer can be used to perform any operation. A new handle has to
+ *          be created before the next use.
  *
- * @param [in] video The handle to video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @param[in] video The video metadata handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @pre Get copy of video metadata handle by calling video_meta_clone()
- * @see video_meta_clone()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre Get copy of video metadata handle by calling video_meta_clone().
  *
+ * @see video_meta_clone()
  */
 int video_meta_destroy(video_meta_h video);
 
 /**
- * @brief Gets id of media of given video metadata.
+ * @brief Gets the ID of the media of the given video metadata.
+ * @since_tizen 2.3
  *
- * @remarks @a media id must be released with free() by you.
+ * @remarks You must release @a media_id using free().
  *
- * @param [in] video The handle to video metadata
- * @param [out] media_id The id of the video
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
- * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
- */
-int video_meta_get_media_id(video_meta_h video, char **media_id);
-
-/**
- * @brief Gets the video's title.
+ * @param[in]  video    The video metadata handle
+ * @param[out] media_id The ID of the video
  *
- * @remarks @a title must be released with free() by you.
+ * @return @c 0 on success,
+ *         otherwise a negative error value
  *
- * @param [in] video The handle to video metadata
- * @param [out] title The title of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
-int video_meta_get_title(video_meta_h video, char **title);
+int video_meta_get_media_id(video_meta_h video, char **media_id);
 
 /**
  * @brief Gets the video's album.
- * If the value is an empty string, the method returns "Unknown".
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a album must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] album The video album or NULL
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a album using free().
+ *
+ * @param[in]  video The video metadata handle
+ * @param[out] album The video album or @c NULL
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_album(video_meta_h video, char **album);
 
 /**
- * @brief Gets the video's artist.
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the video artist.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a artist must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] artist The artist of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a artist using free().
+ *
+ * @param[in]  video  The video metadata handle
+ * @param[out] artist The artist of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_artist(video_meta_h video, char **artist);
 
+
 /**
- * @brief Gets the video's genre.
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the video genre.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a genre must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] genre The genre of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a genre using free().
+ *
+ * @param[in]  video The video metadata handle
+ * @param[out] genre The genre of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_genre(video_meta_h video, char **genre);
 
 /**
- * @brief Gets the video's composer.
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the video composer.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a composer must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] composer The composer of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a composer using free().
+ *
+ * @param[in]  video    The video metadata handle
+ * @param[out] composer The composer of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_composer(video_meta_h video, char **composer);
 
 /**
- * @brief Gets the video's year.
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the year of the video.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a year must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] year The year of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a year using free().
+ *
+ * @param[in]  video The video metadata handle
+ * @param[out] year  The year of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_year(video_meta_h video, char **year);
 
 /**
- * @brief Gets the video's recorded_date.
+ * @brief Gets the recorded date of the video.
+ * @since_tizen 2.3
  *
- * @remarks @a recorded_date must be released with free() by you.
+ * @remarks You must release @a recorded_date using free().
  *
- * @param [in] video The handle to video metadata
- * @param [out] recorded_date The recorded_date of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video         The video metadata handle
+ * @param[out] recorded_date The recorded date of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_recorded_date(video_meta_h video, char **recorded_date);
 
 /**
- * @brief Gets the video's copyright.
+ * @brief Gets the video copyright.
+ * @since_tizen 2.3
  *
- * @remarks @a copyright must be released with free() by you.
+ * @remarks You must release @a copyright using free().
  *
- * @param [in] video The handle to video metadata
- * @param [out] copyright The copyright of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video     The video metadata handle
+ * @param[out] copyright The copyright of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_copyright(video_meta_h video, char **copyright);
 
 /**
- * @brief Gets the video's track number.
- * If the value is an empty string, the method returns "Unknown".
+ * @brief Gets the track number of the video.
+ * @details If the value is an empty string, the method returns "Unknown".
  *
- * @remarks @a track_num must be released with free() by you.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] track_num The track number of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @remarks You must release @a track_num using free().
+ *
+ * @param[in]  video     The video metadata handle
+ * @param[out] track_num The track number of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_track_num(video_meta_h video, char **track_num);
 
 /**
- * @brief Gets the video's bit rate.
+ * @brief Gets the video bit rate.
+ * @since_tizen 2.3
  *
- * @remarks @a bit_rate must be released with free() by you.
+ * @remarks You must release @a bit_rate using free().
  *
- * @param [in] video The handle to video metadata
- * @param [out] bit_rate The bit rate of video metadata
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video     The video metadata handle
+ * @param[out] bit_rate  The bit rate of the video metadata
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_OUT_OF_MEMORY     Out of memory
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_bit_rate(video_meta_h video, int *bit_rate);
 
 /**
- * @brief Gets duration of video metadata.
+ * @brief Gets the duration of video metadata.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] duration The video duration in milliseconds
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video    The video metadata handle
+ * @param[out] duration The video duration in milliseconds
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_duration(video_meta_h video, int *duration);
 
 /**
- * @brief Gets the video's width in pixels.
+ * @brief Gets the video width in pixels.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] width The video width in pixels
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video The video metadata handle
+ * @param[out] width The video width in pixels
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_width(video_meta_h video, int *width);
 
 /**
- * @brief Gets the video's height in pixels.
+ * @brief Gets the video height in pixels.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] height The video height in pixels
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video  The video metadata handle
+ * @param[out] height The video height in pixels
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_height(video_meta_h video, int *height);
 
 /**
- * @brief Gets the video's played count.
+ * @brief Gets the played count of the video.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] played_count The number of played
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video        The video metadata handle
+ * @param[out] played_count The number of played
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_played_count(video_meta_h video, int *played_count);
 
 /**
- * @brief Gets the video's time last played parameter.
+ * @brief Gets the last played time parameter of the video.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [out] played_time The time last played in the video
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in]  video       The video metadata handle
+ * @param[out] played_time The time last played in the video
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_played_time(video_meta_h video, time_t *played_time);
 
 /**
- * @brief Gets the video's position played parameter.
- * @details Function returns video's elapsed playback time parameter as period
- * starting from the beginning of the movie.
+ * @brief Gets the position played parameter of the video.
+ * @details This function returns the elapsed playback time parameter of the video as period
+ *          starting from the beginning of the movie.
  *
- * @param [in] video The handle to video metadata
- * @param [out] played_position The position from the beginning of the video (in milliseconds)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @param[in]  video           The video metadata handle
+ * @param[out] played_position The position from the beginning of the video (in milliseconds)
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
  */
 int video_meta_get_played_position(video_meta_h video, int *played_position);
 
 /**
- * @brief Sets the video's played count.
+ * @brief Sets the played count of the video.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [in] played_count The number of played
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] video        The video metadata handle
+ * @param[in] played_count The number of played
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post video_meta_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post video_meta_update_to_db().
  */
 int video_meta_set_played_count(video_meta_h video, int played_count);
 
 /**
- * @brief Sets the video's time last played parameter.
+ * @brief Sets the time last played parameter of the video.
+ * @since_tizen 2.3
  *
- * @param [in] video The handle to video metadata
- * @param [in] played_time The time last played in the video
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @param[in] video       The video metadata handle
+ * @param[in] played_time The time last played in the video
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post video_meta_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post video_meta_update_to_db().
  */
 int video_meta_set_played_time(video_meta_h video, time_t played_time);
 
 /**
- * @brief Sets the video's position played parameter.
- * @details Function returns video's elapsed playback time parameter as period
- * starting from the beginning of the movie.
+ * @brief Sets the position played parameter of the video.
+ * @details This function returns video's elapsed playback time parameter as period
+ *          starting from the beginning of the movie.
  *
- * @param [in] video The handle to video metadata
- * @param [in] played_position The position from the beginning of the video (in milliseconds)
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @param[in] video           The video metadata handle
+ * @param[in] played_position The position from the beginning of the video (in milliseconds)
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
- * @post video_meta_update_to_db()
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post video_meta_update_to_db().
  */
 int video_meta_set_played_position(video_meta_h video, int played_position);
 
@@ -334,17 +447,30 @@ int video_meta_set_played_position(video_meta_h video, int played_position);
  * @brief Updates the video to the media database.
  *
  * @details The function updates the given video meta in the media database. The function should be called after any change in video attributes, to be updated to the media
- * database. For example, after using video_meta_get_played_time() for setting the played time of the video, video_meta_update_to_db() function should be called so as to update
- * the given video attibutes in the media database.
+ *          database. For example, after using video_meta_get_played_time() for setting the played time of the video, the video_meta_update_to_db() function should be called so as to update
+ *          the given video attributes in the media database.
  *
- * @param[in] image The handle to image
- * @return 0 on success, otherwise a negative error value.
- * @retval #MEDIA_CONTENT_ERROR_NONE Successful
+ * @since_tizen 2.3
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @remarks Do not call this function in callback function of foreach function like media_info_foreach_media_from_db().
+ *
+ * @param[in] video The video metadata handle
+ *
+ * @return @c 0 on success,
+ *         otherwise a negative error value
+ *
+ * @retval #MEDIA_CONTENT_ERROR_NONE              Successful
  * @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
  * @pre This function requires opened connection to content service by media_content_connect().
+ *
  * @see media_content_connect()
  * @see video_meta_set_played_time()
- * @see video_meta_set_played_count()
+ * @see video_meta_set_played_count()s
  * @see video_meta_set_played_position()
  */
 int video_meta_update_to_db(video_meta_h video);
index 651b6bf..61b9aa7 100755 (executable)
@@ -15,7 +15,6 @@
 */
 
 
-#include <media_content.h>
 #include <media_info_private.h>
 
 
@@ -227,37 +226,6 @@ int audio_meta_get_media_id(audio_meta_h audio, char **media_id)
        return ret;
 }
 
-int audio_meta_get_title(audio_meta_h audio, char **title)
-{
-       int ret = MEDIA_CONTENT_ERROR_NONE;
-       audio_meta_s *_audio = (audio_meta_s*)audio;
-       if(_audio)
-       {
-               if(STRING_VALID(_audio->title))
-               {
-                       *title = strdup(_audio->title);
-                       if(*title == NULL)
-                       {
-                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
-                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
-                       }
-               }
-               else
-               {
-                       *title = NULL;
-               }
-               ret = MEDIA_CONTENT_ERROR_NONE;
-
-       }
-       else
-       {
-               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-       }
-
-       return ret;
-}
-
 int audio_meta_get_album(audio_meta_h audio, char **album_name)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
index 0ce1f24..311922a 100755 (executable)
@@ -15,9 +15,7 @@
 */
 
 
-#include <media_content.h>
 #include <media_info_private.h>
-#include <media-svc.h>
 
 
 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
index c59daf1..8ca5178 100755 (executable)
@@ -16,7 +16,6 @@
 
 
 #include <media-thumb-error.h>
-#include <media_content.h>
 #include <media_info_private.h>
 #include <media-util.h>
 
@@ -378,8 +377,6 @@ static int __media_content_create_alias_attr_handle(void)
        ret = _media_filter_attribute_add(g_alias_attr_handle, BOOKMARK_MARKED_TIME, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_MARKED_TIME);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
-       /* Album */
-
        return ret;
 }
 
@@ -436,14 +433,16 @@ int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condit
                return MEDIA_CONTENT_ERROR_DB_FAILED;
        }
 
-       if(STRING_VALID(select_query)) {
-               if(!STRING_VALID(condition_query)) {
+       if(STRING_VALID(select_query))
+       {
+               if(!STRING_VALID(condition_query))
+               {
                        condition_query = " ";
                }
 
-               if(!STRING_VALID(option_query)) {
+               if(!STRING_VALID(option_query))
+               {
                        option_query = " ";
-
                }
 
                //query = sqlite3_mprintf("%s %s %s", select_query, condition_query, option_query);
@@ -541,44 +540,6 @@ int _content_query_sql(char *query_str)
        ret = media_svc_request_update_db(query_str,tzplatform_getuid(TZ_USER_NAME));
 
        return _content_error_capi(MEDIA_CONTENT_TYPE, ret);
-
-#if 0
-       int err = MEDIA_CONTENT_ERROR_NONE;
-       char *err_msg;
-
-       if(db_handle == NULL)
-       {
-               media_content_error("DB_FAILED(0x%08x) database is not connected", MEDIA_CONTENT_ERROR_DB_FAILED);
-               return MEDIA_CONTENT_ERROR_DB_FAILED;
-       }
-
-       err = sqlite3_exec(db_handle, query_str, NULL, NULL, &err_msg);
-       if(SQLITE_OK != err)
-       {
-               if(err_msg)
-               {
-                       media_content_error("DB_FAILED : %s", err_msg);
-                       media_content_error("DB_FAILED SQL: %s", query_str);
-                       sqlite3_free(err_msg);
-               }
-
-               media_content_error("DB_FAILED(0x%08x) database operation is failed", MEDIA_CONTENT_ERROR_DB_FAILED);
-
-               if (err == SQLITE_BUSY)
-                       return MEDIA_CONTENT_ERROR_DB_BUSY;
-               else
-                       return MEDIA_CONTENT_ERROR_DB_FAILED;
-       }
-       else
-       {
-               media_content_info("DB_SUCCESS: %s", query_str);
-       }
-
-       if(err_msg)
-               sqlite3_free(err_msg);
-
-       return MEDIA_CONTENT_ERROR_NONE;
-#endif
 }
 
 int media_content_connect(void)
@@ -641,8 +602,7 @@ int media_content_disconnect(void)
                        {
                                ret = media_svc_disconnect(db_handle);
                                ret = _content_error_capi(MEDIA_CONTENT_TYPE, ret);
-                               if(ret == MEDIA_CONTENT_ERROR_NONE)
-                               {
+                               if(ret == MEDIA_CONTENT_ERROR_NONE) {
                                        ret = __media_content_destroy_attribute_handle();
                                        db_handle = NULL;
                                }
index c95ab3d..3d057b6 100755 (executable)
@@ -243,37 +243,6 @@ int image_meta_get_date_taken(image_meta_h image, char **date_taken)
        return ret;
 }
 
-int image_meta_get_title(image_meta_h image, char **title)
-{
-       int ret = MEDIA_CONTENT_ERROR_NONE;
-       image_meta_s *_image = (image_meta_s*)image;
-       if(_image)
-       {
-               if(STRING_VALID(_image->title))
-               {
-                       *title = strdup(_image->title);
-                       if(*title == NULL)
-                       {
-                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
-                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
-                       }
-               }
-               else
-               {
-                       *title = NULL;
-               }
-               ret = MEDIA_CONTENT_ERROR_NONE;
-
-       }
-       else
-       {
-               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-       }
-
-       return ret;
-}
-
 int image_meta_get_burst_id(image_meta_h image, char **burst_id)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
index e8aa927..dea0516 100755 (executable)
@@ -230,38 +230,6 @@ int video_meta_get_media_id(video_meta_h video, char **media_id)
        return ret;
 }
 
-int video_meta_get_title(video_meta_h video, char **title)
-{
-       int ret = MEDIA_CONTENT_ERROR_NONE;
-       video_meta_s *_video = (video_meta_s*)video;
-       if(_video)
-       {
-               if(STRING_VALID(_video->title))
-               {
-                       char *new_string = strdup(_video->title);
-                       if(NULL == new_string)
-                       {
-                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
-                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
-                       }
-                       *title = new_string;
-               }
-               else
-               {
-                       *title = NULL;
-               }
-               ret = MEDIA_CONTENT_ERROR_NONE;
-
-       }
-       else
-       {
-               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-       }
-
-       return ret;
-}
-
 int video_meta_get_album(video_meta_h video, char **album)
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
index 9214758..0bc125a 100755 (executable)
@@ -51,12 +51,6 @@ bool get_audio_meta(audio_meta_h audio)
        media_content_debug("audio_id : [%s]", c_value);
        SAFE_FREE(c_value);
 
-       ret = audio_meta_get_title(audio, &c_value);
-       if(ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("title : [%s]", c_value);
-       SAFE_FREE(c_value);
-
        ret = audio_meta_get_album(audio, &c_value);
        if(ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error when get meta : [%d]", ret);
@@ -158,12 +152,6 @@ bool get_video_meta(video_meta_h video)
        media_content_debug("video_id : [%s]", c_value);
        SAFE_FREE(c_value);
 
-       ret = video_meta_get_title(video, &c_value);
-       if(ret != MEDIA_CONTENT_ERROR_NONE)
-               media_content_error("error when get meta : [%d]", ret);
-       media_content_debug("title : [%s]", c_value);
-       SAFE_FREE(c_value);
-
        ret = video_meta_get_album(video, &c_value);
        if(ret != MEDIA_CONTENT_ERROR_NONE)
                media_content_error("error when get meta : [%d]", ret);
@@ -1091,9 +1079,6 @@ int test_gallery_scenario(void)
                                if(ret != MEDIA_CONTENT_ERROR_NONE) {
                                        media_content_error("media_info_get_video failed: %d", ret);
                                } else {
-                                       ret = video_meta_get_title(video_handle, &title);
-                                       if(ret != MEDIA_CONTENT_ERROR_NONE)
-                                               media_content_error("error video_meta_get_title : [%d]", ret);
                                        ret = video_meta_get_artist(video_handle, &artist);
                                        if(ret != MEDIA_CONTENT_ERROR_NONE)
                                                media_content_error("error video_meta_get_artist : [%d]", ret);
@@ -1226,9 +1211,6 @@ int test_gallery_scenario(void)
                                        if(ret != MEDIA_CONTENT_ERROR_NONE) {
                                                media_content_error("media_info_get_video failed: %d", ret);
                                        } else {
-                                               ret = video_meta_get_title(video_handle, &title);
-                                               if(ret != MEDIA_CONTENT_ERROR_NONE)
-                                                       media_content_error("error video_meta_get_title : [%d]", ret);
                                                ret = video_meta_get_artist(video_handle, &artist);
                                                if(ret != MEDIA_CONTENT_ERROR_NONE)
                                                        media_content_error("error video_meta_get_artist : [%d]", ret);