summaryrefslogtreecommitdiff
path: root/src/view/viewer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/viewer.c')
-rw-r--r--src/view/viewer.c40
1 files changed, 29 insertions, 11 deletions
diff --git a/src/view/viewer.c b/src/view/viewer.c
index 61cc384..4968fc4 100644
--- a/src/view/viewer.c
+++ b/src/view/viewer.c
@@ -471,7 +471,9 @@ static void _set_image_orientation(struct _priv *priv)
{
app_media *am;
app_media_info *mi;
- Evas_Object *image, *obj;
+ image_meta_h image;
+ media_content_orientation_e orient;
+ int r;
if (priv->viewer.cur != VIEWER_PHOTO)
return;
@@ -488,24 +490,40 @@ static void _set_image_orientation(struct _priv *priv)
return;
}
- image = elm_image_add(priv->base);
+ image = app_media_get_image_handle(am);
if (!image) {
- _ERR("failed to add image");
+ _ERR("failed to getting image handle");
return;
}
- elm_image_file_set(image, mi->file_path, NULL);
- elm_image_orient_set(image, ELM_IMAGE_ROTATE_270);
-
- obj = elm_image_object_get(image);
- if (!obj) {
- _ERR("failed to get image object");
+ switch (mi->image->orientation) {
+ case MEDIA_CONTENT_ORIENTATION_NORMAL:
+ orient = MEDIA_CONTENT_ORIENTATION_ROT_270;
+ break;
+ case MEDIA_CONTENT_ORIENTATION_ROT_90:
+ orient = MEDIA_CONTENT_ORIENTATION_NORMAL;
+ break;
+ case MEDIA_CONTENT_ORIENTATION_ROT_180:
+ orient = MEDIA_CONTENT_ORIENTATION_ROT_90;
+ break;
+ case MEDIA_CONTENT_ORIENTATION_ROT_270:
+ orient = MEDIA_CONTENT_ORIENTATION_ROT_180;
+ break;
+ default:
return;
}
- evas_object_image_save(obj, mi->file_path, NULL, "quality=100");
+ r = image_meta_set_orientation(image, orient);
+ if (r != MEDIA_CONTENT_ERROR_NONE) {
+ _ERR("failed to set played position");
+ return;
+ }
- media_info_refresh_metadata_to_db(mi->media_id);
+ r = image_meta_update_to_db(image);
+ if (r != MEDIA_CONTENT_ERROR_NONE) {
+ _ERR("failed to update db");
+ return;
+ }
app_media_update(am);
}