uid_t _content_get_uid(void)
{
- if (content_g_uid == 0)
- return tzplatform_getuid(TZ_USER_NAME);
- else
- return content_g_uid;
+ return (content_g_uid == 0) ? tzplatform_getuid(TZ_USER_NAME) : content_g_uid;
}
int _content_query_prepare(const char *select_query, const char *condition_query, const char *option_query, sqlite3_stmt **stmt)
return ret;
}
-int _content_get_result(char *query, sqlite3_stmt **stmt)
+int _content_get_result(const char *query, sqlite3_stmt **stmt)
{
- int err = MEDIA_CONTENT_ERROR_NONE;
+ int err = SQLITE_OK;
content_retip_if_fail(_content_get_db_handle());
content_retip_if_fail(query);
int _content_query_sql(char *query_str)
{
- int ret = MEDIA_CONTENT_ERROR_NONE;
-
- /*DB will be updated by Media Server.*/
- ret = media_db_request_update_db(query_str, _content_get_uid());
-
- return _content_error_capi(ret);
+ return _content_error_capi(media_db_request_update_db(query_str, _content_get_uid()));
}
int media_content_connect(void)
int media_content_scan_file(const char *path)
{
int ret = MEDIA_CONTENT_ERROR_NONE;
- char *folder_path = NULL;
- int check_file = MEDIA_CONTENT_ERROR_NONE;
+ g_autofree gchar *folder_path = NULL;
char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
content_retip_if_fail(STRING_VALID(path));
return _content_error_capi(ret);
}
- check_file = _media_util_check_file_exist(path);
- if (check_file == MEDIA_CONTENT_ERROR_NONE) {
- /* This means this path has to be inserted or refreshed */
- folder_path = g_path_get_dirname(path);
+ ret = _media_util_check_file_exist(path);
+ content_retvm_if(ret == MEDIA_CONTENT_ERROR_PERMISSION_DENIED, ret, "Permission denied");
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ content_debug("No file. Try to delete from DB");
+ ret = media_svc_delete_item_by_path(_content_get_db_handle(), storage_id, path, _content_get_uid());
+ content_retvm_if(ret == MS_MEDIA_ERR_DB_NO_RECORD, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid path");
+ return _content_error_capi(ret);
+ }
- if (_media_util_is_ignorable_dir(folder_path)) {
- g_free(folder_path);
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ folder_path = g_path_get_dirname(path);
+ content_retv_if(_media_util_is_ignorable_dir(folder_path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+ content_retvm_if(!_media_util_check_support_media_type(path), MEDIA_CONTENT_ERROR_NOT_SUPPORTED, "Unsupported type");
- g_free(folder_path);
-
- /* check feature */
- content_retvm_if(!_media_util_check_support_media_type(path), MEDIA_CONTENT_ERROR_NOT_SUPPORTED, "Unsupported media type");
-
- ret = media_svc_check_item_exist_by_path(_content_get_db_handle(), storage_id, path);
- if (ret == MS_MEDIA_ERR_NONE) {
- /* Refresh */
- ret = media_svc_refresh_item(_content_get_db_handle(), false, storage_id, path, _content_get_uid());
- if (ret != MS_MEDIA_ERR_NONE) {
- content_error("media_svc_refresh_item failed : %d", ret);
- return _content_error_capi(ret);
- }
-
- } else if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
- /* Insert */
- ret = media_svc_insert_item_immediately(_content_get_db_handle(), storage_id, path, _content_get_uid());
- if (ret != MS_MEDIA_ERR_NONE) {
- if (ret == MS_MEDIA_ERR_DB_CONSTRAINT_FAIL) {
- content_error("This item is already inserted. This may be normal operation because other process already did this");
- ret = MEDIA_CONTENT_ERROR_NONE;
- } else {
- content_error("media_svc_insert_item_immediately failed : %d", ret);
- }
-
- return _content_error_capi(ret);
- }
- } else {
- content_error("media_svc_check_item_exist_by_path failed : %d", ret);
- return _content_error_capi(ret);
- }
- } else if (check_file == MEDIA_CONTENT_ERROR_PERMISSION_DENIED) {
- content_error("You have no permission for this file %d", ret);
- return MEDIA_CONTENT_ERROR_PERMISSION_DENIED;
- } else {
- /* This means this path has to be deleted */
- content_debug("This path doesn't exists in file system... So now start to delete it from DB");
- ret = media_svc_delete_item_by_path(_content_get_db_handle(), storage_id, path, _content_get_uid());
- if (ret != MS_MEDIA_ERR_NONE) {
- if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
- content_error("Does not exist in media DB also... So, this is an invalid parameter");
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- content_error("media_svc_delete_item_by_path failed : %d", ret);
- return _content_error_capi(ret);
- }
+ ret = media_svc_check_item_exist_by_path(_content_get_db_handle(), storage_id, path);
+ if (ret == MS_MEDIA_ERR_NONE) {
+ /* Refresh */
+ ret = media_svc_refresh_item(_content_get_db_handle(), false, storage_id, path, _content_get_uid());
+ content_retvm_if(ret != MS_MEDIA_ERR_NONE, _content_error_capi(ret), "Refresh failed");
+ return MEDIA_CONTENT_ERROR_NONE;
+ }
+
+ if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
+ /* Insert */
+ ret = media_svc_insert_item_immediately(_content_get_db_handle(), storage_id, path, _content_get_uid());
+ content_retvm_if(ret == MS_MEDIA_ERR_DB_CONSTRAINT_FAIL, MEDIA_CONTENT_ERROR_NONE, "[No error] Already inserted");
+ content_retvm_if(ret != MS_MEDIA_ERR_NONE, _content_error_capi(ret), "Insertion failed");
+ return MEDIA_CONTENT_ERROR_NONE;
}
+ content_error("media_svc_check_item_exist_by_path failed : %d", ret);
+
return _content_error_capi(ret);
}
-void _media_content_scan_cb(media_request_result_s* result, void *user_data)
+static void __media_content_scan_cb(media_request_result_s *result, void *user_data)
{
- int err = -1;
+ int err = _content_error_capi(result->result);
media_content_scan_cb_data *cb_data = user_data;
- err = _content_error_capi(result->result);
#ifdef _USE_TVPD_MODE
if (result->request_type != MEDIA_REQUEST_SCAN_COMPLETE &&
result->request_type != MEDIA_REQUEST_SCAN_PARTIAL &&
g_free(cb_data);
#endif
-
- return;
}
#ifdef _USE_TVPD_MODE
-void _media_content_scan_cb_v2(media_request_result_s* result, void *user_data)
+static void __media_content_scan_cb_v2(media_request_result_s* result, void *user_data)
{
- int err = -1;
+ int err = _content_error_capi(result->result);
media_content_scan_cb_data_v2 *cb_data = user_data;
media_content_complete_phase_e complete_phase = -1;
if (!cb_data)
content_debug("cb_data is NULL");
- err = _content_error_capi(result->result);
+
content_debug("result is %d", err);
if (result->request_type == MEDIA_REQUEST_SCAN_PARTIAL)
(result->request_type != MEDIA_REQUEST_SCAN_PARTIAL) &&
(result->request_type != MEDIA_RECURSIVE_START))
g_free(cb_data);
-
- return;
}
#endif
content_retip_if_fail(callback);
ret = _media_content_check_dir(path);
- content_retvm_if(ret == MEDIA_CONTENT_ERROR_PERMISSION_DENIED, ret, "Permission Denied");
+ content_retvm_if(ret == MEDIA_CONTENT_ERROR_PERMISSION_DENIED, ret, "Permission denied");
content_sec_debug("Path : %s", path);
if (ret == MEDIA_CONTENT_ERROR_NONE) {
/* If directory exist check that's ignore directory or not*/
- content_retvm_if(_media_util_is_ignorable_dir(path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid folder path");
+ content_retvm_if(_media_util_is_ignorable_dir(path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid path");
} else {
/* This means this folder has to be deleted */
/* Or, it is real invalid path.. check storage type */
- if (!ms_user_is_valid_path(_content_get_uid(), path)) {
- content_error("ms_user_is_valid_path failed : %d", ret);
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ content_retvm_if(!ms_user_is_valid_path(_content_get_uid(), path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid path");
- content_debug("This path doesn't exists in file system... So will be deleted it from DB");
+ content_debug("No directory. Try to remove from DB");
}
ret = media_svc_get_storage_id(_content_get_db_handle(), path, storage_id, _content_get_uid());
- if (ret != MS_MEDIA_ERR_NONE) {
- content_error("media_svc_get_storage_id failed : %d", ret);
- return _content_error_capi(ret);
- }
+ content_retvm_if(ret != MS_MEDIA_ERR_NONE, _content_error_capi(ret), "Failed to get storage id");
- media_content_scan_cb_data *cb_data = NULL;
- cb_data = g_new0(media_content_scan_cb_data, 1);
+ media_content_scan_cb_data *cb_data = g_new0(media_content_scan_cb_data, 1);
cb_data->callback = callback;
cb_data->user_data = user_data;
- ret = media_directory_scanning_async(path, storage_id, is_recursive, _media_content_scan_cb, cb_data, _content_get_uid());
+ ret = media_directory_scanning_async(path, storage_id, is_recursive, __media_content_scan_cb, cb_data, _content_get_uid());
if (ret != MS_MEDIA_ERR_NONE) {
content_error("media_directory_scanning_async failed : %d", ret);
g_free(cb_data);
ret = media_svc_get_storage_id(_content_get_db_handle(), path, storage_id, _content_get_uid());
/*FIX ME. need to check ret value?*/
- ret = media_directory_scanning_async(path, storage_id, is_recursive, _media_content_scan_cb_v2, cb_data, _content_get_uid());
+ ret = media_directory_scanning_async(path, storage_id, is_recursive, __media_content_scan_cb_v2, cb_data, _content_get_uid());
if (ret != MS_MEDIA_ERR_NONE) {
content_error("media_directory_scanning_async failed : %d", ret);
g_free(cb_data);
return _content_error_capi(ret);
}
-void _media_content_db_update_noti_cb(
- int pid,
- media_item_type_e item,
- media_item_update_type_e update_type,
- char* path,
- char* uuid,
- int content_type,
- char *mime_type,
- void *user_data)
+void _media_content_db_update_noti_cb(int pid,
+ media_item_type_e item,
+ media_item_update_type_e update_type,
+ char* path,
+ char* uuid,
+ int content_type,
+ char *mime_type,
+ void *user_data)
{
media_noti_cb_s *_noti_info = (media_noti_cb_s *)user_data;
- if (_noti_info != NULL && _noti_info->update_noti_cb)
+ if (_noti_info && _noti_info->update_noti_cb)
_noti_info->update_noti_cb(
MEDIA_CONTENT_ERROR_NONE,
pid,
return _content_error_capi(ret);
}
+
#ifdef _USE_TVPD_MODE
GMutex* _content_get_db_mutex(void)
{
}
g_free(_cb_data);
-
- return;
}
// LCOV_EXCL_START
static bool __media_info_isFaceRecognition_feature_supported(void)
return isFaceRecognitionSupported;
}
-
// LCOV_EXCL_STOP
static int __media_info_insert_batch(const char **path_array,
unsigned int array_length,
FILE *fp = NULL;
char list_path[BATCH_REQUEST_FILE_LEN] = {0, };
unsigned int idx = 0;
- int nwrites = 0;
+ size_t size = 0;
for (idx = 0; idx < BATCH_REQUEST_MAX; idx++) {
snprintf(list_path, BATCH_REQUEST_FILE_LEN, "/tmp/request-%ld-%d", media_content_gettid(), idx);
}
}
- if (idx == BATCH_REQUEST_MAX) {
- content_error("Too many batch request for one thread");
- return MEDIA_CONTENT_ERROR_DB_BUSY;
- }
+ content_retvm_if(idx == BATCH_REQUEST_MAX, MEDIA_CONTENT_ERROR_DB_BUSY, "Too many request");
fp = fopen(list_path, "w");
if (fp == NULL) {
}
for (idx = 0; idx < array_length; idx++) {
- if (STRING_VALID(path_array[idx])) {
- int size = strlen(path_array[idx]);
-
- ret = __media_info_check_file_validity(path_array[idx]);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- fclose(fp);
- if (unlink(list_path) < 0)
- content_stderror("failed to delete");
- return ret;
- }
+ if (!STRING_VALID(path_array[idx])) {
+ content_error("path[%d] is invalid string", idx);
+ continue;
+ }
- if (!_media_util_check_support_media_type(path_array[idx])) {
- fclose(fp);
- if (unlink(list_path) < 0)
- content_stderror("failed to delete");
- return MEDIA_CONTENT_ERROR_NOT_SUPPORTED;
- }
+ ret = __media_info_check_file_validity(path_array[idx]);
+ if (ret != MEDIA_CONTENT_ERROR_NONE)
+ goto ERROR;
- nwrites = fwrite(path_array[idx], 1, size, fp);
- if (nwrites != size) {
- content_stderror("failed to write");
- fclose(fp);
- if (unlink(list_path) < 0)
- content_stderror("failed to delete");
- return MEDIA_CONTENT_ERROR_INVALID_OPERATION;
- }
+ if (!_media_util_check_support_media_type(path_array[idx])) {
+ content_error("Not supported type: index[%d]", idx);
+ ret = MEDIA_CONTENT_ERROR_NOT_SUPPORTED;
+ goto ERROR;
+ }
- nwrites = fwrite("\n", 1, 1, fp);
- if (nwrites != 1) {
- content_stderror("failed to write");
- fclose(fp);
- if (unlink(list_path) < 0)
- content_stderror("failed to delete");
- return MEDIA_CONTENT_ERROR_INVALID_OPERATION;
- }
- } else {
- content_error("path[%d] is invalid string", idx);
+ size = strlen(path_array[idx]);
+ if (fwrite(path_array[idx], 1, size, fp) != size) {
+ content_stderror("failed to write");
+ ret = MEDIA_CONTENT_ERROR_INVALID_OPERATION;
+ goto ERROR;
+ }
+
+ if (fwrite("\n", 1, 1, fp) != 1) {
+ content_stderror("failed to write");
+ ret = MEDIA_CONTENT_ERROR_INVALID_OPERATION;
+ goto ERROR;
}
}
return _content_error_capi(ret);
}
+ return MEDIA_CONTENT_ERROR_NONE;
+ERROR:
+ fclose(fp);
+ if (unlink(list_path) < 0)
+ content_stderror("failed to delete");
+
return ret;
}
static int __media_info_check_file_validity(const char *path)
{
- char *folder_path = NULL;
+ g_autofree gchar *folder_path = NULL;
int ret = MEDIA_CONTENT_ERROR_NONE;
content_retip_if_fail(path);
-
content_retvm_if(_media_util_is_ignorable_file(path), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid ignore path");
ret = _media_util_check_file_exist(path);
folder_path = g_path_get_dirname(path);
if (_media_util_is_ignorable_dir(folder_path))
- ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-
- g_free(folder_path);
+ return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- return ret;
+ return MEDIA_CONTENT_ERROR_NONE;
}
-void _media_info_item_get_detail(sqlite3_stmt* stmt, media_info_h media)
+void _media_info_item_get_detail(sqlite3_stmt *stmt, media_info_h media)
{
media_info_s *_media = (media_info_s*)media;