/**
* @brief Sets the folder name.
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @since_tizen 2.3
*
* @param[in] folder The handle to the media folder
* @param[in] name The name of the media folder
* @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.
*
- * @since_tizen @if MOBILE 2.3 @elseif WEARABLE 2.3.1 @endif
+ * @since_tizen 2.3
*
* @privlevel public
* @privilege %http://tizen.org/privilege/content.write
*/
int media_storage_get_scan_status(const char *storage_uuid, media_storage_scan_status_e *scan_status);
+/**
+ * @brief Iterates through media storage from the media database.
+ * @details This function gets all media storage handles meeting the given @a filter.
+ * The @a callback function will be invoked for every retrieved media storage.
+ * If @c NULL is passed to the @a filter, then no filtering is applied.
+ *
+ * @since_tizen 2.4
+ *
+ * @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 @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_DB_FAILED DB Operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_BUSY DB Operation busy
+ *
+ * @pre This function requires opened connection to content service by media_content_connect().
+ * @post This function invokes media_storage_destroy().
+ *
+ * @see media_content_connect()
+ * @see media_storage_destroy()
+ */
+int media_storage_foreach_storage_from_db(filter_h filter, media_storage_cb callback, void *user_data);
+
+/**
+ * @brief Destroys media storage handle.
+ * @details The function frees all resources related to the media storage handle. This handle
+ * can no longer be used to perform any operations. New media storage handle has to
+ * be created before the next usage.
+ *
+ * @since_tizen 2.4
+ *
+ * @param[in] storage The media storage 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_storage_h handle by calling media_storage_clone().
+ *
+ * @see media_storage_clone()
+ */
+int media_storage_destroy(media_storage_h storage);
+
+/**
+ * @brief Clones the media storage handle.
+ *
+ * @details This function copies the media storage handle from a source to the destination.
+ * There is no media_storage_create() function. The media_storage_h is created internally and
+ * available through media storage foreach function such as media_storage_foreach_storage_from_db().
+ * To use this handle outside of these foreach functions, use this function.
+ *
+ * @since_tizen 2.4
+ *
+ * @remarks The @a dst should be released using media_storage_destroy().
+ *
+ * @param[out] dst The destination handle to the media storage
+ * @param[in] src The source handle to the media storage
+ *
+ * @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_storage_destroy()
+ * @see media_storage_foreach_storage_from_db()
+ * @see media_storage_get_storage_info_from_db()
+ */
+int media_storage_clone(media_storage_h *dst, media_storage_h src);
+
+/**
+ * @brief Gets the storage id of media storage.
+ * @since_tizen 2.4
+ *
+ * @remarks The @a storage_id should be released using free().
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_id The ID of the media storage
+ *
+ * @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
+ */
+int media_storage_get_id(media_storage_h storage, char **storage_id);
+/**
+ * @brief Gets the storage path of media storage.
+ * @since_tizen 2.4
+ *
+ * @remarks The @a storage_path should be released using free().
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_path The storage path of the media storage
+ *
+ * @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
+ */
+int media_storage_get_path(media_storage_h storage, char **storage_path);
#ifdef __cplusplus
}
#endif /* __cplusplus */