*
* @param[in] audio The audio metadata handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[out] dst The destination handle to audio metadata
* @param[in] src The source handle to the audio metadata
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] media_id The ID of the audio
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] album_name The name of the album
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] artist_name The name of the artist
*
- * @return @c 0 on success,
+ * @return @c 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_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_artist(audio_meta_h audio, char **album_artist_name);
* @param[in] audio The audio metadata handle
* @param[out] genre_name The name of the genre
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] composer_name The name of the author of the audio
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] year The year of the audio file
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] recorded_date The recorded date of the audio file
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] copyright The audio copyright notice
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] track_num The audio track number
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] bit_rate The audio bitrate in bit per second [bps]
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] sample_rate The audio sample rate[hz]
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] channel The channel of the audio
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] audio The audio metadata handle
* @param[out] duration The audio file duration
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_get_duration(audio_meta_h audio, int *duration);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_get_played_count() instead]
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_get_played_count(audio_meta_h audio, int *played_count);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_get_played_time() instead]
* @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.
* @param[in] audio The audio metadata handle
* @param[out] played_time The elapsed time of the audio
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_get_played_time(audio_meta_h audio, time_t *played_time);
/**
+ * @deprecated Deprecated since 2.4.
* @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.
* @param[in] audio The audio metadata handle
* @param[out] played_position The elapsed time of the audio
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_get_played_position(audio_meta_h audio, int *played_position);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_increase_played_count() instead]
* @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
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_set_played_count(audio_meta_h audio, int played_count);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_set_played_time() instead]
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int audio_meta_set_played_time(audio_meta_h audio, time_t played_time);
/**
+ * @deprecated Deprecated since 2.4.
* @brief Sets the played position to an audio meta handle.
* @since_tizen 2.3
*
+ * @remarks It is NOT recommended to use this attribute for your application-specific purpose because this attribute can be overwritten by other applications (even 0).
+ *
* @param[in] audio The audio metadata handle
* @param[in] played_position The played position of the audio
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] bookmark_id The ID of media bookmark
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The handle to the media filter
* @param[out] bookmark_count The count of the media bookmark
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] bookmark The handle to media bookmark
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] bookmark The handle to media bookmark
* @param[out] bookmark_id The media bookmark ID
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] bookmark The handle to media bookmark
* @param[out] marked_time The bookmark time offset (in milliseconds)
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] bookmark The handle to media bookmark
* @param[out] path The thumbnail path of media bookmark
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
#include <media_group.h>
#include <media_playlist.h>
#include <media_bookmark.h>
+#include <media_storage.h>
#ifdef __cplusplus
extern "C" {
*
* @since_tizen 2.3
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @since_tizen 2.3
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] path The file path
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int media_content_scan_folder(const char *path, bool is_recursive, media_scan_completed_cb callback, void *user_data);
/**
+ * @brief Requests to cancel the media folder scanning.
+ * @since_tizen 2.4
+ *
+ * @param[in] path The folder path
+ *
+ * @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 media_content_scan_folder()
+ */
+int media_content_cancel_scan_folder(const char *path);
+
+/**
* @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.
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @since_tizen 2.3
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
--- /dev/null
+/*
+* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+
+#ifndef __TIZEN_MEDIA_CONTENT_INTERNAL_H__
+#define __TIZEN_MEDIA_CONTENT_INTERNAL_H__
+
+#include <media_content_type.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @internal
+ * @file media_content_internal.h
+ * @brief This file contains API on main functional operations with storage that are related to media resources in the media database. \n
+ * Operations include: inserting a new storage in media to the media database, removing storage from database, \n
+ */
+
+/**
+* @internal
+* @brief Insert media storage to database.
+* @since_tizen 2.4
+*
+* @remarks You must release @a storage using media_storage_destroy().
+*
+* @privlevel platform
+* @privilege %http://tizen.org/privilege/content.write
+*
+* @param[in] storage_name The storage name to insert to database
+* @param[in] storage_path The storage path to insert to database
+* @param[in] storage_account The storage account to insert to database
+* @param[in] storage_type The storage type to insert to database
+* @param[out] 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
+* @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @see media_storage_delete_from_db()
+*/
+int media_storage_insert_to_db(const char *storage_name, const char *storage_path, const char *storage_account, media_content_storage_e storage_type, media_storage_h *storage);
+
+/**
+* @internal
+* @brief Deletes the database for media storage.
+* @since_tizen 2.4
+*
+* @privlevel platform
+* @privilege %http://tizen.org/privilege/content.write
+*
+* @param[in] storage_id The storage ID to delete from database
+*
+* @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_PERMISSION_DENIED Permission denied
+*
+* @see media_storage_insert_to_db()
+*/
+int media_storage_delete_from_db(const char *storage_id);
+
+/**
+ * @brief Gets the storage account of media storage.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_account using free().
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_account The storage account 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_storage_account(media_storage_h storage, char **storage_account);
+
+/**
+* @internal
+* @brief Creates the media info handle.
+* @since_tizen 2.4
+*
+* @remarks You must release @a media using media_info_destroy().
+*
+* @param[out] 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @see media_info_destroy()
+*/
+int media_info_create_handle(media_info_h *media);
+
+/**
+* @internal
+* @brief Inserts media info to database with media info data.
+* @since_tizen 2.4
+*
+* @remarks You must release @a info using media_info_destroy().
+*
+* @privlevel platform
+* @privilege %http://tizen.org/privilege/content.write
+*
+* @param[in] media The media info handle
+* @param[out] info The media info handle to get data from database
+*
+* @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_PERMISSION_DENIED Permission denied
+*/
+int media_info_insert_to_db_with_data(media_info_h media, media_info_h *info);
+
+/**
+* @internal
+* @brief Sets the path of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] 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_INVALID_PARAMETER Invalid parameter
+* @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_path(media_info_h media, const char *path);
+
+/**
+* @internal
+* @brief Sets the MIME type of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] 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_INVALID_PARAMETER Invalid parameter
+* @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_mime_type(media_info_h media, const char *mime_type);
+
+/**
+* @internal
+* @brief Sets the title of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] title The title of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_title(media_info_h media, const char *title);
+
+/**
+* @internal
+* @brief Sets the album of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] album The album of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_album(media_info_h media, const char *album);
+
+/**
+* @internal
+* @brief Sets the artist of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] artist The artist of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_artist(media_info_h media, const char *artist);
+
+/**
+* @internal
+* @brief Sets the genre of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] genre The genre of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_genre(media_info_h media, const char *genre);
+
+/**
+* @internal
+* @brief Sets the recorded date of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] recorded_date The recorded date of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_recorded_date(media_info_h media, const char *recorded_date);
+
+/**
+* @internal
+* @brief Sets the thumbnail path of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] thumbnail_path The thumbnail path of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_thumbnail_path(media_info_h media, const char *thumbnail_path);
+
+/**
+* @internal
+* @brief Sets the size of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] size The size of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_size(media_info_h media, unsigned long long size);
+
+/**
+* @internal
+* @brief Sets the modified time of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] modified_time The modified time of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_modified_time(media_info_h media, time_t modified_time);
+
+/**
+* @internal
+* @brief Sets the media type of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] type The media type of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_media_type(media_info_h media, media_content_type_e type);
+
+/**
+* @internal
+* @brief Sets the duration of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] duration The duration of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_duration(media_info_h media, int duration);
+
+/**
+* @internal
+* @brief Sets the width of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] width The width of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_width(media_info_h media, int width);
+
+/**
+* @internal
+* @brief Sets the height of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] height The height of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_height(media_info_h media, int height);
+
+/**
+* @internal
+* @brief Sets the storage type of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] storage_type The storage type of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_storage_type(media_info_h media, media_content_storage_e storage_type);
+
+/**
+* @internal
+* @brief Sets the storage type of media info handle.
+* @since_tizen 2.4
+*
+* @param[in] media The media info handle
+* @param[in] storage_id The storage id of 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_DB_FAILED DB operation failed
+* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+*
+* @post media_info_insert_to_db_with_data()
+*/
+int media_info_set_storage_id(media_info_h media, const char *storage_id);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+#endif /*__TIZEN_MEDIA_CONTENT_INTERNAL_H__*/
*/
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_CLOUD = 100, /**< The Cloud storage */
} media_content_storage_e;
/**
typedef struct filter_s *filter_h;
/**
+ * @ingroup CAPI_CONTENT_MEDIA_STORAGE_MODULE
+ * @brief The structure type for the Media storage handle.
+ * @since_tizen 2.4
+ */
+typedef void *media_storage_h;
+
+/**
* @ingroup CAPI_MEDIA_CONTENT_MODULE
* @brief Called when the media scanning is finished.
*
typedef bool (*media_group_cb)(const char *group_name, void *user_data);
/**
+ * @ingroup CAPI_CONTENT_MEDIA_STORAGE_MODULE
+ * @brief Called for every storage in the obtained list of storages.
+ * @since_tizen 2.4
+ *
+ * @details Iterates over a media storage list.
+ *
+ * @remarks You should not destroy @a storage returned by this function.
+ *
+ * @param[in] storage The handle of the media storage
+ * @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
+ *
+ * @pre media_storage_foreach_storage_from_db() will invoke this function.
+ *
+ * @see media_storage_foreach_storage_from_db()
+ */
+typedef bool (*media_storage_cb)(media_storage_h storage, void *user_data);
+
+/**
* @}
*/
#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_WEATHER "MEDIA_WEATHER" /**< Media weather*/
+#define MEDIA_WEATHER "MEDIA_WEATHER" /**< Media weather*/
#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*/
+#define MEDIA_EXPOSURE_TIME "MEDIA_EXPOSURE_TIME" /**< media exposure_time*/
+#define MEDIA_FNUMBER "MEDIA_FNUMBER" /**< media fnumber*/
+#define MEDIA_ISO "MEDIA_ISO" /**< media iso*/
+#define MEDIA_MODEL "MEDIA_MODEL" /**< media model*/
+
+#define MEDIA_FILE_NAME_PINYIN "MEDIA_FILE_NAME_PINYIN" /**< Media file name pinyin */
+#define MEDIA_TITLE_PINYIN "MEDIA_TITLE_PINYIN" /**< Media title pinyin */
+#define MEDIA_ALBUM_PINYIN "MEDIA_ALBUM_PINYIN" /**< Media album pinyin*/
+#define MEDIA_ARTIST_PINYIN "MEDIA_ARTIST_PINYIN" /**< Media artist pinyin*/
+#define MEDIA_ALBUM_ARTIST_PINYIN "MEDIA_ALBUM_ARTIST_PINYIN" /**< Media album_artist pinyin*/
+#define MEDIA_GENRE_PINYIN "MEDIA_GENRE_PINYIN" /**< Media genre pinyin*/
+#define MEDIA_COMPOSER_PINYIN "MEDIA_COMPOSER_PINYIN" /**< Media composer pinyin*/
+#define MEDIA_COPYRIGHT_PINYIN "MEDIA_COPYRIGHT_PINYIN" /**< Media copyright pinyin*/
+#define MEDIA_DESCRIPTION_PINYIN "MEDIA_DESCRIPTION_PINYIN" /**< Media description pinyin*/
+#define MEDIA_AUTHOR_PINYIN "MEDIA_AUTHOR_PINYIN" /**< Media authore pinyin*/
+#define MEDIA_PROVIDER_PINYIN "MEDIA_PROVIDER_PINYIN" /**< Media provider pinyin*/
+#define MEDIA_CONTENT_NAME_PINYIN "MEDIA_CONTENT_NAME_PINYIN" /**< Media content name pinyin*/
+#define MEDIA_CATEGORY_PINYIN "MEDIA_CATEGORY_PINYIN" /**< Media category pinyin*/
+#define MEDIA_LOCATION_TAG_PINYIN "MEDIA_LOCATION_TAG_PINYIN" /**< Media location tag pinyin*/
+#define MEDIA_AGE_RATING_PINYIN "MEDIA_AGE_RATING_PINYIN" /**< Media age rating pinyin*/
+#define MEDIA_KEYWORD_PINYIN "MEDIA_KEYWORD_PINYIN" /**< Media keyword pinyin*/
-#define MEDIA_FILE_NAME_PINYIN "MEDIA_FILE_NAME_PINYIN" /**< media file name pinyin */
-#define MEDIA_TITLE_PINYIN "MEDIA_TITLE_PINYIN" /**< media title pinyin */
-#define MEDIA_ALBUM_PINYIN "MEDIA_ALBUM_PINYIN" /**< media album pinyin*/
-#define MEDIA_ARTIST_PINYIN "MEDIA_ARTIST_PINYIN" /**< media artist pinyin*/
-#define MEDIA_ALBUM_ARTIST_PINYIN "MEDIA_ALBUM_ARTIST_PINYIN" /**< media album_artist pinyin*/
-#define MEDIA_GENRE_PINYIN "MEDIA_GENRE_PINYIN" /**< media genre pinyin*/
-#define MEDIA_COMPOSER_PINYIN "MEDIA_COMPOSER_PINYIN" /**< media composer pinyin*/
-#define MEDIA_COPYRIGHT_PINYIN "MEDIA_COPYRIGHT_PINYIN" /**< media copyright pinyin*/
-#define MEDIA_DESCRIPTION_PINYIN "MEDIA_DESCRIPTION_PINYIN" /**< media description pinyin*/
-#define MEDIA_AUTHOR_PINYIN "MEDIA_AUTHOR_PINYIN" /**< media authore pinyin*/
-#define MEDIA_PROVIDER_PINYIN "MEDIA_PROVIDER_PINYIN" /**< media provider pinyin*/
-#define MEDIA_CONTENT_NAME_PINYIN "MEDIA_CONTENT_NAME_PINYIN" /**< media content name pinyin*/
-#define MEDIA_CATEGORY_PINYIN "MEDIA_CATEGORY_PINYIN" /**< media category pinyin*/
-#define MEDIA_LOCATION_TAG_PINYIN "MEDIA_LOCATION_TAG_PINYIN" /**< media location tag pinyin*/
-#define MEDIA_AGE_RATING_PINYIN "MEDIA_AGE_RATING_PINYIN" /**< media age rating pinyin*/
-#define MEDIA_KEYWORD_PINYIN "MEDIA_KEYWORD_PINYIN" /**< media keyword pinyin*/
/**
* @}
*/
#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_NAME_PINYIN "FOLDER_NAME_PINYIN" /**< folder base name pinyin*/
+#define FOLDER_NAME_PINYIN "FOLDER_NAME_PINYIN" /**< Folder base name pinyin*/
+#define FOLDER_ORDER "FOLDER_ORDER" /**< Folder order info */
/**
* @}
*
* @param[out] filter A handle to the media filter
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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 @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] order_keyword The search order keyword
* @param[in] collate_type The collate type for comparing two strings
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
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 Sets the @a storage id for the given @a filter.
+ * @since_tizen 2.4
+ *
+ * @param[in] filter The handle to the media filter
+ * @param[in] storage_id The storage_id for browsing or searching
+ *
+ * @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_storage(filter_h filter, const char *storage_id);
+
+/**
* @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[out] condition The condition which is used WHERE clause on a query
* @param[out] collate_type The collate type for comparing two strings
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[out] order_keyword The search order keyword
* @param[out] collate_type The collate type for comparing two strings
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int media_filter_get_order(filter_h filter, media_content_order_e* order_type, char **order_keyword, media_content_collation_e *collate_type);
/**
+ * @brief Get the @a storage id for given @a filter.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_id using free().
+ *
+ * @param[in] filter The handle to media info filter
+ * @param[out] storage_id The storage_id which is used in 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_PERMISSION_DENIED Permission denied
+ *
+ * @see media_filter_create()
+ * @see media_filter_destroy()
+ */
+int media_filter_get_storage(filter_h filter, char **storage_id);
+
+/**
* @}
*/
int media_folder_get_storage_type(media_folder_h folder, media_content_storage_e *storage_type);
/**
+ * @brief Gets the storage id of the folder.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_id using free().
+ *
+ * @param[in] folder The handle to the media folder
+ * @param[out] storage_id The storage id 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
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ */
+int media_folder_get_storage_id(media_folder_h folder, char **storage_id);
+
+/**
+ * @brief Gets the folder viewing order.
+ * @since_tizen 2.4
+ *
+ * @param[in] folder The handle to the media folder
+ * @param[out] order The viewing order 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
+ * @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @post media_folder_update_to_db()
+ */
+int media_folder_get_order(media_folder_h folder, int *order);
+
+/**
* @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 @a folder_id.
int media_folder_get_folder_from_db(const char *folder_id, media_folder_h *folder);
/**
- * @brief Updates the media folder to the media database.
+ * @brief Sets the folder name.
+ * @since_tizen 2.3
*
- * @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.
+ * @param[in] folder The handle to the media folder
+ * @param[in] name The name of the media folder
*
- * @since_tizen 2.3
+ * @return @c 0 on success,
+ * otherwise a negative error value
*
- * @privlevel public
- * @privilege %http://tizen.org/privilege/content.write
+ * @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
+ *
+ * @post media_folder_update_to_db()
+ */
+int media_folder_set_name(media_folder_h folder, const char *name);
+
+/**
+ * @brief Sets the folder viewing order.
+ * @details If you set the order value for each folder, you can sort in ascending or descending order as the set order values using the filter. \n
+ * Moreover, more detailed settings are possible when used with the filter. \n
+ *
+ * @since_tizen 2.4
+ * @remarks If you don't set the order value, the order value will be set default value. Default is 0. \n
+ * If you don't use the filter, the set order value does not effect the folder viewing order.
*
* @param[in] folder The handle to the media folder
+ * @param[in] order The viewing order 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
* @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()
+ * @post media_folder_update_to_db()
*/
-int media_folder_update_to_db(media_folder_h folder);
+int media_folder_set_order(media_folder_h folder, int order);
/**
- * @brief Sets the folder name.
+ * @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, 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] 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
+ * @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
*
- * @post media_folder_update_to_db()
+ * @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_set_name(media_folder_h folder, const char *name);
+int media_folder_update_to_db(media_folder_h folder);
/**
* @}
* @param[in] filter The media filter handle
* @param[out] album_count The count of the media album
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The media filter handle
* @param[out] media_count The count of the album
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] album The media album handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] src The source handle to the media album
* @param[out] dst The destination handle to the media album
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] album The media album handle
* @param[out] album_id The media album ID
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] album The media album handle
* @param[out] album_name The name of the media album handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] album The media album handle
* @param[out] artist The name of the media artist
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] album The media album handle
* @param[out] album_art The path of the media album_art
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] group The type of the media group
* @param[out] group_count The count of the media group
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The media filter handle
* @param[out] media_count The count of the media
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] image The image metadata handle
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] image The image metadata handle
* @param[out] date_taken The time, when image was taken (in seconds, since the Epoch)
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int image_meta_get_burst_id(image_meta_h image, char **burst_id);
/**
+ * @brief Gets the exposure time from exif.
+ * @since_tizen 2.4
+ *
+ * @remarks @a exposure time must be released with free() by you.
+ *
+ * @param[in] media The handle to image metadata
+ * @param[out] exposure_time The value of exposure_time, getting from exif
+ *
+ * @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
+ *
+ */
+int image_meta_get_exposure_time(image_meta_h image, char **exposure_time);
+
+/**
+ * @brief Gets the fnumber from exif.
+ * @since_tizen 2.4
+ *
+ * @param[in] media The handle toimage metadata
+ * @param[out] fnumber The value of fnumber, getting from exif
+ *
+ * @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
+ *
+ */
+int image_meta_get_fnumber(image_meta_h image, double *fnumber);
+
+/**
+ * @brief Gets the iso from exif.
+ * @since_tizen 2.4
+ *
+ * @param[in] media The handle toimage metadata
+ * @param[out] iso The value of iso, getting from exif
+ *
+ * @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
+ *
+ */
+int image_meta_get_iso(image_meta_h image, int *iso);
+
+/**
+ * @brief Gets the model from exif.
+ * @since_tizen 2.4
+ *
+ * @remarks @a model must be released with free() by you.
+ *
+ * @param[in] media The handle toimage metadata
+ * @param[out] model The value of model, getting from exif
+ *
+ * @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
+ *
+ */
+int image_meta_get_model(image_meta_h image, char **model);
+
+/**
* @brief Checks whether the media is a burst shot image.
* @since_tizen 2.3
*
* @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,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] image The handle to the image
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] path The path to the media file
* @param[out] info The handle to the media info
*
- * @return @c 0 on success,
+ * @return @c 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_INVALID_OPERATION Invalid operation
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] media_id The ID to the media file
*
- * @return @c 0 on success,
+ * @return @c 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_INVALID_OPERATION Invalid operation
* @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB Operation failed
*
* @param[in] filter The handle to filter
*
- * @return @c 0 on success,
+ * @return @c 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_INVALID_OPERATION Invalid operation
* @retval #MEDIA_CONTENT_ERROR_DB_FAILED DB Operation failed
*
* @param[in] media The media info handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[out] dst The destination handle to the media info
* @param[in] src The source handle to media info
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The handle to the media filter
* @param[out] tag_count The count of the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The handle to the media filter
* @param[out] bookmark_count The count of the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] image A handle to image metadata
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] video A handle to the video meta
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] audio A handle to the audio meta
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] media_id The ID of the media tag
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] name The name of media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] mime_type The MIME type of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] size The type of the media content
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] added_time The added time to the DB
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[out] time The date of modification of the file \n
* Get from the file.
*
- * @return @c 0 on success,
+ * @return @c 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_NONE Successful
* @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
*/
* @param[in] media The media info handle
* @param[out] path The path to the thumbnail of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] description The description of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] longitude The longitude of the media info
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] altitude The altitude of the media info
*
- * @return @c 0 on success,
+ * @return @c 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_NONE Successful
* @retval #MEDIA_CONTENT_ERROR_INVALID_PARAMETER Invalid parameter
* @retval #MEDIA_CONTENT_ERROR_PERMISSION_DENIED Permission denied
*/
* @param[in] media The media info handle
* @param[out] rating The rating of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] author The author of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] provider The provider of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] content_name The content name of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] title The title of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] category The category of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] location_tag The location of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] age_rating The age rating of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] keyword The keyword of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int media_info_get_keyword(media_info_h media, char **keyword);
/**
+ * @brief Gets the storage id of media info.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_id using free().
+ *
+ * @param[in] media The media info handle
+ * @param[out] storage_id The storage 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_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_storage_id(media_info_h media, char **storage_id);
+
+/**
* @brief Checks whether the media is protected via DRM.
* @since_tizen 2.3
*
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[out] storage_type The storage type of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] display_name The display name of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] description The description of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] longitude The longitude of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] latitude The latitude of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] altitude The altitude of the media info
*
- * @return @c 0 on success,
+ * @return @c 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_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
*
* @param[in] media The media info handle
* @param[in] rating The rating of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] author The author of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] provider The provider of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] content_name The content name of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] category The category of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] location_tag The location of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] age_rating The age rating of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] keyword The keyword of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] media The media info handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] media_id The ID of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] added_time The added time of the media info
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] media The media info handle
* @param[in] dst_path The path of destination
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] media The media info handle
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The media filter handle
* @param[out] media_count The number of media items
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] name The name of the inserted playlist
* @param[out] playlist A created handle to media playlist
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 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[out] playlist The media playlist handle associated with the playlist ID
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] playlist The media playlist handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist The media playlist handle
* @param[out] playlist_id The ID of the media playlist
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist The media playlist handle
* @param[out] playlist_name The playlist name
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist The media playlist handle
* @param[in] playlist_name The name of the media playlist
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist The media playlist handle
* @param[out] path The path of the thumbnail
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist The media playlist handle
* @param[in] path The path of the thumbnail
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist_member_id The playlist member ID
* @param[in] play_order The playing order
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] playlist_member_id The playlist member ID
* @param[out] play_order The played order
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] playlist The media playlist handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int media_playlist_update_to_db(media_playlist_h playlist);
/**
+ * @brief Imports the playlist from m3u playlist file.
+ * @details This api reads a playlist from the m3u playlist file and insert into the db.
+ * @since_tizen 2.4
+ *
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/content.write
+ *
+ * @remarks http://tizen.org/privilege/mediastorage is needed if input or output path are relevant to media storage. \n
+ * http://tizen.org/privilege/externalstorage is needed if input or output path are relevant to external storage. \n
+ * This api does not support the file of extended m3u playlist.
+ *
+ * @param[in] playlist_name The name of the playlist to save
+ * @param[in] path The path to import the playlist file
+ * @param[out] 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_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
+ */
+int media_playlist_import_from_file(const char *playlist_name, const char *path, media_playlist_h *playlist);
+
+/**
+ * @brief Exports the playlist to m3u playlist file.
+ * @since_tizen 2.4
+ *
+ * @remarks http://tizen.org/privilege/mediastorage is needed if input or output path are relevant to media storage. \n
+ * http://tizen.org/privilege/externalstorage is needed if input or output path are relevant to external storage. \n
+ *
+ * @param[in] playlist The media playlist handle
+ * @param[in] path path The path to export the 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_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
+ */
+int media_playlist_export_to_file(media_playlist_h playlist, const char* path);
+
+/**
* @}
*/
--- /dev/null
+/*
+* Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+#ifndef __TIZEN_MEDIA_STORAGE_H__
+#define __TIZEN_MEDIA_STORAGE_H__
+
+
+#include <media_content_type.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @file media_storage.h
+ * @brief This file contains API on main functional operations with storage that are related to media resources in the media database. \n
+ * Operations include: getting number of storages, cloning and destroying storage, getting storage`s ID, name, path and type.
+ */
+
+/**
+* @brief Gets media storage from database.
+* @since_tizen 2.4
+*
+* @param[in] storage_id The storage id to get media storage info
+* @param[out] 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
+* @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
+* @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_storage_get_storage_info_from_db(const char *storage_id, media_storage_h *storage);
+
+/**
+* @brief Gets the count of media storage for the passed @a filter from the media database.
+* @since_tizen 2.4
+*
+* @param[in] filter The handle to filter
+* @param[out] storage_count The count of 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_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_PERMISSION_DENIED Permission denied
+*
+* @pre This function requires opened connection to content service by media_content_connect().
+*
+* @see media_content_connect()
+*/
+int media_storage_get_storage_count_from_db(filter_h filter, int *storage_count);
+
+/**
+ * @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 media storage 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 @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
+ * @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_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 Gets the count of media files for the passed @a filter in the given @a storage from the media database.
+ * @since_tizen 2.4
+ *
+ * @param[in] storage_id The ID of the media storage
+ * @param[in] filter The filter of the media content
+ * @param[out] media_count The count of media storage 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_DB_FAILED DB Operation failed
+ * @retval #MEDIA_CONTENT_ERROR_DB_BUSY DB Operation busy
+ * @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_storage_get_media_count_from_db(const char *storage_id, filter_h filter, int *media_count);
+
+/**
+ * @brief Iterates through the media files with an optional @a filter in the given @a storage from the media database.
+ * @details This function gets all media files associated with the given storage and
+ * 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.4
+ *
+ * @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] storage_id The ID of the media storage
+ * @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 @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
+ * @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()
+ */
+int media_storage_foreach_media_from_db(const char *storage_id, filter_h filter, media_info_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 operation. 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 You must release the destination handle using media_storage_destroy().
+ *
+ * @param[out] dst The destination handle to the media storage
+ * @param[in] src The source handle to 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 You must release @a storage_id using free().
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_id The storage 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 name of media storage.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_name using free().
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_name The storage name 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_name(media_storage_h storage, char **storage_name);
+
+/**
+ * @brief Gets the storage path of media storage.
+ * @since_tizen 2.4
+ *
+ * @remarks You must release @a storage_path 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);
+
+/**
+ * @brief Gets the storage type of media storage.
+ * @since_tizen 2.4
+ *
+ * @param[in] storage The media storage handle
+ * @param[out] storage_type The storage type 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
+ */
+int media_storage_get_type(media_storage_h storage, media_content_storage_e *storage_type);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIZEN_MEDIA_STORAGE_H__ */
* @param[in] tag_name The tag name to be inserted
* @param[out] tag The created handle to the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] tag_id The ID of media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The handle to the filter
* @param[out] tag_count The count of the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] filter The handle to the media filter
* @param[out] media_count The count of media items
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] tag The media tag handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] tag The media tag handle
* @param[out] tag_id The ID of the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] tag The media tag handle
* @param[out] tag_name The name of the tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] tag The media tag handle
* @param[in] tag_name The name of the media tag
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] tag The media tag handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
/**
* @brief Clones the video metadata.
- * @details This function copies the video metadata handle from a source to
+ * @details This function copies the video metadata handle from a source to
* destination.
*
* @since_tizen 2.3
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] video The video metadata handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] media_id The ID of the video
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] album The video album or @c NULL
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] artist The artist of the video metadata
*
- * @return @c 0 on success,
+ * @return @c 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_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_artist(video_meta_h video, char **album_artist);
* @param[in] video The video metadata handle
* @param[out] genre The genre of the video metadata
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] composer The composer of the video metadata
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] year The year of the video metadata
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
* @param[in] video The video metadata handle
* @param[out] track_num The track number of the video metadata
*
- * @return @c 0 on success,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_get_height(video_meta_h video, int *height);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_get_played_count() instead]
* @brief Gets the played count of the video.
* @since_tizen 2.3
*
* @param[in] video The video metadata handle
* @param[out] played_count The number of played
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_get_played_count(video_meta_h video, int *played_count);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_get_played_time() instead]
* @brief Gets the last played time parameter of the video.
* @since_tizen 2.3
*
* @param[in] video The video metadata handle
* @param[out] played_time The time last played in the video
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_get_played_time(video_meta_h video, time_t *played_time);
/**
+ * @deprecated Deprecated since 2.4.
* @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 video metadata handle
* @param[out] played_position The position from the beginning of the video (in milliseconds)
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_get_played_position(video_meta_h video, int *played_position);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_increase_played_count() instead]
* @brief Sets the played count of the video.
* @since_tizen 2.3
*
* @param[in] video The video metadata handle
* @param[in] played_count The number of played
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_set_played_count(video_meta_h video, int played_count);
/**
+ * @deprecated Deprecated since 2.4. [Use media_info_set_played_time() instead]
* @brief Sets the time last played parameter of the video.
* @since_tizen 2.3
*
* @param[in] video The video metadata handle
* @param[in] played_time The time last played in the video
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
int video_meta_set_played_time(video_meta_h video, time_t played_time);
/**
+ * @deprecated Deprecated since 2.4.
* @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.
*
* @since_tizen 2.3
*
+ * @remarks It is NOT recommended to use this attribute for your application-specific purpose because this attribute can be overwritten by other applications (even 0).
+ *
* @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,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful
*
* @param[in] video The video metadata handle
*
- * @return @c 0 on success,
+ * @return @c 0 on success,
* otherwise a negative error value
*
* @retval #MEDIA_CONTENT_ERROR_NONE Successful