X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmedia_filter.c;h=afb90d99c766352e201e4da3b1041712ffb72d6d;hb=9d15701e2caada225fd93cd0b4b14fee53a9263d;hp=fe498e0caa9d50d84952359967ae16d137b511f1;hpb=6b7f771c6778c71081c959fc8f2d3375a8d29a63;p=platform%2Fcore%2Fapi%2Fmedia-content.git diff --git a/src/media_filter.c b/src/media_filter.c index fe498e0..afb90d9 100755 --- a/src/media_filter.c +++ b/src/media_filter.c @@ -17,33 +17,6 @@ #include #include -#include - -static bool __is_pinyin_needed(void) -{ - char *lang = NULL; - const char *china = "zh_CN"; - const char *hongkong = "zh_HK"; - int ret = FALSE; - - /*Check CSC first*/ - bool pinyin_support = FALSE; - media_svc_check_pinyin_support(&pinyin_support); - if (pinyin_support) { - /*Check Language Setting*/ - lang = vconf_get_str(VCONFKEY_LANGSET); - content_retvm_if(lang == NULL, ret, "Fail to get string of language set"); - - if ((strncmp(china, lang, strlen(china)) == 0) || - (strncmp(hongkong, lang, strlen(hongkong)) == 0)) { - ret = TRUE; - } - - SAFE_FREE(lang); - } - - return ret; -} static const char *__get_order_str(media_content_order_e order_enum) { @@ -65,10 +38,7 @@ static const char *__get_collate_str(media_content_collation_e collate_type) case MEDIA_CONTENT_COLLATE_RTRIM: return " COLLATE RTRIM "; case MEDIA_CONTENT_COLLATE_LOCALIZED: - if (__is_pinyin_needed()) - return " COLLATE NOCASE "; - else - return " COLLATE localized "; + return " COLLATE localized "; default: return " "; } @@ -101,9 +71,9 @@ static bool __check_order_type(media_content_order_e order) int _media_filter_build_condition(bool is_full, const char *condition, media_content_collation_e collate_type, char **result) { - content_retvm_if(!result, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid result"); - content_retvm_if(!STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition"); - content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type"); + content_retip_if_fail(condition); + content_retip_if_fail(__check_collate_type(collate_type)); + content_retip_if_fail(result); if (is_full) *result = g_strdup_printf("(%s)", condition); @@ -119,8 +89,8 @@ int _media_filter_build_option(filter_h filter, char **result) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter"); - content_retvm_if(!result, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid result"); + content_retip_if_fail(filter); + content_retip_if_fail(result); if (!STRING_VALID(_filter->order_keyword)) { *result = g_strdup_printf(" LIMIT %d, %d", _filter->offset, _filter->count); @@ -140,7 +110,11 @@ int _media_filter_build_option(filter_h filter, char **result) _filter->offset, _filter->count); } else { +#ifdef _USE_TVPD_MODE *result = g_strdup_printf("%s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count); +#else + *result = g_strdup_printf("ORDER BY %s LIMIT %d, %d", _filter->order_keyword, _filter->offset, _filter->count); +#endif } return MEDIA_CONTENT_ERROR_NONE; @@ -150,10 +124,9 @@ int media_filter_create(filter_h *filter) { int ret = MEDIA_CONTENT_ERROR_NONE; - content_retvm_if(filter == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "invalid filter"); + content_retip_if_fail(filter); - filter_s *_filter = (filter_s *)calloc(1, sizeof(filter_s)); - content_retvm_if(_filter == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY"); + filter_s *_filter = g_new0(filter_s, 1); _filter->storage_id = NULL; _filter->condition = NULL; @@ -174,12 +147,13 @@ int media_filter_create(filter_h *filter) int media_filter_destroy(filter_h filter) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter"); - SAFE_FREE(_filter->storage_id); - SAFE_FREE(_filter->condition); - SAFE_FREE(_filter->order_keyword); - SAFE_FREE(_filter); + content_retip_if_fail(filter); + + g_free(_filter->storage_id); + g_free(_filter->condition); + g_free(_filter->order_keyword); + g_free(_filter); return MEDIA_CONTENT_ERROR_NONE; } @@ -187,7 +161,8 @@ int media_filter_destroy(filter_h filter) int media_filter_set_offset(filter_h filter, int offset, int count) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter"); + + content_retip_if_fail(filter); _filter->offset = offset; _filter->count = count; @@ -199,23 +174,15 @@ int media_filter_set_condition(filter_h filter, const char *condition, media_con { int ret = MEDIA_CONTENT_ERROR_NONE; filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter"); - content_retvm_if(!STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition"); - content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type"); - _filter->is_full_condition = false; - SAFE_FREE(_filter->condition); + content_retip_if_fail(filter); + content_retip_if_fail(STRING_VALID(condition)); + content_retip_if_fail(__check_collate_type(collate_type)); - _filter->condition = _media_content_replace_path_in_condition(condition); + _filter->is_full_condition = false; + g_free(_filter->condition); - /* FIXME - If an error is occured in _media_content_replace_path_in_condition(), - A suitable return value is 'MEDIA_CONTENT_ERROR_INVALID_OPERATION'. - However, it is not stated in the description of media_filter_set_condition(). - Therefore, use 'MEDIA_CONTENT_ERROR_OUT_OF_MEMORY' temporarily. - It will be modified after removing _media_content_replace_path_in_condition() function. - */ - content_retvm_if(_filter->condition == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "Fail to set condition"); + _filter->condition = g_strdup(condition); content_sec_debug("Condition string : %s", _filter->condition); @@ -227,13 +194,15 @@ int media_filter_set_condition(filter_h filter, const char *condition, media_con int media_filter_set_order(filter_h filter, media_content_order_e order_type, const char *order_keyword, media_content_collation_e collate_type) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid filter"); - content_retvm_if(!STRING_VALID(order_keyword), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid order_keyword"); - content_retvm_if(!__check_order_type(order_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid order_type"); - content_retvm_if(!__check_collate_type(collate_type), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type"); + + content_retip_if_fail(filter); + content_retip_if_fail(STRING_VALID(order_keyword)); + content_retip_if_fail(__check_order_type(order_type)); + content_retip_if_fail(__check_collate_type(collate_type)); _filter->is_full_order = false; - SAFE_FREE(_filter->order_keyword); + + g_free(_filter->order_keyword); _filter->order_keyword = g_strdup(order_keyword); _filter->order_type = order_type; @@ -241,25 +210,29 @@ int media_filter_set_order(filter_h filter, media_content_order_e order_type, co return MEDIA_CONTENT_ERROR_NONE; } - +#ifdef _USE_TVPD_MODE int media_filter_set_storage(filter_h filter, const char *storage_id) { - content_warn("DEPRECATION WARNING: media_filter_set_storage() is deprecated and will be removed from next release. Use media_filter_set_condition() with MEDIA_PATH keyword instead."); filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !STRING_VALID(storage_id), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); - SAFE_FREE(_filter->storage_id); + content_retip_if_fail(filter); + content_retip_if_fail(STRING_VALID(storage_id)); + g_free(_filter->storage_id); _filter->storage_id = g_strdup(storage_id); + content_sec_debug("storage_id : %s", _filter->storage_id); return MEDIA_CONTENT_ERROR_NONE; } - +#endif int media_filter_get_offset(filter_h filter, int *offset, int *count) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !offset || !count, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + content_retip_if_fail(filter); + content_retip_if_fail(offset); + content_retip_if_fail(count); *offset = _filter->offset; *count = _filter->count; @@ -270,9 +243,10 @@ int media_filter_get_offset(filter_h filter, int *offset, int *count) int media_filter_get_condition(filter_h filter, char **condition, media_content_collation_e *collate_type) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid _filter"); - content_retvm_if(!condition, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid condition"); - content_retvm_if(!collate_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid collate_type"); + + content_retip_if_fail(filter); + content_retip_if_fail(condition); + content_retip_if_fail(collate_type); if (!_filter->is_full_condition) *condition = g_strdup(_filter->condition); @@ -285,8 +259,11 @@ int media_filter_get_condition(filter_h filter, char **condition, media_content_ int media_filter_get_order(filter_h filter, media_content_order_e *order_type, char **order_keyword, media_content_collation_e *collate_type) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !order_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); - content_retvm_if(!order_keyword || !collate_type, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + content_retip_if_fail(filter); + content_retip_if_fail(order_type); + content_retip_if_fail(order_keyword); + content_retip_if_fail(collate_type); if (!_filter->is_full_order) *order_keyword = g_strdup(_filter->order_keyword); @@ -297,34 +274,18 @@ int media_filter_get_order(filter_h filter, media_content_order_e *order_type, c return MEDIA_CONTENT_ERROR_NONE; } -int media_filter_get_storage(filter_h filter, char **storage_id) +int media_filter_set_condition_v2(filter_h filter, const char *condition) { - content_warn("DEPRECATION WARNING: media_filter_get_storage() is deprecated and will be removed from next release."); filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !storage_id, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); - *storage_id = g_strdup(_filter->storage_id); + content_retip_if_fail(filter); + content_retip_if_fail(STRING_VALID(condition)); - return MEDIA_CONTENT_ERROR_NONE; -} + _filter->is_full_condition = true; -int media_filter_set_condition_v2(filter_h filter, const char *condition) -{ - filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !STRING_VALID(condition), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + g_free(_filter->condition); - _filter->is_full_condition = true; - SAFE_FREE(_filter->condition); - - /* FIXME - If an error is occured in _media_content_replace_path_in_condition(), - A suitable return value is 'MEDIA_CONTENT_ERROR_INVALID_OPERATION'. - However, it is not stated in the description of media_filter_set_condition(). - Therefore, use 'MEDIA_CONTENT_ERROR_OUT_OF_MEMORY' temporarily. - It will be modified after removing _media_content_replace_path_in_condition() function. - */ - _filter->condition = _media_content_replace_path_in_condition(condition); - content_retvm_if(_filter->condition == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "Fail to set condition"); + _filter->condition = g_strdup(condition); content_sec_debug("Condition string : %s", _filter->condition); @@ -334,7 +295,9 @@ int media_filter_set_condition_v2(filter_h filter, const char *condition) int media_filter_get_condition_v2(filter_h filter, char **condition) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !condition, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + content_retip_if_fail(filter); + content_retip_if_fail(condition); if (_filter->is_full_condition) *condition = g_strdup(_filter->condition); @@ -345,11 +308,13 @@ int media_filter_get_condition_v2(filter_h filter, char **condition) int media_filter_set_order_v2(filter_h filter, const char *order) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !STRING_VALID(order), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + content_retip_if_fail(filter); + content_retip_if_fail(STRING_VALID(order)); _filter->is_full_order = true; - SAFE_FREE(_filter->order_keyword); + g_free(_filter->order_keyword); _filter->order_keyword = g_strdup(order); return MEDIA_CONTENT_ERROR_NONE; @@ -358,11 +323,12 @@ int media_filter_set_order_v2(filter_h filter, const char *order) int media_filter_get_order_v2(filter_h filter, char **order) { filter_s *_filter = (filter_s *)filter; - content_retvm_if(!_filter || !order, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter"); + + content_retip_if_fail(filter); + content_retip_if_fail(order); if (_filter->is_full_order) *order = g_strdup(_filter->order_keyword); return MEDIA_CONTENT_ERROR_NONE; } -