add APIs to get storage info
[platform/core/api/media-content.git] / src / media_db.c
index 3f35af0..a1baf37 100755 (executable)
@@ -1655,4 +1655,39 @@ 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));
+               _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;
+}
 #endif