static GMutex db_mutex;
static void **func_array;
-static void *func_handle = NULL; /*dlopen handle */
+static void *func_handle = NULL;
static int scan_other_type = -1;
typedef int (*CLEANUP_DB)(sqlite3*, uid_t);
"refresh_item",
};
- /*get handle*/
func_handle = dlopen(CONFIG_PATH, RTLD_LAZY);
MS_DBG_RETVM_IF(!func_handle, MS_MEDIA_ERR_INTERNAL, "%s", dlerror());
- dlerror(); /* Clear any existing error */
+ dlerror();
func_array = g_new0(gpointer, eFUNC_MAX);
- /*add functions to array */
for (func_index = 0; func_index < eFUNC_MAX ; func_index++) {
func_array[func_index] = dlsym(func_handle, func_list[func_index]);
if (func_array[func_index] == NULL) {
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((CLEANUP_DB)func_array[eCLEANUP_DB])(handle, uid); /*dlopen*/
+ ret = ((CLEANUP_DB)func_array[eCLEANUP_DB])(handle, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "CLEANUP_DB failed [%d]", ret);
MS_DBG_INFO("Cleanup Media DB");
int ret = MS_MEDIA_ERR_NONE;
bool modified = false;
- /*check exist in Media DB, If file is not exist, insert data in DB. */
ret = __ms_check_item_exist(handle, storage_id, path, &modified);
if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
ret = ms_insert_item_batch(handle, storage_id, path, uid);
} else if (ret == MS_MEDIA_ERR_NONE) {
if (!modified) {
- /*if meta data of file exist, change valid field to "1" */
- ret = ((SET_ITEM_VALIDITY)func_array[eSET_VALIDITY])(storage_id, path, true, true, uid); /*dlopen*/
+ ret = ((SET_ITEM_VALIDITY)func_array[eSET_VALIDITY])(storage_id, path, true, true, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_ITEM_VALIDITY failed [%d]", ret);
} else {
- /* the file has same name but it is changed, so we have to update DB */
- ret = ((REFRESH_ITEM)func_array[eREFRESH_ITEM])(handle, storage_id, path, uid); /*dlopen*/
+ ret = ((REFRESH_ITEM)func_array[eREFRESH_ITEM])(handle, storage_id, path, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "REFRESH_ITEM failed [%d]", ret);
}
} else {
int ret = MS_MEDIA_ERR_NONE;
bool modified = false;
- /*check exist in Media DB, If file is not exist, insert data in DB. */
ret = __ms_check_item_exist(handle, storage_id, path, &modified);
if (ret == MS_MEDIA_ERR_DB_NO_RECORD) {
ret = ms_scan_item_batch(handle, storage_id, path, uid);
} else if (ret == MS_MEDIA_ERR_NONE) {
if (!modified) {
- /*if meta data of file exist, change valid field to "1" */
- ret = ((SET_ITEM_VALIDITY)func_array[eSET_VALIDITY])(storage_id, path, true, true, uid); /*dlopen*/
+ ret = ((SET_ITEM_VALIDITY)func_array[eSET_VALIDITY])(storage_id, path, true, true, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_ITEM_VALIDITY failed [%d]", ret);
} else {
- /* the file has same name but it is changed, so we have to update DB */
- ret = ((REFRESH_ITEM)func_array[eREFRESH_ITEM])(handle, storage_id, path, uid); /*dlopen*/
+ ret = ((REFRESH_ITEM)func_array[eREFRESH_ITEM])(handle, storage_id, path, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "REFRESH_ITEM failed [%d]", ret);
}
} else {
ret = ms_user_get_storage_type(uid, path, &storage_type);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "Fail to get storage type");
- ret = ((INSERT_ITEM)func_array[eINSERT_BATCH])(handle, storage_id, path, storage_type, uid); /*dlopen*/
+ ret = ((INSERT_ITEM)func_array[eINSERT_BATCH])(handle, storage_id, path, storage_type, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "INSERT_ITEM failed [%d]", ret);
return ret;
ret = ms_user_get_storage_type(uid, path, &storage_type);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "Fail to get storage type");
- ret = ((INSERT_ITEM_SCAN)func_array[eINSERT_SCAN])(handle, storage_id, path, storage_type, uid); /*dlopen*/
+ ret = ((INSERT_ITEM_SCAN)func_array[eINSERT_SCAN])(handle, storage_id, path, storage_type, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "INSERT_ITEM_SCAN failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((GET_AND_EXTRACT_MEDIA)func_array[eGET_AND_EXTRACT_MEDIA])(handle, storage_id, scan_type, path); /*dlopen*/
+ ret = ((GET_AND_EXTRACT_MEDIA)func_array[eGET_AND_EXTRACT_MEDIA])(handle, storage_id, scan_type, path);
if (ret != MS_MEDIA_ERR_NONE && ret != MS_MEDIA_ERR_DB_NO_RECORD)
MS_DBG_ERR("GET_AND_EXTRACT_MEDIA failed [%d]", ret);
return ret;
}
- /*Delete thumbnails*/
for (i = 0; i < thumb_list->len; i++) {
path = g_ptr_array_index(thumb_list, i);
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((DELETE_ALL_INVALID_ITEMS_IN_FOLDER)func_array[eDELETE_FOLDER])(handle, storage_id, path, is_recursive, uid); /*dlopen*/
+ ret = ((DELETE_ALL_INVALID_ITEMS_IN_FOLDER)func_array[eDELETE_FOLDER])(handle, storage_id, path, is_recursive, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "DELETE_ALL_INVALID_ITEMS_IN_FOLDER failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((SEND_DIR_UPDATE_NOTI)func_array[eSEND_DIR_UPDATE_NOTI])(path, folder_id, (int)noti_type, pid); /*dlopen*/
+ ret = ((SEND_DIR_UPDATE_NOTI)func_array[eSEND_DIR_UPDATE_NOTI])(path, folder_id, (int)noti_type, pid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SEND_DIR_UPDATE_NOTI failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((UPDATE_FOLDER_TIME)func_array[eUPDATE_FOLDER_TIME])(handle, storage_id, folder_path, uid); /*dlopen*/
+ ret = ((UPDATE_FOLDER_TIME)func_array[eUPDATE_FOLDER_TIME])(handle, storage_id, folder_path, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "UPDATE_FOLDER_TIME failed [%d]", ret);
return ret;
MS_DBG_FENTER();
- ret = ((GET_STORAGE_ID)func_array[eGET_STORAGE_ID])(handle, path, storage_id, uid); /*dlopen*/
+ ret = ((GET_STORAGE_ID)func_array[eGET_STORAGE_ID])(handle, path, storage_id, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_STORAGE_ID failed [%d]", ret);
MS_DBG("storage_id [%s]", storage_id);
MS_DBG_FENTER();
- ret = ((SET_STORAGE_SCAN_STATUS)func_array[eSET_STORAGE_SCAN_STATUS])(handle, storage_id, status, uid); /*dlopen*/
+ ret = ((SET_STORAGE_SCAN_STATUS)func_array[eSET_STORAGE_SCAN_STATUS])(handle, storage_id, status, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_STORAGE_SCAN_STATUS failed [%d]", ret);
MS_DBG("storage_id [%s], scan_status [%d]", storage_id, scan_status);
ret = ms_user_get_storage_type(uid, path, &storage_type);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "Fail to get storage type");
- ret = ((INSERT_FOLDER)func_array[eINSERT_FOLDER])(handle, storage_id, path, storage_type, uid); /*dlopen*/
+ ret = ((INSERT_FOLDER)func_array[eINSERT_FOLDER])(handle, storage_id, path, storage_type, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "INSERT_FOLDER failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((SET_FOLDER_VALIDITY)func_array[eSET_FOLDER_VALIDITY])(handle, storage_id, path, validity, is_recursive, uid); /*dlopen*/
+ ret = ((SET_FOLDER_VALIDITY)func_array[eSET_FOLDER_VALIDITY])(handle, storage_id, path, validity, is_recursive, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_FOLDER_VALIDITY failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((GET_UUID)func_array[eGET_UUID])(uuid); /*dlopen*/
+ ret = ((GET_UUID)func_array[eGET_UUID])(uuid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_UUID failed [%d]", ret);
return ret;
MS_DBG_FENTER();
- ret = ((UPDATE_STORAGE)func_array[eUPDATE_STORAGE])(handle, storage_id, storage_path, uid); /*dlopen*/
+ ret = ((UPDATE_STORAGE)func_array[eUPDATE_STORAGE])(handle, storage_id, storage_path, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "UPDATE_STORAGE failed [%d]", ret);
MS_DBG_FLEAVE();
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((SET_STORAGE_VALIDITY)func_array[eSET_STORAGE_VALIDITY])(handle, storage_id, validity, uid); /*dlopen*/
+ ret = ((SET_STORAGE_VALIDITY)func_array[eSET_STORAGE_VALIDITY])(handle, storage_id, validity, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_STORAGE_VALIDITY failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((SET_ALL_STORAGE_VALIDITY)func_array[eSET_ALL_STORAGE_VALIDITY])(handle, validity, uid); /*dlopen*/
+ ret = ((SET_ALL_STORAGE_VALIDITY)func_array[eSET_ALL_STORAGE_VALIDITY])(handle, validity, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_ALL_STORAGE_VALIDITY failed [%d]", ret);
return ret;
MS_DBG_FENTER();
- ret = ((UPDATE_ITEM_META)func_array[eUPDATE_ITEM_META])(handle, uid); /*dlopen*/
+ ret = ((UPDATE_ITEM_META)func_array[eUPDATE_ITEM_META])(handle, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "UPDATE_ITEM_META failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((DELETE_INVALID_FOLDER_BY_PATH)func_array[eDELETE_INVALID_FOLDER_BY_PATH])(handle, storage_id, folder_path, uid); /*dlopen*/
+ ret = ((DELETE_INVALID_FOLDER_BY_PATH)func_array[eDELETE_INVALID_FOLDER_BY_PATH])(handle, storage_id, folder_path, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "DELETE_INVALID_FOLDER_BY_PATH failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((CHECK_FOLDER_EXIST)func_array[eCHECK_FOLDER_EXIST])(handle, storage_id, folder_path); /*dlopen*/
+ ret = ((CHECK_FOLDER_EXIST)func_array[eCHECK_FOLDER_EXIST])(handle, storage_id, folder_path);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "CHECK_FOLDER_EXIST failed [%d]", ret);
return ret;
return ret;
}
-/* FOR BULK COMMIT */
void ms_register_start(bool noti_status, int pid)
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((INSERT_ITEM_BEGIN)func_array[eINSERT_BEGIN])(noti_status, pid);/*dlopen*/
+ ret = ((INSERT_ITEM_BEGIN)func_array[eINSERT_BEGIN])(noti_status, pid);
if (ret != MS_MEDIA_ERR_NONE)
MS_DBG_ERR("INSERT_ITEM_BEGIN failed [%d]", ret);
}
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((INSERT_ITEM_END)func_array[eINSERT_END])(uid);/*dlopen*/
+ ret = ((INSERT_ITEM_END)func_array[eINSERT_END])(uid);
if (ret != MS_MEDIA_ERR_NONE)
MS_DBG_ERR("INSERT_ITEM_END failed [%d]", ret);
}
int ret = MS_MEDIA_ERR_NONE;
int status = 0;
- ret = ((GET_FOLDER_SCAN_STATUS)func_array[eGET_FOLDER_SCAN_STATUS])(handle, storage_id, path, &status); /*dlopen*/
+ ret = ((GET_FOLDER_SCAN_STATUS)func_array[eGET_FOLDER_SCAN_STATUS])(handle, storage_id, path, &status);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_FOLDER_SCAN_STATUS failed [%d]", ret);
*scan_status = status;
int ret = MS_MEDIA_ERR_NONE;
int status = scan_status;
- ret = ((SET_FOLDER_SCAN_STATUS)func_array[eSET_FOLDER_SCAN_STATUS])(handle, storage_id, path, status, uid); /*dlopen*/
+ ret = ((SET_FOLDER_SCAN_STATUS)func_array[eSET_FOLDER_SCAN_STATUS])(handle, storage_id, path, status, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "SET_FOLDER_SCAN_STATUS failed [%d]", ret);
MS_DBG_SLOG("OK path = [%s], scan_status = [%d]", path, scan_status);
int ret = MS_MEDIA_ERR_NONE;
MS_DBG("path = [%s], storage_id = [%s]", path, storage_id);
- ret = ((CHECK_FOLDER_MODIFIED)func_array[eCHECK_FOLDER_MODIFIED])(handle, path, storage_id, modified); /*dlopen*/
+ ret = ((CHECK_FOLDER_MODIFIED)func_array[eCHECK_FOLDER_MODIFIED])(handle, path, storage_id, modified);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "CHECK_FOLDER_MODIFIED failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((GET_NULL_SCAN_FOLDER_LIST)func_array[eGET_NULL_SCAN_FOLDER_LIST])(handle, stroage_id, path, dir_array); /*dlopen*/
+ ret = ((GET_NULL_SCAN_FOLDER_LIST)func_array[eGET_NULL_SCAN_FOLDER_LIST])(handle, stroage_id, path, dir_array);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_NULL_SCAN_FOLDER_LIST failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((CHANGE_VALIDITY_ITEM_BATCH)func_array[eCHANGE_VALIDITY_ITEM_BATCH])(handle, storage_id, path, des_validity, src_validity, uid); /*dlopen*/
+ ret = ((CHANGE_VALIDITY_ITEM_BATCH)func_array[eCHANGE_VALIDITY_ITEM_BATCH])(handle, storage_id, path, des_validity, src_validity, uid);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "CHANGE_VALIDITY_ITEM_BATCH failed [%d]", ret);
return ret;
{
int ret = MS_MEDIA_ERR_NONE;
- ret = ((GET_MEDIA_TYPE)func_array[eGET_MEDIA_TYPE])(path, media_type); /*dlopen*/
+ ret = ((GET_MEDIA_TYPE)func_array[eGET_MEDIA_TYPE])(path, media_type);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_MEDIA_TYPE failed [%d]", ret);
return ret;
scan_other_type = is_supported;
}
- /* If not, check media type */
if (!scan_other_type) {
ret = ms_get_media_type(path, &media_type);
MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, false, "Failed to get media type");
void ms_batch_commit_enable(bool noti_enable, int pid)
{
- /*call for bundle commit*/
ms_register_start(noti_enable, pid);
}