int media_bookmark_insert_to_db_v2(media_bookmark_h bookmark);
/*Playlist for C#*/
-int media_playlist_create(const char *name, media_playlist_h *playlist);
+int media_playlist_create(media_playlist_h *playlist);
+int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, int *play_order);
int media_playlist_insert_to_db_v2(media_playlist_h playlist);
+int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist);
+
+/*Tag for C#*/
+int media_tag_create(media_tag_h *tag);
+int media_tag_insert_to_db_v2(media_tag_h tag);
+int media_tag_update_to_db_v2(int tag_id, media_tag_h tag);
#ifdef __cplusplus
}
int media_bookmark_insert_to_db_v2(media_bookmark_h bookmark);
/*Playlist for C#*/
-int media_playlist_create(const char *name, media_playlist_h *playlist);
+int media_playlist_create(media_playlist_h *playlist);
+int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, int *play_order);
int media_playlist_insert_to_db_v2(media_playlist_h playlist);
+int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist);
+
+/*Tag for C#*/
+int media_tag_create(media_tag_h *tag);
+int media_tag_insert_to_db_v2(media_tag_h tag);
+int media_tag_update_to_db_v2(int tag_id, media_tag_h tag);
#ifdef __cplusplus
}
Name: capi-content-media-content
Summary: A Media content library in Tizen Native API
-Version: 0.3.11
+Version: 0.3.12
Release: 0
Group: Multimedia/API
License: Apache-2.0
#include <media_info_private.h>
+static int __media_bookmark_check_media_id(const char *media_id);
+
+static int __media_bookmark_check_media_id(const char *media_id)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ char *query_str = NULL;
+ sqlite3_stmt *stmt = NULL;
+ int item_count = 0;
+
+ media_content_retvm_if(!STRING_VALID(media_id), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid media_id");
+
+ query_str = sqlite3_mprintf(SELECT_MEDIA_COUNT_FROM_MEDIA_BY_ID, media_id);
+ ret = _content_query_prepare(&stmt, query_str, NULL, NULL);
+ SQLITE3_SAFE_FREE(query_str);
+ media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
+ while (sqlite3_step(stmt) == SQLITE_ROW)
+ item_count = (int)sqlite3_column_int(stmt, 0);
+
+ SQLITE3_FINALIZE(stmt);
+
+ media_content_retvm_if(item_count == 0, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid media_id");
+
+ return MEDIA_CONTENT_ERROR_NONE;
+}
int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
{
media_content_retvm_if(!STRING_VALID(media_id), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid media_id");
media_content_retvm_if(bookmark == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid bookmark");
+ ret = __media_bookmark_check_media_id(media_id);
+ media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Not exist media_id");
+
media_bookmark_s *_bookmark = (media_bookmark_s*)calloc(1, sizeof(media_bookmark_s));
media_content_retvm_if(_bookmark == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
return ret;
}
-int media_playlist_create(const char *name, media_playlist_h *playlist)
+int media_playlist_create(media_playlist_h *playlist)
{
int ret = MEDIA_CONTENT_ERROR_NONE;
- media_content_retvm_if(!STRING_VALID(name), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid name");
media_content_retvm_if(playlist == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid playlist");
media_playlist_s *_playlist = (media_playlist_s*)calloc(1, sizeof(media_playlist_s));
media_content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
_playlist->playlist_id = -1;
- _playlist->name = strdup(name);
+ _playlist->name = NULL;
+ _playlist->thumbnail_path = NULL;
_playlist->item_list = NULL;
- if (_playlist->name == NULL) {
- SAFE_FREE(_playlist);
- media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
- return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
+ *playlist = (media_playlist_h)_playlist;
+
+ return ret;
+}
+
+int media_playlist_get_play_order_v2(int playlist_id, int playlist_member_id, int *play_order)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ sqlite3_stmt *stmt = NULL;
+ char select_query[DEFAULT_QUERY_SIZE] = {0, };
+
+ if ((playlist_id < 0) || (playlist_member_id < 0) || (play_order == NULL)) {
+ media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+ return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
}
- *playlist = (media_playlist_h)_playlist;
+ memset(select_query, 0x00, sizeof(select_query));
+
+ snprintf(select_query, sizeof(select_query), SELECT_PLAY_ORDER_FROM_PLAYLIST_VIEW, playlist_id, playlist_member_id);
+
+ ret = _content_query_prepare(&stmt, select_query, NULL, NULL);
+ media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
+ while (sqlite3_step(stmt) == SQLITE_ROW)
+ *play_order = (int)sqlite3_column_int(stmt, 0);
+
+ SQLITE3_FINALIZE(stmt);
return ret;
}
media_content_retvm_if(_playlist->playlist_id != -1, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid playlist insert");
ret = __media_playlist_insert_playlist_record(_playlist->name, &playlist_id);
- media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "Insert playlist Fail");
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ __media_playlist_item_release(_playlist);
+ media_content_error("Insert playlist Fail");
+ return ret;
+ }
_playlist->playlist_id = playlist_id;
return ret;
}
+
+int media_playlist_update_to_db_v2(int playlist_id, media_playlist_h playlist)
+{
+ media_playlist_s *_playlist = (media_playlist_s*)playlist;
+
+ media_content_retvm_if(_playlist == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid playlist");
+ media_content_retvm_if(!STRING_VALID(_playlist->name), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid playlist name");
+
+ _playlist->playlist_id = playlist_id;
+
+ return media_playlist_update_to_db(playlist);
+}
return _content_error_capi(MEDIA_CONTENT_TYPE, ret);
}
+
+int media_tag_create(media_tag_h *tag)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+
+ media_content_retvm_if(tag == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag");
+
+ media_tag_s *_tag = (media_tag_s*)calloc(1, sizeof(media_tag_s));
+ media_content_retvm_if(_tag == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+
+ _tag->tag_id = -1;
+ _tag->name = NULL;
+ _tag->item_list = NULL;
+
+ *tag = (media_tag_h)_tag;
+
+ return ret;
+}
+
+int media_tag_insert_to_db_v2(media_tag_h tag)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ media_tag_s *_tag = (media_tag_s*)tag;
+ media_tag_h tag_1;
+ int tag_id = -1;
+
+ media_content_retvm_if(_tag == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag");
+ media_content_retvm_if(!STRING_VALID(_tag->name), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag name");
+ media_content_retvm_if(_tag->tag_id != -1, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag insert");
+
+ ret = media_tag_insert_to_db(_tag->name, &tag_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ media_content_error("fail media_tag_insert_to_db");
+ goto ERROR;
+ }
+
+ ret = media_tag_get_tag_id(tag_1, &tag_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ media_content_error("fail media_tag_get_tag_id");
+ goto ERROR;
+ }
+
+ _tag->tag_id = tag_id;
+
+ ret = media_tag_update_to_db(tag);
+
+ERROR:
+ __media_tag_item_release(_tag);
+ media_tag_destroy(tag_1);
+
+ return ret;
+}
+
+int media_tag_update_to_db_v2(int tag_id, media_tag_h tag)
+{
+ media_tag_s *_tag = (media_tag_s*)tag;
+
+ media_content_retvm_if(_tag == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag");
+ media_content_retvm_if(!STRING_VALID(_tag->name), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag name");
+ media_content_retvm_if(tag_id == -1, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid tag update");
+
+ _tag->tag_id = tag_id;
+
+ return media_tag_update_to_db(tag);
+}
static int g_cnt = 0;
static int g_media_cnt = 0;
-#define test_audio_id "0f999626-6218-450c-a4ad-181a3bab6ebf"
-#define test_video_id "22aa5ba1-8b54-4a62-b0e4-d15f7169f7d3"
+#define test_audio_id "3304285f-1070-41af-8b4e-f0086cc768f3"
+#define test_video_id "53c43e7e-53d2-4194-80a6-55d5dcde0def"
#define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
media_folder_h g_folder = NULL;
media_playlist_h playlist_1 = NULL;
const char *playlist_name_1 = "myPlaylist_1";
const char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg");
+ int playlist_id = 0;
media_content_debug("\n============Playlist Test V2============\n\n");
- ret = media_playlist_create(playlist_name_1, &playlist_1);
+ ret = media_playlist_create(&playlist_1);
if (ret != MEDIA_CONTENT_ERROR_NONE)
media_content_error("error media_playlist_create : [%d]", ret);
+ ret = media_playlist_set_name(playlist_1, playlist_name_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_playlist_set_name : [%d]", ret);
+
ret = media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
if (ret != MEDIA_CONTENT_ERROR_NONE)
media_content_error("error media_playlist_set_thumbnail_path : [%d]", ret);
if (ret != MEDIA_CONTENT_ERROR_NONE)
media_content_error("error media_playlist_set_name : [%d]", ret);
- ret = media_playlist_update_to_db(playlist_1);
+ ret = media_playlist_get_playlist_id(playlist_1, &playlist_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_playlist_get_playlist_id : [%d]", ret);
+
+ ret = media_playlist_update_to_db_v2(playlist_id, playlist_1);
if (ret != MEDIA_CONTENT_ERROR_NONE)
- media_content_error("error media_playlist_update_to_db : [%d]", ret);
+ media_content_error("error media_playlist_update_to_db_v2 : [%d]", ret);
ret = media_playlist_destroy(playlist_1);
if (ret != MEDIA_CONTENT_ERROR_NONE)
ret = media_tag_add_media(tag_2, test_video_id);
if (ret != MEDIA_CONTENT_ERROR_NONE)
media_content_error("error media_tag_add_media : [%d]", ret);
- ret = media_tag_set_name(tag_2, (char *)"test_tag");
+ ret = media_tag_set_name(tag_2, "test_tag");
if (ret != MEDIA_CONTENT_ERROR_NONE)
media_content_error("error media_tag_set_name : [%d]", ret);
ret = media_tag_update_to_db(tag_2);
return ret;
}
+int test_tag_operation_v2(void)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ media_tag_h tag_1;
+ const char *tag_name_1 = "myTag_1";
+ int tag_id = -1;
+
+ media_content_debug("\n============Tag Test V2============\n\n");
+
+ /* Create Tag */
+ ret = media_tag_create(&tag_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_create : [%d]", ret);
+
+ ret = media_tag_set_name(tag_1, tag_name_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_set_name : [%d]", ret);
+
+ /* Add media to Tag */
+ ret = media_tag_add_media(tag_1, test_audio_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_add_media : [%d]", ret);
+
+ ret = media_tag_add_media(tag_1, test_video_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_add_media : [%d]", ret);
+
+ ret = media_tag_insert_to_db_v2(tag_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_insert_to_db_v2 : [%d]", ret);
+
+#if 1
+ ret = media_tag_get_tag_id(tag_1, &tag_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_get_tag_id : [%d]", ret);
+
+ ret = media_tag_remove_media(tag_1, test_video_id);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_add_media : [%d]", ret);
+
+ ret = media_tag_update_to_db_v2(tag_id, tag_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_update_to_db_v2 : [%d]", ret);
+#endif
+
+ ret = media_tag_destroy(tag_1);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ media_content_error("error media_tag_destroy : [%d]", ret);
+
+ return ret;
+}
int test_bookmark_operation(void)
{
ret = test_bookmark_operation_v2();
if (ret != MEDIA_CONTENT_ERROR_NONE)
return MEDIA_CONTENT_ERROR_NONE;
+
+ ret = test_tag_operation_v2();
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ return MEDIA_CONTENT_ERROR_NONE;
#endif
ret = test_disconnect_database();