From cbf881c56718003d8306d01ca56b1b4092ca7d57 Mon Sep 17 00:00:00 2001 From: Kyuho Jo Date: Wed, 23 Mar 2016 14:35:03 +0900 Subject: Replace repeated codes with functions Change-Id: If73e66c73307df020d2d7acda2e37dd58fd94c12 Signed-off-by: Kyuho Jo --- include/util/util.h | 3 +++ src/data/albumdata.c | 41 +++++++++++++++-------------- src/data/mediadata.c | 74 ++++++---------------------------------------------- src/util/util.c | 58 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 86 deletions(-) diff --git a/include/util/util.h b/include/util/util.h index 846e4fc..3076e44 100644 --- a/include/util/util.h +++ b/include/util/util.h @@ -19,6 +19,7 @@ #include #include +#include bool util_check_movie_type(const char *str); bool util_launch_request(const char *appid, const char *key, const char *value); @@ -36,6 +37,8 @@ Evas_Object *util_add_table(Evas_Object *base, int padding_x, int padding_y); void util_time_string(char *str, int size, unsigned int ms, bool full); void util_up_string(char *str); +i18n_uchar* util_convert_to_UTF16_string(const char *source_string); +char* util_convert_to_UTF8_string(i18n_uchar *sourct_string); int util_get_media_index(Eina_List *list, void *info); int util_get_media_index_from_id(Eina_List *list, const char *id); diff --git a/src/data/albumdata.c b/src/data/albumdata.c index 92b816a..ae9833a 100644 --- a/src/data/albumdata.c +++ b/src/data/albumdata.c @@ -21,6 +21,7 @@ #include #include "data/datamgr.h" +#include "util/util.h" struct albumdata; @@ -194,21 +195,21 @@ static int _compare_name(struct group_info *gi, struct album_info *ai) int32_t result = -1; i18n_uchar *converted_group_name = NULL; - i18n_uchar *converted_album_name = NULL; + i18n_uchar *converted_album_title = NULL; - converted_group_name = _convert_to_UTF16_string(gi->data); - converted_album_name = _convert_to_UTF16_string(ai->name); + converted_group_name = util_convert_to_UTF16_string(gi->data); + converted_album_title = util_convert_to_UTF16_string(ai->name); - if (converted_group_name && converted_album_name) { - result = i18n_ustring_case_compare_n(converted_group_name, converted_album_name, 1, I18N_USTRING_U_FOLD_CASE_DEFAULT); + if (converted_group_name && converted_album_title) { + result = i18n_ustring_case_compare_n(converted_group_name, converted_album_title, 1, I18N_USTRING_U_FOLD_CASE_DEFAULT); } if (converted_group_name) { free(converted_group_name); } - if (converted_album_name) { - free(converted_album_name); + if (converted_album_title) { + free(converted_album_title); } return result; @@ -246,16 +247,16 @@ static char *_get_name(struct album_info *ai) i18n_uchar *converted_string = NULL; i18n_uchar sub_string[10] = { 0, }; - converted_string = _convert_to_UTF16_string(ai->name); + converted_string = util_convert_to_UTF16_string(ai->name); if (converted_string == NULL) { - _ERR("_convert_to_UTF16_string failed"); + _ERR("util_convert_to_UTF16_string failed"); goto OUT; } /* Get a character (not a byte) from left */ i18n_ustring_copy_n(sub_string, converted_string, 1); - result_str = _convert_to_UTF8_string(sub_string); + result_str = util_convert_to_UTF8_string(sub_string); OUT: @@ -272,21 +273,21 @@ static int _compare_artist(struct group_info *gi, struct album_info *ai) int32_t result = -1; i18n_uchar *converted_group_name = NULL; - i18n_uchar *converted_artist_name = NULL; + i18n_uchar *converted_artist = NULL; - converted_group_name = _convert_to_UTF16_string(gi->data); - converted_artist_name = _convert_to_UTF16_string(ai->artist); + converted_group_name = util_convert_to_UTF16_string(gi->data); + converted_artist = util_convert_to_UTF16_string(ai->artist); - if (converted_group_name && converted_artist_name) { - result = i18n_ustring_case_compare_n(converted_group_name, converted_artist_name, 1, I18N_USTRING_U_FOLD_CASE_DEFAULT); + if (converted_group_name && converted_artist) { + result = i18n_ustring_case_compare_n(converted_group_name, converted_artist, 1, I18N_USTRING_U_FOLD_CASE_DEFAULT); } if (converted_group_name) { free(converted_group_name); } - if (converted_artist_name) { - free(converted_artist_name); + if (converted_artist) { + free(converted_artist); } return result; @@ -324,16 +325,16 @@ static char *_get_artist(struct album_info *ai) i18n_uchar *converted_string = NULL; i18n_uchar sub_string[10] = { 0, }; - converted_string = _convert_to_UTF16_string(ai->artist); + converted_string = util_convert_to_UTF16_string(ai->artist); if (converted_string == NULL) { - _ERR("_convert_to_UTF16_string failed"); + _ERR("util_convert_to_UTF16_string failed"); goto OUT; } /* Get a character (not a byte) from left */ i18n_ustring_copy_n(sub_string, converted_string, 1); - result_str = _convert_to_UTF8_string(sub_string); + result_str = util_convert_to_UTF8_string(sub_string); OUT: diff --git a/src/data/mediadata.c b/src/data/mediadata.c index 50d4ac1..eac8507 100644 --- a/src/data/mediadata.c +++ b/src/data/mediadata.c @@ -18,9 +18,9 @@ #include #include #include -#include #include "data/datamgr.h" +#include "util/util.h" #define STR_IMAGE_NAME "Photo" #define STR_VIDEO_NAME "Video" @@ -142,64 +142,6 @@ static char *_get_date_string(struct tm *tm) return strdup(buf); } -static i18n_uchar* _convert_to_UTF16_string(const char *source_string) -{ - int buffer_length = 0; - i18n_error_code_e error_from_i18n; - i18n_uchar *converted_string = NULL; - - /* Calc buffer size for converted UTF16 string */ - i18n_ustring_from_UTF8(NULL, 0, &buffer_length, source_string, -1, &error_from_i18n); - - converted_string = malloc((buffer_length + 2) * sizeof(i18n_uchar)); - if (converted_string == NULL) { - _ERR("malloc failed"); - goto OUT; - } - - /* Convert to i18n(UTF16) string */ - i18n_ustring_from_UTF8(converted_string, buffer_length + 1, &buffer_length, source_string, -1, &error_from_i18n); - if (error_from_i18n != I18N_ERROR_NONE) { - _ERR("i18n_ustring_from_UTF8 returns [%d]", error_from_i18n); - free(converted_string); - goto OUT; - } - converted_string[buffer_length] = (i18n_uchar)0; - -OUT: - - return converted_string; -} - -static char* _convert_to_UTF8_string(i18n_uchar *sourct_string) -{ - int buffer_length = 0; - i18n_error_code_e error_from_i18n; - char *converted_string = NULL; - - i18n_ustring_to_UTF8(NULL, 0, &buffer_length, sourct_string, -1, &error_from_i18n); - - converted_string = malloc((buffer_length + 2) * sizeof(char)); - if (converted_string == NULL) { - _ERR("malloc failed"); - goto OUT; - } - - /* Convert to UTF8 */ - i18n_ustring_to_UTF8(converted_string, buffer_length + 1, &buffer_length, sourct_string, -1, &error_from_i18n); - if (error_from_i18n != I18N_ERROR_NONE) { - _ERR("i18n_ustring_to_UTF8 returns [%d]", error_from_i18n); - free(converted_string); - converted_string = NULL; - goto OUT; - } - converted_string[buffer_length] = '\0'; - -OUT: - - return converted_string; -} - static int _compare_title(struct group_info *gi, app_media_info *info) { if (!gi->data || !info->title) @@ -209,8 +151,8 @@ static int _compare_title(struct group_info *gi, app_media_info *info) i18n_uchar *converted_group_name = NULL; i18n_uchar *converted_media_title = NULL; - converted_group_name = _convert_to_UTF16_string(gi->data); - converted_media_title = _convert_to_UTF16_string(info->title); + converted_group_name = util_convert_to_UTF16_string(gi->data); + converted_media_title = util_convert_to_UTF16_string(info->title); if (converted_group_name && converted_media_title) { result = i18n_ustring_case_compare_n(converted_group_name, converted_media_title, 1, I18N_USTRING_U_FOLD_CASE_DEFAULT); @@ -235,13 +177,13 @@ static void *_get_data_title(app_media_info *info) char *result_str = NULL; i18n_uchar *converted_string = NULL; - converted_string = _convert_to_UTF16_string(info->title); + converted_string = util_convert_to_UTF16_string(info->title); if (converted_string == NULL) { _ERR("_convert_to_UTF16_string failed"); goto OUT; } - result_str = _convert_to_UTF8_string(converted_string); + result_str = util_convert_to_UTF8_string(converted_string); OUT: if (converted_string) @@ -259,17 +201,17 @@ static char *_get_title(app_media_info *info) i18n_uchar *converted_string = NULL; i18n_uchar sub_string[10] = { 0, }; - converted_string = _convert_to_UTF16_string(info->title); + converted_string = util_convert_to_UTF16_string(info->title); if (converted_string == NULL) { - _ERR("_convert_to_UTF16_string failed"); + _ERR("util_convert_to_UTF16_string failed"); goto OUT; } /* Get a character (not a byte) from left */ i18n_ustring_copy_n(sub_string, converted_string, 1); - result_str = _convert_to_UTF8_string(sub_string); + result_str = util_convert_to_UTF8_string(sub_string); OUT: diff --git a/src/util/util.c b/src/util/util.c index 9ce3081..cb84c9e 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -455,3 +455,61 @@ Elm_Image_Orient util_get_orient(media_content_orientation_e orient) return o; } + +i18n_uchar* util_convert_to_UTF16_string(const char *source_string) +{ + int buffer_length = 0; + i18n_error_code_e error_from_i18n; + i18n_uchar *converted_string = NULL; + + /* Calc buffer size for converted UTF16 string */ + i18n_ustring_from_UTF8(NULL, 0, &buffer_length, source_string, -1, &error_from_i18n); + + converted_string = malloc((buffer_length + 2) * sizeof(i18n_uchar)); + if (converted_string == NULL) { + _ERR("malloc failed"); + goto OUT; + } + + /* Convert to i18n(UTF16) string */ + i18n_ustring_from_UTF8(converted_string, buffer_length + 1, &buffer_length, source_string, -1, &error_from_i18n); + if (error_from_i18n != I18N_ERROR_NONE) { + _ERR("i18n_ustring_from_UTF8 returns [%d]", error_from_i18n); + free(converted_string); + goto OUT; + } + converted_string[buffer_length] = (i18n_uchar)0; + +OUT: + + return converted_string; +} + +char* util_convert_to_UTF8_string(i18n_uchar *sourct_string) +{ + int buffer_length = 0; + i18n_error_code_e error_from_i18n; + char *converted_string = NULL; + + i18n_ustring_to_UTF8(NULL, 0, &buffer_length, sourct_string, -1, &error_from_i18n); + + converted_string = malloc((buffer_length + 2) * sizeof(char)); + if (converted_string == NULL) { + _ERR("malloc failed"); + goto OUT; + } + + /* Convert to UTF8 */ + i18n_ustring_to_UTF8(converted_string, buffer_length + 1, &buffer_length, sourct_string, -1, &error_from_i18n); + if (error_from_i18n != I18N_ERROR_NONE) { + _ERR("i18n_ustring_to_UTF8 returns [%d]", error_from_i18n); + free(converted_string); + converted_string = NULL; + goto OUT; + } + converted_string[buffer_length] = '\0'; + +OUT: + + return converted_string; +} -- cgit v1.2.3