X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmedia_db.c;h=3f0279a0a3e3926489abd36654ce1cb269e9701b;hb=9d15701e2caada225fd93cd0b4b14fee53a9263d;hp=f3829235537e7bfc994009523e033446bec857d7;hpb=e84e224cbb3cda3a91cea699a6d096401db850b8;p=platform%2Fcore%2Fapi%2Fmedia-content.git diff --git a/src/media_db.c b/src/media_db.c index f382923..3f0279a 100755 --- a/src/media_db.c +++ b/src/media_db.c @@ -233,10 +233,6 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro break; - case MEDIA_GROUP_STORAGE: - select_query = g_strdup(SELECT_STORAGE_COUNT); - break; - case MEDIA_GROUP_FACE: if (_filter && STRING_VALID(_filter->storage_id)) select_query = g_strdup_printf(SELECT_FACE_COUNT, _filter->storage_id); @@ -436,21 +432,14 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro char *select_query = NULL; char *condition_query = NULL; char *option_query = NULL; - filter_s *_filter = (filter_s *)filter; switch (group_type) { case MEDIA_GROUP_ALBUM: - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_ALBUM_COUNT_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_ALBUM_COUNT); + select_query = g_strdup(SELECT_ALBUM_COUNT); break; case MEDIA_GROUP_FOLDER: - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_FOLDER_COUNT); + select_query = g_strdup(SELECT_FOLDER_COUNT); break; case MEDIA_GROUP_PLAYLIST: @@ -462,22 +451,11 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro break; case MEDIA_GROUP_BOOKMARK: - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_BOOKMARK_COUNT); - - break; - - case MEDIA_GROUP_STORAGE: - select_query = g_strdup(SELECT_STORAGE_COUNT); + select_query = g_strdup(SELECT_BOOKMARK_COUNT); break; case MEDIA_GROUP_FACE: - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_FACE_COUNT_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_FACE_COUNT); + select_query = g_strdup(SELECT_FACE_COUNT); break; default: @@ -512,12 +490,8 @@ int _media_db_get_media_group_count(media_group_e group, filter_h filter, int *g char *select_query = NULL; char *condition_query = NULL; char *option_query = NULL; - filter_s *_filter = (filter_s *)filter; - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_GROUP_COUNT_BY_STORAGE_ID, __media_db_get_group_name(group), __media_db_get_group_name(group), _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_GROUP_COUNT, __media_db_get_group_name(group), __media_db_get_group_name(group)); + select_query = g_strdup_printf(SELECT_MEDIA_GROUP_COUNT, __media_db_get_group_name(group), __media_db_get_group_name(group)); ret = __media_db_make_query(filter, &condition_query, &option_query); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -547,12 +521,8 @@ int _media_db_get_media_group(media_group_e group, filter_h filter, media_group_ char *option_query = NULL; char *name = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_GROUP_LIST_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_GROUP_LIST, __media_db_get_group_name(group)); + select_query = g_strdup_printf(SELECT_MEDIA_GROUP_LIST, __media_db_get_group_name(group)); ret = __media_db_make_query(filter, &condition_query, &option_query); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -590,18 +560,14 @@ int _media_db_get_album(filter_h filter, media_album_cb callback, void *user_dat char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (_filter && STRING_VALID(_filter->storage_id)) select_query = g_strdup_printf(SELECT_ALBUM_LIST, _filter->storage_id); else select_query = g_strdup_printf(SELECT_ALBUM_LIST, DB_VIEW_MEDIA); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_ALBUM_LIST_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_ALBUM_LIST); + select_query = g_strdup(SELECT_ALBUM_LIST); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -643,18 +609,14 @@ int _media_db_get_folder(filter_h filter, media_folder_cb callback, void *user_d char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (_filter && STRING_VALID(_filter->storage_id)) select_query = g_strdup_printf(SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id); else select_query = g_strdup_printf(SELECT_FOLDER_LIST, DB_VIEW_MEDIA); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_FOLDER_LIST_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_FOLDER_LIST); + select_query = g_strdup(SELECT_FOLDER_LIST); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -670,12 +632,14 @@ int _media_db_get_folder(filter_h filter, media_folder_cb callback, void *user_d while (sqlite3_step(stmt) == SQLITE_ROW) { media_folder_s *_folder = g_new0(media_folder_s, 1); - +#ifdef _USE_TVPD_MODE _folder->folder_id = g_strdup((const char *)sqlite3_column_text(stmt, 0)); +#else + _folder->folder_id = g_strdup_printf("%lld", sqlite3_column_int64(stmt, 0)); +#endif _folder->path = g_strdup((const char *)sqlite3_column_text(stmt, 1)); _folder->name = g_strdup((const char *)sqlite3_column_text(stmt, 2)); - _folder->storage_type = sqlite3_column_int(stmt, 3); - _folder->storage_uuid = g_strdup((const char *)sqlite3_column_text(stmt, 4)); + _folder->storage_uuid = g_strdup((const char *)sqlite3_column_text(stmt, 3)); if (callback((media_folder_h)_folder, user_data) == false) { media_folder_destroy((media_folder_h) _folder); @@ -817,9 +781,8 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (STRING_VALID(media_id)) { //get bookmark by media_id if (_filter && STRING_VALID(_filter->storage_id)) select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_MEDIA_ID, _filter->storage_id, media_id); @@ -832,14 +795,10 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark select_query = g_strdup_printf(SELECT_BOOKMARK_LIST, DB_VIEW_MEDIA); } #else - if (STRING_VALID(media_id)) { //get bookmark by media_id + if (STRING_VALID(media_id)) select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_MEDIA_ID, media_id); - } else { - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_BOOKMARK_LIST_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_BOOKMARK_LIST); - } + else + select_query = g_strdup(SELECT_BOOKMARK_LIST); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); @@ -884,9 +843,8 @@ int _media_db_get_face(const char *media_id, filter_h filter, media_face_cb call char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (STRING_VALID(media_id)) { //get face by media_id if (_filter && STRING_VALID(_filter->storage_id)) select_query = g_strdup_printf(SELECT_FACE_LIST_BY_MEDIA_ID, _filter->storage_id, media_id); @@ -899,14 +857,10 @@ int _media_db_get_face(const char *media_id, filter_h filter, media_face_cb call select_query = g_strdup_printf(SELECT_FACE_LIST, DB_VIEW_MEDIA); } #else - if (STRING_VALID(media_id)) { //get face by media_id + if (STRING_VALID(media_id)) select_query = g_strdup_printf(SELECT_FACE_LIST_BY_MEDIA_ID, media_id); - } else { - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_FACE_LIST_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_FACE_LIST); - } + else + select_query = g_strdup(SELECT_FACE_LIST); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); if (ret != MEDIA_CONTENT_ERROR_NONE) { @@ -953,8 +907,9 @@ int _media_db_get_group_item_count_by_id(int group_id, filter_h filter, group_li char *select_query = NULL; char *condition_query = NULL; char *option_query = NULL; +#ifdef _USE_TVPD_MODE filter_s *_filter = (filter_s *)filter; - +#endif switch (group_type) { case MEDIA_GROUP_ALBUM: #ifdef _USE_TVPD_MODE @@ -963,10 +918,7 @@ int _media_db_get_group_item_count_by_id(int group_id, filter_h filter, group_li else select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, DB_VIEW_MEDIA, group_id); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, group_id); + select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_ALBUM, group_id); #endif break; @@ -1032,10 +984,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou else select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE, DB_VIEW_MEDIA); #else - if (STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE); + select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA_SIMPLE); #endif } else { #ifdef _USE_TVPD_MODE @@ -1044,10 +993,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou else select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA); #else - if (STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_MEDIA_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA); + select_query = g_strdup(SELECT_MEDIA_COUNT_FROM_MEDIA); #endif need_bracket = true; } @@ -1060,10 +1006,7 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou else select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, DB_VIEW_MEDIA, group_name); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER_BY_STORAGE_ID, group_name, _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, group_name); + select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_FOLDER, group_name); #endif break; @@ -1082,14 +1025,6 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou #endif break; - case MEDIA_GROUP_STORAGE: -#ifdef _USE_TVPD_MODE - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_STORAGE, group_name, group_name); -#else - select_query = g_strdup_printf(SELECT_MEDIA_COUNT_FROM_STORAGE, group_name); -#endif - break; - case MEDIA_GROUP_FACE_BY_MEDIA_ID: #ifdef _USE_TVPD_MODE if (_filter && STRING_VALID(_filter->storage_id)) @@ -1154,7 +1089,9 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; +#ifdef _USE_TVPD_MODE filter_s *_filter = (filter_s *)filter; +#endif switch (group_type) { case MEDIA_GROUP_ALBUM: @@ -1164,10 +1101,7 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb else select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, DB_VIEW_MEDIA, group_id); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM_BY_STORAGE_ID, group_id, _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, group_id); + select_query = g_strdup_printf(SELECT_MEDIA_FROM_ALBUM, group_id); #endif break; @@ -1178,10 +1112,7 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb else select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, DB_VIEW_MEDIA, group_id); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST_BY_STORAGE_ID, group_id, _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, group_id); + select_query = g_strdup_printf(SELECT_MEDIA_FROM_PLAYLIST, group_id); #endif break; @@ -1192,10 +1123,7 @@ int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb else select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, DB_VIEW_MEDIA, group_id); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG_BY_STORAGE_ID, group_id, _filter->storage_id); - else - select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, group_id); + select_query = g_strdup_printf(SELECT_MEDIA_FROM_TAG, group_id); #endif break; @@ -1241,7 +1169,9 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; +#ifdef _USE_TVPD_MODE filter_s *_filter = (filter_s *)filter; +#endif switch (group_type) { case MEDIA_GROUP_NONE: @@ -1251,10 +1181,7 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info else select_query = g_strdup_printf(SELECT_MEDIA_ITEM, DB_VIEW_MEDIA); #else - if (_filter && STRING_VALID(_filter->storage_id)) - select_query = g_strdup_printf(SELECT_MEDIA_ITEM_BY_STORAGE_ID, _filter->storage_id); - else - select_query = g_strdup(SELECT_MEDIA_ITEM); + select_query = g_strdup(SELECT_MEDIA_ITEM); #endif break; @@ -1269,14 +1196,6 @@ int _media_db_get_group_item(const char *group_name, filter_h filter, media_info #endif break; - case MEDIA_GROUP_STORAGE: -#ifdef _USE_TVPD_MODE - select_query = g_strdup_printf(SELECT_MEDIA_FROM_STORAGE, group_name, group_name); -#else - select_query = g_strdup_printf(SELECT_MEDIA_FROM_STORAGE, group_name); -#endif - break; - default: content_error("INVALID_PARAMETER"); return MEDIA_CONTENT_ERROR_INVALID_PARAMETER; @@ -1320,9 +1239,8 @@ int _media_db_get_media_group_item_count(const char *group_name, filter_h filter char *tmp_option = NULL; char *condition_query = NULL; char *option_query = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (group < MEDIA_PVR_GROUP_DURATION) { /*media content */ if (group_name) { if (_filter && STRING_VALID(_filter->storage_id)) @@ -1361,17 +1279,10 @@ int _media_db_get_media_group_item_count(const char *group_name, filter_h filter } } #else - if (group_name) { - if (_filter && STRING_VALID(_filter->storage_id)) - sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP_BY_STORAGE_ID, __media_db_get_group_name(group), group_name, _filter->storage_id); - else - sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_COUNT_FROM_GROUP, __media_db_get_group_name(group), group_name); - } else { - if (_filter && STRING_VALID(_filter->storage_id)) - snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id); - else - snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_GROUP_NULL, __media_db_get_group_name(group)); - } + if (group_name) + sqlite3_snprintf(MAX_QUERY_SIZE, select_query, SELECT_MEDIA_COUNT_FROM_GROUP, __media_db_get_group_name(group), group_name); + else + snprintf(select_query, MAX_QUERY_SIZE, SELECT_MEDIA_COUNT_FROM_GROUP_NULL, __media_db_get_group_name(group)); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1405,9 +1316,8 @@ int _media_db_get_media_group_item(const char *group_name, filter_h filter, medi char *condition_query = NULL; char *option_query = NULL; sqlite3_stmt *stmt = NULL; - filter_s *_filter = (filter_s *)filter; - #ifdef _USE_TVPD_MODE + filter_s *_filter = (filter_s *)filter; if (group_name) { if (_filter && STRING_VALID(_filter->storage_id)) sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP, _filter->storage_id, __media_db_get_group_name(group), group_name); @@ -1420,17 +1330,10 @@ int _media_db_get_media_group_item(const char *group_name, filter_h filter, medi snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL, DB_VIEW_MEDIA, __media_db_get_group_name(group)); } #else - if (group_name) { - if (_filter && STRING_VALID(_filter->storage_id)) - sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP_BY_STORAGE_ID, __media_db_get_group_name(group), group_name, _filter->storage_id); - else - sqlite3_snprintf(sizeof(select_query), select_query, SELECT_MEDIA_FROM_GROUP, __media_db_get_group_name(group), group_name); - } else { - if (_filter && STRING_VALID(_filter->storage_id)) - snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL_BY_STORAGE_ID, __media_db_get_group_name(group), _filter->storage_id); - else - snprintf(select_query, sizeof(select_query), SELECT_MEDIA_FROM_GROUP_NULL, __media_db_get_group_name(group)); - } + if (group_name) + sqlite3_snprintf(MAX_QUERY_SIZE, select_query, SELECT_MEDIA_FROM_GROUP, __media_db_get_group_name(group), group_name); + else + snprintf(select_query, MAX_QUERY_SIZE, SELECT_MEDIA_FROM_GROUP_NULL, __media_db_get_group_name(group)); #endif ret = __media_db_make_query(filter, &condition_query, &option_query); content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); @@ -1458,41 +1361,7 @@ int _media_db_get_media_group_item(const char *group_name, filter_h filter, medi return ret; } -int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data) -{ - int ret = MEDIA_CONTENT_ERROR_NONE; - char *condition_query = NULL; - char *option_query = NULL; - sqlite3_stmt *stmt = NULL; - - ret = __media_db_make_query(filter, &condition_query, &option_query); - content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - - ret = _content_query_prepare(SELECT_STORAGE_LIST, condition_query, option_query, &stmt); - g_free(condition_query); - g_free(option_query); - content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); - - while (sqlite3_step(stmt) == SQLITE_ROW) { - media_storage_s *_storage = g_new0(media_storage_s, 1); - - _storage->storage_id = g_strdup((const char *)sqlite3_column_text(stmt, 0)); - _storage->storage_path = g_strdup((const char *)sqlite3_column_text(stmt, 1)); - _storage->storage_type = sqlite3_column_int(stmt, 2); - - if (callback((media_storage_h)_storage, user_data) == false) { - media_storage_destroy((media_storage_h) _storage); - break; - } - - media_storage_destroy((media_storage_h) _storage); - } - - SQLITE3_FINALIZE(stmt); - - return ret; -} - +#ifdef _USE_TVPD_MODE int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id) { int ret = MEDIA_CONTENT_ERROR_NONE; @@ -1517,7 +1386,6 @@ int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id return ret; } -#ifdef _USE_TVPD_MODE int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_group_e group, media_pvr_cb callback, void *user_data) { int ret = MEDIA_CONTENT_ERROR_NONE; @@ -1786,4 +1654,38 @@ int _media_db_get_uhd(filter_h filter, media_uhd_cb callback, void *user_data) return ret; } + +int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data) +{ + int ret = MEDIA_CONTENT_ERROR_NONE; + char *condition_query = NULL; + char *option_query = NULL; + sqlite3_stmt *stmt = NULL; + + ret = __media_db_make_query(filter, &condition_query, &option_query); + content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); + + ret = _content_query_prepare(SELECT_STORAGE_LIST, condition_query, option_query, &stmt); + g_free(condition_query); + g_free(option_query); + content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret); + + while (sqlite3_step(stmt) == SQLITE_ROW) { + media_storage_s *_storage = g_new0(media_storage_s, 1); + + _storage->storage_id = g_strdup((const char *)sqlite3_column_text(stmt, 0)); + _storage->storage_path = g_strdup((const char *)sqlite3_column_text(stmt, 1)); + + if (callback((media_storage_h)_storage, user_data) == false) { + media_storage_destroy((media_storage_h) _storage); + break; + } + + media_storage_destroy((media_storage_h) _storage); + } + + SQLITE3_FINALIZE(stmt); + + return ret; +} #endif