diff options
author | Kyuho Jo <kyuho.jo@samsung.com> | 2016-06-01 13:53:44 +0900 |
---|---|---|
committer | Kyuho Jo <kyuho.jo@samsung.com> | 2016-06-01 14:04:39 +0900 |
commit | 02c513f007bb20edcc88199d3e4e13fb058d4c76 (patch) | |
tree | c4f1f5701fc995c6705004cdd4bb368434ac7ede /src/data/mediadata.c | |
parent | cf2ddf69a4487f2c0f9590add9dca90c20e1d6a5 (diff) | |
download | air_mediahub-02c513f007bb20edcc88199d3e4e13fb058d4c76.tar.gz air_mediahub-02c513f007bb20edcc88199d3e4e13fb058d4c76.tar.bz2 air_mediahub-02c513f007bb20edcc88199d3e4e13fb058d4c76.zip |
Changes for supporting myfiles
1. Accept requests for opening media files from myfiles.
2. Place base-i18n with ICU library.
3. maps-service can be removed from dependencies.
Change-Id: I444f03761f59ffca06da3129a4ebb7853c986b92
Signed-off-by: Kyuho Jo <kyuho.jo@samsung.com>
Diffstat (limited to 'src/data/mediadata.c')
-rw-r--r-- | src/data/mediadata.c | 66 |
1 files changed, 59 insertions, 7 deletions
diff --git a/src/data/mediadata.c b/src/data/mediadata.c index eac8507..66d3d1f 100644 --- a/src/data/mediadata.c +++ b/src/data/mediadata.c @@ -18,6 +18,8 @@ #include <media_content.h> #include <app_debug.h> #include <app_media.h> +#include <unicode/ustring.h> +#include <unicode/uchar.h> #include "data/datamgr.h" #include "util/util.h" @@ -148,14 +150,14 @@ static int _compare_title(struct group_info *gi, app_media_info *info) return -1; int32_t result = -1; - i18n_uchar *converted_group_name = NULL; - i18n_uchar *converted_media_title = NULL; + UChar *converted_group_name = NULL; + UChar *converted_media_title = NULL; 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); + result = u_strncasecmp(converted_group_name, converted_media_title, 1, U_FOLD_CASE_DEFAULT); } if (converted_group_name) { @@ -175,7 +177,7 @@ static void *_get_data_title(app_media_info *info) return NULL; char *result_str = NULL; - i18n_uchar *converted_string = NULL; + UChar *converted_string = NULL; converted_string = util_convert_to_UTF16_string(info->title); @@ -198,8 +200,8 @@ static char *_get_title(app_media_info *info) return NULL; char *result_str = NULL; - i18n_uchar *converted_string = NULL; - i18n_uchar sub_string[10] = { 0, }; + UChar *converted_string = NULL; + UChar sub_string[10] = { 0, }; converted_string = util_convert_to_UTF16_string(info->title); @@ -209,7 +211,7 @@ static char *_get_title(app_media_info *info) } /* Get a character (not a byte) from left */ - i18n_ustring_copy_n(sub_string, converted_string, 1); + u_strncpy(sub_string, converted_string, 1); result_str = util_convert_to_UTF8_string(sub_string); @@ -798,3 +800,53 @@ struct data_ops *mediadata_get_ops(void) { return &_ops; }; + +bool _media_item_cb(media_info_h item, void *user_data) +{ + app_media **am = (app_media**)user_data; + + *am = app_media_create(item); + + return false; //only 1 item +} + + +app_media* mediadata_get_app_media_by_file_path(char *file_path) +{ + int ret = MEDIA_CONTENT_ERROR_NONE; + filter_h media_filter = NULL; + app_media *am = NULL; + char condition[PATH_MAX + 256] = {0,}; + + if (file_path == NULL) { + _ERR("filepath is NULL"); + goto out; + } + + media_content_connect(); + + snprintf(condition, sizeof(condition), "%s = '%s'", MEDIA_PATH, file_path); + + + if ((ret = media_filter_create(&media_filter)) != MEDIA_CONTENT_ERROR_NONE) { + _ERR("media_filter_create returns [%d]", ret); + goto out; + } + + if ((ret = media_filter_set_condition(media_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT)) != MEDIA_CONTENT_ERROR_NONE) { + _ERR("media_filter_create returns [%d]", ret); + goto out; + } + + ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_DISPLAY_NAME, MEDIA_CONTENT_COLLATE_NOCASE); + + if ((ret = media_info_foreach_media_from_db(media_filter, _media_item_cb, &am)) != MEDIA_CONTENT_ERROR_NONE) { + _ERR("media_info_foreach_media_from_db is failed [%d]", ret); + } + +out: + if (media_filter) + media_filter_destroy(media_filter); + + return am; +} |