Metadata-editor / src /
main.c
- /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #include "$(appName)-ref.h"
- #include <glib.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <storage.h>
- #include <metadata_editor.h>
- typedef struct appdata {
- Evas_Object *win;
- Evas_Object *conform;
- Evas_Object *layout;
- Evas_Object *nf;
- } appdata_s;
- Evas_Object *t_path;
- Evas_Object *item_artist;
- Evas_Object *item_title;
- Evas_Object *item_album;
- Evas_Object *item_genre;
- Evas_Object *item_composer;
- Evas_Object *item_copyright;
- Evas_Object *item_year;
- Evas_Object *item_description;
- Evas_Object *item_track;
- Evas_Object *item_comment;
- Evas_Object *item_conductor;
- Evas_Object *item_lyrics;
- Evas_Object *cbox;
- static void
- win_delete_request_cb(void *data , Evas_Object *obj , void *event_info)
- {
- ui_app_exit();
- }
- static Eina_Bool
- nf_it_pop_cb(void *data, Elm_Object_Item *it)
- {
- appdata_s *ad = data;
- /* Don't pop the last view but hide window */
- elm_win_lower(ad->win);
- return EINA_FALSE;
- }
- static void
- err_popup(int ret)
- {
- char err_val[50] = {0, };
- Evas_Object *popup = elm_popup_add(cbox);
- elm_object_style_set(popup, "toast");
- evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- snprintf(err_val, sizeof(err_val), "<font_size=30>Operation failed [%d]</font/>", ret);
- elm_object_text_set(popup, err_val);
- elm_popup_timeout_set(popup, 2.0);
- evas_object_smart_callback_add(popup, "timeout", NULL, NULL);
- evas_object_show(popup);
- }
- static void
- noti_popup(const char *msg)
- {
- Evas_Object *popup = elm_popup_add(cbox);
- elm_object_style_set(popup, "toast");
- evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_text_set(popup, msg);
- elm_popup_timeout_set(popup, 2.0);
- evas_object_smart_callback_add(popup, "timeout", NULL, NULL);
- evas_object_show(popup);
- }
- static bool _storage_cb(int storage_id, storage_type_e type, storage_state_e state, const char *path, void *user_data)
- {
- if(STORAGE_TYPE_INTERNAL == type) {
- int *internal_storage_id = (int *)user_data;
- if(NULL != internal_storage_id) {
- *internal_storage_id = storage_id;
- }
- return false;
- } else {
- return true;
- }
- }
- static void
- update_clicked_cb(void *data, Evas_Object *obj, void *event_info)
- {
- int ret = METADATA_EDITOR_ERROR_NONE;
- metadata_editor_h metadata = NULL;
- char full_path[100] = {0, };
- char *media_path = NULL;
- int internal_storage_id = -1;
- ret = storage_foreach_device_supported(_storage_cb, &internal_storage_id);
- if(STORAGE_ERROR_NONE != ret) {
- dlog_print(DLOG_ERROR, LOG_TAG, "storage_foreach_device_supported() failed! Error code = %d", ret);
- return;
- }
- ret = storage_get_root_directory(internal_storage_id, &media_path);
- if(STORAGE_ERROR_NONE != ret) {
- dlog_print(DLOG_ERROR, LOG_TAG, "storage_get_root_directory() failed! Error code = %d", ret);
- return;
- }
- ret = metadata_editor_create(&metadata);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- snprintf(full_path, sizeof(full_path), "%s/%s", media_path, elm_object_text_get(t_path));
- ret = metadata_editor_set_path(metadata, full_path);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- if(media_path) {
- free(media_path);
- media_path = NULL;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_ARTIST, elm_object_text_get(item_artist));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_TITLE, elm_object_text_get(item_title));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_ALBUM, elm_object_text_get(item_album));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_GENRE, elm_object_text_get(item_genre));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_AUTHOR, elm_object_text_get(item_composer));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_COPYRIGHT, elm_object_text_get(item_copyright));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_DATE, elm_object_text_get(item_year));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_DESCRIPTION, elm_object_text_get(item_description));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_TRACK_NUM, elm_object_text_get(item_track));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_COMMENT, elm_object_text_get(item_comment));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_CONDUCTOR, elm_object_text_get(item_conductor));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_set_metadata(metadata, METADATA_EDITOR_ATTR_UNSYNCLYRICS, elm_object_text_get(item_lyrics));
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_update_metadata(metadata);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_destroy(metadata);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- noti_popup("<font_size=30>Update successful</font/>");
- }
- static void
- get_clicked_cb(void *data, Evas_Object *obj, void *event_info)
- {
- int ret = METADATA_EDITOR_ERROR_NONE;
- metadata_editor_h metadata = NULL;
- char full_path[100] = {0, };
- char *artist = NULL;
- char *title = NULL;
- char *album = NULL;
- char *genre = NULL;
- char *composer = NULL;
- char *copyright = NULL;
- char *date = NULL;
- char *description = NULL;
- char *comment = NULL;
- char *track_num = NULL;
- char *conductor = NULL;
- char *lyric = NULL;
- char *media_path = NULL;
- int internal_storage_id = -1;
- ret = storage_foreach_device_supported(_storage_cb, &internal_storage_id);
- if(STORAGE_ERROR_NONE != ret) {
- dlog_print(DLOG_ERROR, LOG_TAG, "storage_foreach_device_supported() failed! Error code = %d", ret);
- return;
- }
- ret = storage_get_root_directory(internal_storage_id, &media_path);
- if(STORAGE_ERROR_NONE != ret) {
- dlog_print(DLOG_ERROR, LOG_TAG, "storage_get_root_directory() failed! Error code = %d", ret);
- return;
- }
- ret = metadata_editor_create(&metadata);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- snprintf(full_path, sizeof(full_path), "%s/%s", media_path, elm_object_text_get(t_path));
- ret = metadata_editor_set_path(metadata, full_path);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_ARTIST, &artist);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_artist, artist);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_TITLE, &title);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_title, title);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_ALBUM, &album);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_album, album);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_GENRE, &genre);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_genre, genre);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_AUTHOR, &composer);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_composer, composer);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_COPYRIGHT, ©right);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_copyright, copyright);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_DATE, &date);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_year, date);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_DESCRIPTION, &description);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_description, description);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_TRACK_NUM, &track_num);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_track, track_num);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_COMMENT, &comment);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_comment, comment);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_CONDUCTOR, &conductor);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_conductor, conductor);
- ret = metadata_editor_get_metadata(metadata, METADATA_EDITOR_ATTR_UNSYNCLYRICS, &lyric);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- elm_object_text_set(item_lyrics, lyric);
- metadata_editor_destroy(metadata);
- if(ret != METADATA_EDITOR_ERROR_NONE) {
- err_popup(ret);
- return;
- }
- noti_popup("<font_size=30>Read Successful</font/>");
- if(media_path) {
- free(media_path);
- media_path = NULL;
- }
- }
- static Evas_Object*
- create_box(appdata_s *ad)
- {
- Evas_Object *box;
- box = elm_box_add(ad->nf);
- elm_box_padding_set(box, 20, 20);
- elm_object_content_set(ad->nf, box);
- elm_box_horizontal_set(box, EINA_FALSE);
- evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(box);
- Evas_Object *abox = elm_box_add(box);
- Evas_Object *bbox = elm_box_add(box);
- cbox = elm_box_add(box);
- // Create a box for adding content
- elm_box_padding_set(abox, 10, 10);
- elm_box_horizontal_set(abox, EINA_TRUE);
- evas_object_size_hint_align_set(abox, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(abox, EVAS_HINT_EXPAND, 0.1);
- evas_object_show(abox);
- // Insert item
- Evas_Object *l_path = elm_label_add(abox);
- elm_object_text_set(l_path, "<font_size=30>Path</font/>");
- evas_object_size_hint_align_set(l_path, 0.5, 0.5);
- evas_object_size_hint_weight_set(l_path, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(l_path);
- t_path = elm_entry_add(abox);
- char *path = "test.mp3";
- elm_object_text_set(t_path, path);
- evas_object_size_hint_align_set(t_path, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(t_path, 0.6, EVAS_HINT_EXPAND);
- evas_object_show(t_path);
- Evas_Object *bt_get = elm_button_add(abox);
- elm_object_text_set(bt_get, "<font_size=30>Get</font/>");
- elm_box_horizontal_set(bt_get, EINA_FALSE);
- evas_object_size_hint_align_set(bt_get, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(bt_get, 0.2, EVAS_HINT_EXPAND);
- evas_object_smart_callback_add(bt_get, "clicked", get_clicked_cb, NULL);
- evas_object_show(bt_get);
- // Create a box for adding content
- elm_box_padding_set(bbox, 10, 10);
- evas_object_size_hint_align_set(bbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(bbox, EVAS_HINT_EXPAND, 0.8);
- evas_object_show(bbox);
- Evas_Object *scroller = elm_scroller_add(bbox);
- evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
- elm_scroller_policy_set(scroller,ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_ON);
- evas_object_show(scroller);
- Evas_Object *content = elm_box_add(scroller);
- evas_object_size_hint_weight_set(content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
- // evas_object_show(content);
- elm_object_content_set(scroller, content);
- // Inser ITEM
- Evas_Object *title = elm_box_add(content);
- elm_box_horizontal_set(title, EINA_TRUE);
- evas_object_size_hint_align_set(title, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(title, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(title);
- Evas_Object *lbl_title = elm_label_add(title);
- elm_object_text_set(lbl_title, "<font_size=30> Title</font/>");
- evas_object_size_hint_align_set(lbl_title, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_title, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_title);
- item_title = elm_entry_add(title);
- elm_object_text_set(item_title, NULL);
- evas_object_size_hint_align_set(item_title, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_title, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_title);
- Evas_Object *artist = elm_box_add(content);
- elm_box_horizontal_set(artist, EINA_TRUE);
- evas_object_size_hint_align_set(artist, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(artist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(artist);
- Evas_Object *lbl_artist = elm_label_add(artist);
- elm_object_text_set(lbl_artist, "<font_size=30> Artist</font/>");
- evas_object_size_hint_align_set(lbl_artist, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_artist, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_artist);
- item_artist = elm_entry_add(artist);
- elm_object_text_set(item_artist, NULL);
- evas_object_size_hint_align_set(item_artist, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_artist, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_artist);
- Evas_Object *album = elm_box_add(content);
- elm_box_horizontal_set(album, EINA_TRUE);
- evas_object_size_hint_align_set(album, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(album, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(album);
- Evas_Object *lbl_album = elm_label_add(album);
- elm_object_text_set(lbl_album, "<font_size=30> Album</font/>");
- evas_object_size_hint_align_set(lbl_album, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_album, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_album);
- item_album = elm_entry_add(album);
- elm_object_text_set(item_album, NULL);
- evas_object_size_hint_align_set(item_album, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_album, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_album);
- Evas_Object *genre = elm_box_add(content);
- elm_box_horizontal_set(genre, EINA_TRUE);
- evas_object_size_hint_align_set(genre, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(genre, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(genre);
- Evas_Object *lbl_genre = elm_label_add(genre);
- elm_object_text_set(lbl_genre, "<font_size=30> Genre</font/>");
- evas_object_size_hint_align_set(lbl_genre, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_genre, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_genre);
- item_genre = elm_entry_add(genre);
- elm_object_text_set(item_genre, NULL);
- evas_object_size_hint_align_set(item_genre, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_genre, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_genre);
- Evas_Object *composer = elm_box_add(content);
- elm_box_horizontal_set(composer, EINA_TRUE);
- evas_object_size_hint_align_set(composer, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(composer, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(composer);
- Evas_Object *lbl_composer = elm_label_add(composer);
- elm_object_text_set(lbl_composer, "<font_size=30> Composer</font/>");
- evas_object_size_hint_align_set(lbl_composer, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_composer, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_composer);
- item_composer = elm_entry_add(composer);
- elm_object_text_set(item_composer, NULL);
- evas_object_size_hint_align_set(item_composer, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_composer, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_composer);
- Evas_Object *copyright = elm_box_add(content);
- elm_box_horizontal_set(copyright, EINA_TRUE);
- evas_object_size_hint_align_set(copyright, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(copyright, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(copyright);
- Evas_Object *lbl_copyright = elm_label_add(copyright);
- elm_object_text_set(lbl_copyright, "<font_size=30> Copyright</font/>");
- evas_object_size_hint_align_set(lbl_copyright, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_copyright, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_copyright);
- item_copyright = elm_entry_add(copyright);
- elm_object_text_set(item_copyright, NULL);
- evas_object_size_hint_align_set(item_copyright, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_copyright, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_copyright);
- Evas_Object *year = elm_box_add(content);
- elm_box_horizontal_set(year, EINA_TRUE);
- evas_object_size_hint_align_set(year, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(year, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(year);
- Evas_Object *lbl_year = elm_label_add(year);
- elm_object_text_set(lbl_year, "<font_size=30> Year</font/>");
- evas_object_size_hint_align_set(lbl_year, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_year, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_year);
- item_year = elm_entry_add(year);
- elm_object_text_set(item_year, NULL);
- evas_object_size_hint_align_set(item_year, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_year, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_year);
- Evas_Object *description = elm_box_add(content);
- elm_box_horizontal_set(description, EINA_TRUE);
- evas_object_size_hint_align_set(description, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(description, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(description);
- Evas_Object *lbl_description = elm_label_add(description);
- elm_object_text_set(lbl_description, "<font_size=30> Description</font/>");
- evas_object_size_hint_align_set(lbl_description, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_description, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_description);
- item_description = elm_entry_add(description);
- elm_object_text_set(item_description, NULL);
- evas_object_size_hint_align_set(item_description, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_description, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_description);
- Evas_Object *track = elm_box_add(content);
- elm_box_horizontal_set(track, EINA_TRUE);
- evas_object_size_hint_align_set(track, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(track, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(track);
- Evas_Object *lbl_track = elm_label_add(track);
- elm_object_text_set(lbl_track, "<font_size=30> Track</font/>");
- evas_object_size_hint_align_set(lbl_track, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_track, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_track);
- item_track = elm_entry_add(track);
- elm_object_text_set(item_track, NULL);
- evas_object_size_hint_align_set(item_track, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_track, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_track);
- Evas_Object *comment = elm_box_add(content);
- elm_box_horizontal_set(comment, EINA_TRUE);
- evas_object_size_hint_align_set(comment, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(comment, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(comment);
- Evas_Object *lbl_comment = elm_label_add(comment);
- elm_object_text_set(lbl_comment, "<font_size=30> Comment</font/>");
- evas_object_size_hint_align_set(lbl_comment, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_comment, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_comment);
- item_comment = elm_entry_add(comment);
- elm_object_text_set(item_comment, NULL);
- evas_object_size_hint_align_set(item_comment, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_comment, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_comment);
- Evas_Object *conductor = elm_box_add(content);
- elm_box_horizontal_set(conductor, EINA_TRUE);
- evas_object_size_hint_align_set(conductor, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(conductor, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(conductor);
- Evas_Object *lbl_conductor = elm_label_add(conductor);
- elm_object_text_set(lbl_conductor, "<font_size=30> Conductor</font/>");
- evas_object_size_hint_align_set(lbl_conductor, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_conductor, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_conductor);
- item_conductor = elm_entry_add(conductor);
- elm_object_text_set(item_conductor, NULL);
- evas_object_size_hint_align_set(item_conductor, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_conductor, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_conductor);
- Evas_Object *lyrics = elm_box_add(content);
- elm_box_horizontal_set(lyrics, EINA_TRUE);
- evas_object_size_hint_align_set(lyrics, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(lyrics, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_show(lyrics);
- Evas_Object *lbl_lyrics = elm_label_add(lyrics);
- elm_object_text_set(lbl_lyrics, "<font_size=30> Lyrics</font/>");
- evas_object_size_hint_align_set(lbl_lyrics, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(lbl_lyrics, 0.2, EVAS_HINT_EXPAND);
- evas_object_show(lbl_lyrics);
- item_lyrics = elm_entry_add(lyrics);
- elm_object_text_set(item_lyrics, NULL);
- evas_object_size_hint_align_set(item_lyrics, EVAS_HINT_FILL, 0.5);
- evas_object_size_hint_weight_set(item_lyrics, 0.8, EVAS_HINT_EXPAND);
- evas_object_show(item_lyrics);
- // Create a box for adding content
- evas_object_size_hint_align_set(cbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(cbox, EVAS_HINT_EXPAND, 0.1);
- evas_object_show(cbox);
- Evas_Object *bt_update = elm_button_add(cbox);
- elm_object_text_set(bt_update, "<font_size=30>Update Metadata</font/>");
- evas_object_size_hint_align_set(bt_update, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_size_hint_weight_set(bt_update, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_smart_callback_add(bt_update, "clicked", update_clicked_cb, NULL);
- evas_object_show(bt_update);
- elm_box_pack_end(box, abox);
- elm_box_pack_end(abox, l_path);
- elm_box_pack_end(abox, t_path);
- elm_box_pack_end(abox, bt_get);
- elm_box_pack_end(box, bbox);
- elm_box_pack_end(bbox, scroller);
- elm_box_pack_end(scroller, content);
- elm_box_pack_end(content, title);
- elm_box_pack_end(title, lbl_title);
- elm_box_pack_end(title, item_title);
- elm_box_pack_end(content, artist);
- elm_box_pack_end(artist, lbl_artist);
- elm_box_pack_end(artist, item_artist);
- elm_box_pack_end(content, album);
- elm_box_pack_end(album, lbl_album);
- elm_box_pack_end(album, item_album);
- elm_box_pack_end(content, genre);
- elm_box_pack_end(genre, lbl_genre);
- elm_box_pack_end(genre, item_genre);
- elm_box_pack_end(content, composer);
- elm_box_pack_end(composer, lbl_composer);
- elm_box_pack_end(composer, item_composer);
- elm_box_pack_end(content, copyright);
- elm_box_pack_end(copyright, lbl_copyright);
- elm_box_pack_end(copyright, item_copyright);
- elm_box_pack_end(content, year);
- elm_box_pack_end(year, lbl_year);
- elm_box_pack_end(year, item_year);
- elm_box_pack_end(content, description);
- elm_box_pack_end(description, lbl_description);
- elm_box_pack_end(description, item_description);
- elm_box_pack_end(content, track);
- elm_box_pack_end(track, lbl_track);
- elm_box_pack_end(track, item_track);
- elm_box_pack_end(content, comment);
- elm_box_pack_end(comment, lbl_comment);
- elm_box_pack_end(comment, item_comment);
- elm_box_pack_end(content, conductor);
- elm_box_pack_end(conductor, lbl_conductor);
- elm_box_pack_end(conductor, item_conductor);
- elm_box_pack_end(content, lyrics);
- elm_box_pack_end(lyrics, lbl_lyrics);
- elm_box_pack_end(lyrics, item_lyrics);
- elm_box_pack_end(box, cbox);
- elm_box_pack_end(cbox, bt_update);
- return box;
- }
- static Evas_Object*
- create_main_view(appdata_s *ad)
- {
- Elm_Object_Item *nf_it;
- Evas_Object *box;
- ad->nf = elm_naviframe_add(ad->conform);
- eext_object_event_callback_add(ad->nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, ad);
- box = create_box(ad);
- nf_it = elm_naviframe_item_push(ad->nf, "Metadata Editor", NULL, NULL, box, NULL);
- elm_naviframe_item_pop_cb_set(nf_it, nf_it_pop_cb, ad);
- return ad->nf;
- }
- static void
- create_base_gui(appdata_s *ad)
- {
- Evas_Object *bg;
- /* Window */
- ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
- elm_win_conformant_set(ad->win, EINA_TRUE);
- elm_win_autodel_set(ad->win, EINA_TRUE);
- if (elm_win_wm_rotation_supported_get(ad->win)) {
- int rots[4] = { 0, 90, 180, 270 };
- elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
- }
- evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
- /* Conformant */
- ad->conform = elm_conformant_add(ad->win);
- elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
- elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
- evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(ad->win, ad->conform);
- evas_object_show(ad->conform);
- /* Indicator BG */
- bg = elm_bg_add(ad->conform);
- elm_object_style_set(bg, "indicator/headerbg");
- elm_object_part_content_set(ad->conform, "elm.swallow.indicator_bg", bg);
- evas_object_show(bg);
- /* Naviframe */
- ad->nf = create_main_view(ad);
- elm_object_content_set(ad->conform, ad->nf);
- /* Show window after base gui is set up */
- evas_object_show(ad->win);
- }
- static bool
- app_create(void *data)
- {
- /* Hook to take necessary actions before main event loop starts
- Initialize UI resources and application's data
- If this function returns true, the main loop of application starts
- If this function returns false, the application is terminated */
- appdata_s *ad = data;
- create_base_gui(ad);
- return true;
- }
- static void
- app_control(app_control_h app_control , void *data)
- {
- /* Handle the launch request. */
- }
- static void
- app_pause(void *data)
- {
- /* Take necessary actions when application becomes invisible. */
- }
- static void
- app_resume(void *data)
- {
- /* Take necessary actions when application becomes visible. */
- }
- static void
- app_terminate(void *data)
- {
- /* Release all resources. */
- }
- static void
- ui_app_lang_changed(app_event_info_h event_info, void *user_data)
- {
- /*APP_EVENT_LANGUAGE_CHANGED*/
- char *locale = NULL;
- system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
- elm_language_set(locale);
- free(locale);
- return;
- }
- static void
- ui_app_orient_changed(app_event_info_h event_info, void *user_data)
- {
- /*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
- return;
- }
- static void
- ui_app_region_changed(app_event_info_h event_info, void *user_data)
- {
- /*APP_EVENT_REGION_FORMAT_CHANGED*/
- }
- static void
- ui_app_low_battery(app_event_info_h event_info, void *user_data)
- {
- /*APP_EVENT_LOW_BATTERY*/
- }
- static void
- ui_app_low_memory(app_event_info_h event_info, void *user_data)
- {
- /*APP_EVENT_LOW_MEMORY*/
- }
- int
- main(int argc, char *argv[])
- {
- appdata_s ad = {0,};
- int ret = 0;
- ui_app_lifecycle_callback_s event_callback = {0,};
- app_event_handler_h handlers[5] = {NULL, };
- event_callback.create = app_create;
- event_callback.terminate = app_terminate;
- event_callback.pause = app_pause;
- event_callback.resume = app_resume;
- event_callback.app_control = app_control;
- ui_app_add_event_handler(&handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, ui_app_low_battery, &ad);
- ui_app_add_event_handler(&handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, ui_app_low_memory, &ad);
- ui_app_add_event_handler(&handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, ui_app_orient_changed, &ad);
- ui_app_add_event_handler(&handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, ui_app_lang_changed, &ad);
- ui_app_add_event_handler(&handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, ui_app_region_changed, &ad);
- ui_app_remove_event_handler(handlers[APP_EVENT_LOW_MEMORY]);
- ret = ui_app_main(argc, argv, &event_callback, &ad);
- if (ret != APP_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_main() is failed. err = %d", ret);
- }
- return ret;
- }