summaryrefslogtreecommitdiff
path: root/src/data/mediadata.c
diff options
context:
space:
mode:
authorKyuho Jo <kyuho.jo@samsung.com>2016-06-01 13:53:44 +0900
committerKyuho Jo <kyuho.jo@samsung.com>2016-06-01 14:04:39 +0900
commit02c513f007bb20edcc88199d3e4e13fb058d4c76 (patch)
treec4f1f5701fc995c6705004cdd4bb368434ac7ede /src/data/mediadata.c
parentcf2ddf69a4487f2c0f9590add9dca90c20e1d6a5 (diff)
downloadair_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.c66
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;
+}