description {
state: "edit" 0.0;
rel1 { relative: 1.0 0.0; to: "padding.left";}
- rel2 { relative: 0.0 1.0; to: "padding.right"; }
+ rel2 { relative: 0.0 576/640; to: "padding.right"; }
+ }
+ description {
+ state: "full" 0.0;
+ rel1 { relative: 1.0 0.0; to: "padding.left";}
+ rel2 { relative: 0.0 584/640; to: "padding.right"; }
}
description {
state: "fastscroll.visible" 0.0;
source: "edit_source";
action: STATE_SET "edit" 0.0;
target: "track_list_content";
+ }
+ program { name: "full_view";
+ signal: "full_signal";
+ source: "full_source";
+ action: STATE_SET "full" 0.0;
+ target: "track_list_content";
}
}
}
#define LEFT_PADDING 12
#define RIGHT_PADDING 4
#define BOTTOM_PADDING 6
-#define ALBUM_ART_SIZE 120 120
-#define BUTTON_SIZE_MIN_MAX 80 80
+#define ALBUM_ART_SIZE 64 64
+#define BUTTON_SIZE_MIN_MAX 21 24
+#define PLAY_BUTTON_SIZE_MIN_MAX 24 32
+#define PAUSE_BUTTON_SIZE_MIN_MAX 18 32
#define BIG_BTN_SIZE_MIN_MAX 80 80
#define BUTTON_EXPAND_OFFSET 0
-#define BUTTON_CLOSE_SIZE_MAX 30 30
+#define BUTTON_CLOSE_SIZE_MAX 15 15
#define PLAY_BTN_SIZE_MIN_MAX 80 80
-#define FF_BTN_SIZE_MIN_MAX 80 80
+#define FF_BTN_SIZE_MIN_MAX 21 24
#define MC_BG 30 28 28 0
max: __btn_min_max;\
image.normal: __image;\
fixed: 1 1;\
- align: 0.5 0.5;\
- color: 41 215 255 255;\
+ align: 0.5 0.0;\
}\
description { state: "pressed" 0.0;\
inherit: "default" 0.0;\
- color: 41 215 255 255;\
}\
description { state: "focus" 0.0;\
inherit: "default" 0.0;\
- color: 6 119 194 255;\
}\
description { state: "hide" 0.0;\
inherit: "default" 0.0;\
scale: 1;\
mouse_events: 1;\
description { state: "default" 0.0;\
- rel1 { relative: 0.5 0.5; to: __to; }\
- rel2 { relative: 0.5 0.5; to: __to; }\
+ rel1 { relative: 0.0 0.0; to: __to; }\
+ rel2 { relative: 1 1; to: __to; }\
min: __btn_min_max;\
max: __btn_min_max;\
image.normal: __image;\
fixed: 1 1;\
- align: 0.5 0.5;\
- color: __normal_code_red_component __normal_code_green_component __normal_code_blue_component __normal_code_alpha_component;\
+ align: 0.5 0.0;\
}\
description { state: "pressed" 0.0;\
inherit: "default" 0.0;\
- color: __press_code_red_component __press_code_green_component __press_code_blue_component __press_code_alpha_component;\
}\
description { state: "hide" 0.0;\
inherit: "default" 0.0;\
mouse_events: 0;
description {
state: "default" 0.0;
- min : 0 MINI_H_PORT;
- fixed: 1 1;
+ min : 1200 112;
+ max : 1200 112;
+ //fixed: 1 1;
rel1{ relative : 0 0;}
rel2{ relative : 1 1;}
- color: MC_BG;
+ color: 0 0 0 0;
}
}
scale: 1;
mouse_events: 0;
description { state: "default" 0.0;
- rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding_for_albumart.top"; }
- rel2 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding_for_albumart.bottom"; }
+ rel1 { relative: 40/1200 24/112; to: "bg"; }
+ rel2 { relative: 104/1200 88/112; to: "bg"; }
min: ALBUM_ART_SIZE;
max: ALBUM_ART_SIZE;
fixed: 1 1;
mouse_events: 1;
scale: 1;
description { state: "default" 0.0;
- rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "padding.top"; offset: 38 0;}
- rel2 { relative: 0.83 1.0; to_x: "right_area"; to_y: "padding.top";}
- min: 143 17;
- fixed: 1 1;
- align: 0.5 0.0;
+ rel1 { relative: 124/1200 32/112; to: "bg"; }
+ rel2 { relative: 445/1200 58/112; to: "bg"; }
+ min: 321 26;
+ max: 321 26;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "artist"; // artist
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 124/1200 58.5/112; to: "bg"; }
+ rel2 { relative: 445/1200 80.5/112; to: "bg"; }
+ min: 321 22;
+ max: 321 22;
+ fixed: 1 1;
+ align: 0.0 0.5;
}
}
-
part { name: "close_btn_area";
type: RECT;
scale: 1;
mouse_events: 0;
description { state: "default" 0.0;
- rel1 { relative: 0.0 1.0; to_x: "padding.right"; to_y: "elm.text";offset: -25 1;}
- rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text"; offset: -25 1;}
+ rel1 { relative: 1164.5/1200 20.5/112; to: "bg"; }
+ rel2 { relative: 1179.5/1200 35.5/112; to: "bg"; }
min: BUTTON_CLOSE_SIZE_MAX;
- max: BUTTON_CLOSE_SIZE_MAX;
+ max: BUTTON_CLOSE_SIZE_MAX;
color: 255 0 0 0;
fixed: 1 1;
}
}
- MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX)
+ MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,0,0,0,0,0,0,0,0,BUTTON_CLOSE_SIZE_MAX)
part { name: "close_btn_touch_area";
type: RECT;
scale: 1;
mouse_events: 1;
- repeat_events: 1;
+ repeat_events: 1;
description { state: "default" 0.0;
- rel1 { to: "close_btn_area"; offset: -7 -7; }
- rel2 { to: "close_btn_area"; offset: 7 7; }
+ rel1 { to: "close_btn_area"; offset: -5 -5; }
+ rel2 { to: "close_btn_area"; offset: 5 5; }
color: 0 0 0 0;
}
}
color: 255 0 0 0;
}
}
-
- part { name: "button_area";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
- rel1 { relative: 0 1; to: "mid_padding";}
- rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; }
- visible: 1;
- }
- }
-
part { name: "rew_btn_area";
type: RECT;
scale: 1;
mouse_events: 1;
description { state: "default" 0.0;
- rel1 { relative: 0.0 0.5; to: "button_area"; offset: 10 0;}
- rel2 { relative: 0.0 0.5; to: "button_area"; offset: 10 -16;}
- min: BUTTON_SIZE_MIN_MAX;
+ rel1 { relative: 522/1200 44/112; to: "bg";}
+ rel2 { relative: 543/1200 68/112; to: "bg";}
+ min: 21 24;
+ max: 21 24;
fixed: 1 1;
align: 0.0 0.5;
visible: 0;
}
}
- MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
- MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
- MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_bg","rew_btn_area",MC_MUSIC_PREV_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn_ef","rew_btn_area",MC_MUSIC_PREV_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("rew_btn","rew_btn_area",MC_MUSIC_PREV_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
part { name: "rew_btn_touch_area";
type: RECT;
scale: 1;
scale: 1;
mouse_events: 1;
description { state: "default" 0.0;
- rel1 { relative: 0.4 0.5; to: "button_area"; offset: 0 0;}
- rel2 { relative: 0.4 0.5; to: "button_area"; offset: 0 -16; }
- min: BUTTON_SIZE_MIN_MAX;
- max: BUTTON_SIZE_MIN_MAX;
+ rel1 { relative: 588/1200 40/112; to: "bg";}
+ rel2 { relative: 612/1200 72/112; to: "bg";}
+ min: PLAY_BUTTON_SIZE_MIN_MAX;
+ max: PLAY_BUTTON_SIZE_MIN_MAX;
fixed: 1 1;
- align:0.0 0.5;
+ align: 0.5 0.5;
}
}
- MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_BG,61,185,204,255,34,104,115,255,BIG_BTN_SIZE_MIN_MAX)
- MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_LAGRE_BTN_EF,BIG_BTN_SIZE_MIN_MAX)
- MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
- MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,255,255,255,255,255,255,255,255,PLAY_BTN_SIZE_MIN_MAX)
+ //MC_IMAGE_PART("play_btn_bg","play_pause_btn_area",MC_MUSIC_PLAY_BTN,61,185,204,255,34,104,115,255,PLAY_BUTTON_SIZE_MIN_MAX)
+ //MC_IMAGE_PART_FOCUS("play_btn_ef","play_pause_btn_area",MC_MUSIC_PLAY_BTN,PLAY_BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("play_btn","play_pause_btn_area",MC_MUSIC_PLAY_BTN,0,0,0,0,0,0,0,0,PLAY_BUTTON_SIZE_MIN_MAX)
+ MC_IMAGE_PART("pause_btn","play_pause_btn_area",MC_MUSIC_PAUSE_BTN,0,0,0,0,0,0,0,0,PAUSE_BUTTON_SIZE_MIN_MAX)
part { name: "play_btn_touch_area";
type: RECT;
scale: 1;
scale: 1;
mouse_events: 1;
description { state: "default" 0.0;
- rel1 { relative:0.8 0.5; to: "button_area";offset: -10 0;}
- rel2 { relative:0.8 0.5; to: "button_area";offset: -10 -16;}
+ rel1 { relative:657/1200 44/112; to: "bg";}
+ rel2 { relative:678/1200 68/112; to: "bg";}
min: FF_BTN_SIZE_MIN_MAX;
max: FF_BTN_SIZE_MIN_MAX;
fixed: 1 1;
align:0.0 0.5;
}
}
- MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_SMALL_BTN_BG,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
- MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_SMALL_BTN_EF,0,0,0,0,0,0,0,0,BUTTON_SIZE_MIN_MAX)
- MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,61,185,204,255,34,104,115,255,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_bg","ff_btn_area",MC_MUSIC_NEXT_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn_ef","ff_btn_area",MC_MUSIC_NEXT_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
+ MC_IMAGE_PART("ff_btn","ff_btn_area",MC_MUSIC_NEXT_BTN,0,0,0,0,0,0,0,0,FF_BTN_SIZE_MIN_MAX)
part { name: "ff_btn_touch_area";
type: RECT;
scale: 1;
}
}
MC_FOCUSED_COVER("ff_btn", "ff_btn_area");
+ part { name: "slider_bg";
+ type: RECT;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative:752/1200 40/112; to: "bg";}
+ rel2 { relative:1120/1200 72/112; to: "bg";}
+ min: 368 32;
+ max: 368 32;
+ fixed: 1 1;
+ color: 0 0 0 0;
+ }
+ }
+ part { name: "slider_part";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "slider_bg";}
+ rel2 { relative: 1.0 1.0; to: "slider_bg";}
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "current_time";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 752/1200 74/112; to: "bg"; }
+ rel2 { relative: 797/1200 96/112; to: "bg"; }
+ min: 45 22;
+ max: 45 22;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
+ part { name: "total_time";
+ type: SWALLOW;
+ mouse_events: 1;
+ scale: 1;
+ description { state: "default" 0.0;
+ rel1 { relative: 1075/1200 74/112; to: "bg"; }
+ rel2 { relative: 1120/1200 96/112; to: "bg"; }
+ min: 45 22;
+ max: 45 22;
+ fixed: 1 1;
+ align: 0.0 0.5;
+ }
+ }
}
programs {
signal: "mouse,down,1";
source: "play_btn_touch_area";
script{
- set_state(PART:"play_btn_bg", "pressed", 0.0);
- set_state(PART:"play_btn_ef", "pressed", 0.0);
+ //set_state(PART:"play_btn_bg", "pressed", 0.0);
+ //set_state(PART:"play_btn_ef", "pressed", 0.0);
}
}
signal: "mouse,up,1";
source: "play_btn_touch_area";
script{
- set_state(PART:"play_btn_bg", "default", 0.0);
- set_state(PART:"play_btn_ef", "default", 0.0);
+ //set_state(PART:"play_btn_bg", "default", 0.0);
+ //set_state(PART:"play_btn_ef", "default", 0.0);
}
}
signal: "mouse,down,1";
source: "rew_btn_touch_area";
script{
- set_state(PART:"rew_btn_bg", "pressed", 0.0);
- set_state(PART:"rew_btn_ef", "pressed", 0.0);
+ //set_state(PART:"rew_btn_bg", "pressed", 0.0);
+ //set_state(PART:"rew_btn_ef", "pressed", 0.0);
set_state(PART:"rew_btn", "pressed", 0.0);
}
}
signal: "mouse,up,1";
source: "rew_btn_touch_area";
script{
- set_state(PART:"rew_btn_bg", "default", 0.0);
- set_state(PART:"rew_btn_ef", "default", 0.0);
+ //set_state(PART:"rew_btn_bg", "default", 0.0);
+ //set_state(PART:"rew_btn_ef", "default", 0.0);
set_state(PART:"rew_btn", "default", 0.0);
}
}
script{
set_state(PART:"play_btn", "hide", 0.0);
set_state(PART:"pause_btn", "default",0.0);
- set_state(PART:"play_btn_ef", "focus", 0.0);
+ //set_state(PART:"play_btn_ef", "focus", 0.0);
}
}
program { name: "set_play_icon";
script{
set_state(PART:"play_btn", "default", 0.0);
set_state(PART:"pause_btn", "hide",0.0);
- set_state(PART:"play_btn_ef", "default", 0.0);
+ //set_state(PART:"play_btn_ef", "default", 0.0);
}
}
program { name: "set_ff_btn_uppressed";
signal: "rew_btn_unpressed";
source: "*";
script{
- set_state(PART:"rew_btn_bg", "default", 0.0);
- set_state(PART:"rew_btn_ef", "default", 0.0);
+ //set_state(PART:"rew_btn_bg", "default", 0.0);
+ //set_state(PART:"rew_btn_ef", "default", 0.0);
set_state(PART:"rew_btn", "default", 0.0);
}
}
scale: 1;
description {
state: "default" 0.0;
- rel1 { relative: 0.0 0.5; to: "info_text_bar_clip"; }
+ rel1 { relative: 0.0 0.0; to: "background"; }
rel2 { relative: 1.0 1.0; to_y: "now_playing_overlap";}
}
}
mp_list_view_set_done_btn((MpListView_t *) view, true,
MP_DONE_ADD_TRACK_TYPE);
+ Evas_Object *box = elm_box_add(view_manager->navi);
+ elm_box_horizontal_set(box, EINA_TRUE);
+ elm_box_padding_set(box, ELM_SCALE_SIZE(20), 0);
+
+ elm_box_pack_end(box, ((MpListView_t *) view)->cancel_btn);
+
+ elm_box_pack_end(box, ((MpListView_t *) view)->done_btn);
+
+ /* Title Content */
+ elm_object_item_part_content_set(((MpListView_t *)view)->navi_it, "title_content", box);
+
}
#endif
/*
}
Evas_Object *pLeftbtn = NULL;
pLeftbtn = elm_button_add(pParent);
- elm_object_style_set(pLeftbtn, "naviframe/title_left");
+ elm_object_style_set(pLeftbtn, "textbutton");
evas_object_smart_callback_add(pLeftbtn, "clicked", pFunc, pUserData);
mp_util_domain_translatable_text_set(pLeftbtn, STR_MP_NAVI_CANCEL);
return NULL;
}
- elm_object_item_part_content_set(pNaviItem, "title_left_btn",
- pLeftbtn);
-
evas_object_show(pLeftbtn);
return pLeftbtn;
Evas_Object *pRightbtn = NULL;
pRightbtn = elm_button_add(pParent);
- elm_object_style_set(pRightbtn, "naviframe/title_right");
+ elm_object_style_set(pRightbtn, "textbutton");
evas_object_smart_callback_add(pRightbtn, "clicked", pFunc, pUserData);
mp_util_domain_translatable_text_set(pRightbtn, STR_MP_NAVI_DONE);
return NULL;
}
- elm_object_item_part_content_set(pNaviItem, "title_right_btn",
- pRightbtn);
-
evas_object_show(pRightbtn);
return pRightbtn;
-1);
mp_list_update(view->content_to_show);
content = ((MpAlbumList_t *) view->content_to_show)->layout;
- mp_list_view_set_select_all((MpListView_t *) view, FALSE);
save_btn =
elm_object_item_part_content_get(view->navi_it,
"title_right_btn");
MP_LIST_FUNC_ADD_TRACK, -1);
mp_list_update(view->content_to_show);
content = ((MpArtistList_t *) view->content_to_show)->layout;
- mp_list_view_set_select_all((MpListView_t *) view, FALSE);
save_btn =
elm_object_item_part_content_get(view->navi_it,
"title_right_btn");
-1);
mp_list_update(view->content_to_show);
mp_list_set_edit(view->content_to_show, TRUE);
- mp_list_view_set_select_all((MpListView_t *) view, TRUE);
edje_object_signal_emit(_EDJ(view->add_track_view_layout),
"SHOW_SELECT_ALL_PADDING", "*");
content = ((MpTrackList_t *) view->content_to_show)->layout;
view->content_tab = tab;
elm_object_part_content_set(view->add_track_view_layout,
"list_content", content);
+ elm_object_signal_emit(content, "full_signal", "full_source");
evas_object_show(content);
mp_view_update_options((MpView_t *) view);
if (view->reorder)
mp_edit_view_list_item_reorder_update_cb(data, NULL, NULL);
- else
- return EINA_FALSE;
+
return EINA_TRUE;
}
true);
mp_list_view_set_done_btn((MpListView_t *) view_select_track, true,
MP_DONE_SELECT_ADD_TRACK_TYPE);
- mp_list_view_set_select_all((MpListView_t *) view_select_track,
- TRUE);
+
+ Evas_Object *box = elm_box_add(view_manager->navi);
+ elm_box_horizontal_set(box, EINA_TRUE);
+ elm_box_padding_set(box, ELM_SCALE_SIZE(20), 0);
+
+ elm_box_pack_end(box, ((MpListView_t *) view_select_track)->cancel_btn);
+ elm_box_pack_end(box, ((MpListView_t *) view_select_track)->done_btn);
+
+ /* Title Content */
+ elm_object_item_part_content_set(((MpListView_t *)view_select_track)->navi_it, "title_content", box);
+
mp_list_update(view_select_track->content_to_show);
mp_view_update_options((MpView_t *) view_select_track);
mp_list_set_edit(view_select_track->content_to_show, TRUE);
+ elm_object_signal_emit(view_select_track->content_to_show->layout, "full_signal", "full_source");
return;
}
true);
mp_list_view_set_done_btn((MpListView_t *) view_select_track, true,
MP_DONE_SELECT_ADD_TRACK_TYPE);
- mp_list_view_set_select_all((MpListView_t *) view_select_track,
- TRUE);
+
+ Evas_Object *box = elm_box_add(view_manager->navi);
+ elm_box_horizontal_set(box, EINA_TRUE);
+ elm_box_padding_set(box, ELM_SCALE_SIZE(20), 0);
+
+ elm_box_pack_end(box, ((MpListView_t *) view_select_track)->cancel_btn);
+ elm_box_pack_end(box, ((MpListView_t *) view_select_track)->done_btn);
+
+ /* Title Content */
+ elm_object_item_part_content_set(((MpListView_t *)view_select_track)->navi_it, "title_content", box);
+
mp_list_update(view_select_track->content_to_show);
mp_view_update_options((MpView_t *) view_select_track);
mp_list_set_edit(view_select_track->content_to_show, TRUE);
+ elm_object_signal_emit(view_select_track->content_to_show->layout, "full_signal", "full_source");
return;
}
#define BUFFER_MAX 256
+#define MINI_CONTROLLER_W 1200
+#define MINI_CONTROLLER_H 112
Evas_Coord xD, yD, xU, yU, xDMove, yDMove;
bool landscape);
static void _mp_minicontroller_title_set(struct appdata *ad);
+
+
+static void _slider_value_set(void *data)
+{
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK(ad);
+
+ double pos = ad->music_pos;
+ double duration = ad->music_length;
+ double value = 0.0;
+ if (duration > 0.0) {
+ value = pos / duration;
+ }
+
+ ERROR_TRACE("wishjox pos :%f, duration: %f, val: %f", pos, duration,
+ value);
+ elm_slider_value_set(elm_object_part_content_get(ad->minicontroller_layout, "slider_part"), value);
+}
+
+static void _mp_mini_horizontal_playing_update_time(void *data)
+{
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK(ad);
+ MP_CHECK(!ad->is_lcd_off);
+
+ MP_CHECK(elm_object_part_content_get(ad->minicontroller_layout, "slider_part"));
+
+ char play_time[16] = { 0, };
+ char total_time[16] = { 0, };
+
+ double duration = ad->music_length;
+
+ if (duration > 0.) {
+ if (duration > 3600.) {
+ snprintf(total_time, sizeof(total_time), "%" MUSIC_TIME_FORMAT,
+ MUSIC_TIME_ARGS(duration));
+ snprintf(play_time, sizeof(play_time), "%" MUSIC_TIME_FORMAT,
+ MUSIC_TIME_ARGS(ad->music_pos));
+ } else {
+ snprintf(total_time, sizeof(total_time), "%" PLAY_TIME_FORMAT,
+ PLAY_TIME_ARGS(duration));
+ snprintf(play_time, sizeof(play_time), "%" PLAY_TIME_FORMAT,
+ PLAY_TIME_ARGS(ad->music_pos));
+ }
+ } else {
+ if (ad->current_track_info)
+ snprintf(total_time, sizeof(total_time), "%" PLAY_TIME_FORMAT,
+ PLAY_TIME_ARGS(ad->current_track_info->duration /
+ 1000.));
+ snprintf(play_time, sizeof(play_time), "%" PLAY_TIME_FORMAT,
+ PLAY_TIME_ARGS(ad->music_pos));
+ }
+
+ if (g_strcmp0(play_time, elm_object_text_get(elm_object_part_content_get(ad->minicontroller_layout, "current_time")))) {
+ //IF_FREE(wd->play_time);
+ //wd->play_time = g_strdup(play_time);
+
+ char *mcurrent = NULL;
+ char *mtotal = NULL;
+
+ char *title_format = "<align=left><font_size=%d>%s</font_size></align>";
+ char *title_format_right = "<align=right><font_size=%d>%s</font_size></align>";
+
+ mcurrent = g_strdup_printf(title_format, 18, play_time);
+ mtotal = g_strdup_printf(title_format_right, 18, total_time);
+
+ Evas_Object *total_time_label = elm_label_add(ad->minicontroller_layout);
+ elm_object_text_set(total_time_label, mtotal);
+ elm_object_part_content_set(ad->minicontroller_layout, "total_time", total_time_label);
+ evas_object_show(total_time_label);
+
+ Evas_Object *current_time_label = elm_label_add(ad->minicontroller_layout);
+ elm_object_text_set(current_time_label, mcurrent);
+ elm_object_part_content_set(ad->minicontroller_layout, "current_time", current_time_label);
+ evas_object_show(current_time_label);
+
+ _slider_value_set(ad);
+ SAFE_FREE(mcurrent);
+ SAFE_FREE(mtotal);
+ }
+
+}
+
+static Eina_Bool _mp_mini_horizontal_playing_timer_cb(void *data)
+{
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK_FALSE(ad);
+
+ if (!ad->app_is_foreground) {
+ MP_TIMER_FREEZE(ad->timer);
+ }
+
+ if (ad->dragging) {
+ return EINA_TRUE;
+ }
+
+ ad->music_pos = mp_player_mgr_get_position() / 1000.0;
+ _mp_mini_horizontal_playing_update_time(ad);
+
+ return ECORE_CALLBACK_RENEW;
+}
+
+static void
+_mp_mini_horizontal_playing_sliderarea_down_cb(void *data, Evas * e,
+ Evas_Object * obj, void *event_info)
+{
+ startfunc;
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK(ad);
+
+ Evas_Event_Mouse_Down *ev = event_info;
+ Evas_Object *slider = obj;
+ int w = 0, current = 0, x = 0;
+ double ratio = 0.0;
+
+ MP_TIMER_FREEZE(ad->timer);
+
+ evas_object_geometry_get(slider, &x, NULL, &w, NULL);
+ current = ev->canvas.x - x;
+ if (current < 0) {
+ current = 0;
+ } else if (current > w) {
+ current = w;
+ }
+
+ ratio = (double) current / w;
+ DEBUG_TRACE("canvas.x:%d x:%d w:%d", ev->canvas.x, x, w);
+
+ int duration = mp_player_mgr_get_duration();
+ if (duration <= 0) {
+ mp_track_info_t *track_info = ad->current_track_info;
+ if (track_info) {
+ duration = track_info->duration;
+ }
+ }
+
+ ad->music_length = duration / 1000.;
+
+ ad->music_pos = ratio * ad->music_length;
+
+ ad->dragging = true;
+
+ ERROR_TRACE("wishjox pos :%f, duration: %f, val: %f", ad->music_pos,
+ ad->music_length, ratio);
+
+ elm_slider_value_set(elm_object_part_content_get(ad->minicontroller_layout, "slider_part"), ratio);
+ _mp_mini_horizontal_playing_update_time(ad);
+ endfunc;
+}
+
+static void mp_mini_horizontal_playing_thaw_timer(struct appdata *ad)
+{
+ Evas_Object *label = elm_object_part_content_get(ad->minicontroller_layout, "elm.text");
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_slide_go(label);
+
+ if (mp_player_mgr_get_state() == PLAYER_STATE_PLAYING) {
+ MP_TIMER_THAW(ad->timer);
+ }
+}
+
+static void
+_mp_mini_horizontal_playing_sliderarea_up_cb(void *data, Evas * e, Evas_Object * obj,
+ void *event_info)
+{
+ startfunc;
+
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK(ad);
+
+ Evas_Event_Mouse_Down *ev = event_info;
+ Evas_Object *slider = obj;
+ int w = 0, current = 0, x = 0;
+ double ratio = 0.0;
+
+ evas_object_geometry_get(slider, &x, NULL, &w, NULL);
+ current = ev->canvas.x - x;
+
+ DEBUG_TRACE("canvas.x:%d x:%d w:%d", ev->canvas.x, x, w);
+ if (current < 0) {
+ current = 0;
+ } else if (current > w) {
+ current = w;
+ }
+
+ ratio = (double) current / w;
+
+ ad->music_pos = ratio * ad->music_length;
+
+ DEBUG_TRACE("ad->music_pos=%lf", ad->music_pos);
+ if (mp_player_mgr_set_position(ad->music_pos * 1000, NULL, NULL)) {
+ mp_mini_horizontal_playing_thaw_timer(ad);
+ }
+
+ ad->dragging = false;
+
+ elm_slider_value_set(slider, ratio);
+ _mp_mini_horizontal_playing_update_time(ad);
+ endfunc;
+}
+
+static void mp_mini_horizontal_playing_update()
+{
+ struct appdata *ad = mp_util_get_appdata();
+ MP_CHECK(ad);
+
+ ad->music_pos = mp_player_mgr_get_position() / 1000.0;
+
+ _slider_value_set(ad);
+
+
+ _mp_mini_horizontal_playing_update_time(ad);
+}
+
+
static bool _mp_minicontroller_is_long_press()
{
bool result = false;
{
struct appdata *ad = (struct appdata *) data;
mp_retm_if(ad == NULL, "appdata is NULL");
- //EVENT_TRACE("emission: %s", emission);
if (emission) {
if (!g_strcmp0(emission, "close_btn_clicked")) {
+ MP_TIMER_FREEZE(ad->timer);
EVENT_TRACE("CLOSE");
if (!mp_util_is_other_player_playing()) {
int ret_set = 0;
}
elm_exit();
} else if (!g_strcmp0(emission, "albumart_clicked")) {
+ MP_TIMER_FREEZE(ad->timer);
EVENT_TRACE("albumart");
_mp_minicontroller_action_show_player_view(ad);
return;
}
evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND,
EVAS_HINT_EXPAND);
- elm_win_resize_object_add(parent, eo);
+ //elm_win_resize_object_add(parent, eo);
evas_object_show(eo);
}
minicontrol_viewer_event_e event_hide =
(minicontrol_viewer_event_e) MINICONTROL_EVENT_REQUEST_HIDE;
if (event_type == event_hide) {
+ MP_TIMER_FREEZE(ad->timer);
DEBUG_TRACE("CLOSE");
if (!mp_util_is_other_player_playing()) {
int ret_set = 0;
DEBUG_TRACE_FUNC();
MP_CHECK(ad);
- int angle = ad->quickpanel_angle;
- int w = 0;
- if ((elm_config_scale_get() - 1.7) < 0.0001) {
- MINI_CONTROLLER_WIDTH = 318;
- MINI_CONTROLLER_WIDTH_LANDSCAPE = 564;
- } else if ((elm_config_scale_get() - 1.8) < 0.0001) {
- MINI_CONTROLLER_WIDTH = 267;
- MINI_CONTROLLER_WIDTH_LANDSCAPE = 444;
- } else if ((elm_config_scale_get() - 2.4) < 0.0001) {
- MINI_CONTROLLER_WIDTH = 300;
- MINI_CONTROLLER_WIDTH_LANDSCAPE = 533;
- } else if ((elm_config_scale_get() - 2.6) < 0.0001) {
- MINI_CONTROLLER_WIDTH = 277;
- MINI_CONTROLLER_WIDTH_LANDSCAPE = 492;
- } else if ((elm_config_scale_get() - 2.8) < 0.0001) {
- MINI_CONTROLLER_WIDTH = 257;
- MINI_CONTROLLER_WIDTH_LANDSCAPE = 457;
- }
-
- if (angle == 90 || angle == 270) {
- w = MINI_CONTROLLER_WIDTH_LANDSCAPE;
- } else {
- w = MINI_CONTROLLER_WIDTH;
- }
-
- double scale = elm_config_scale_get();
- DEBUG_TRACE("scale: %f and width: %d and height: %d", scale, w,
- MINI_CONTROLLER_HEIGHT);
- evas_object_resize(ad->win_minicon, w * scale,
- MINI_CONTROLLER_HEIGHT * scale);
+ DEBUG_TRACE("width: %d and height: %d", MINI_CONTROLLER_W,
+ MINI_CONTROLLER_H);
+ evas_object_resize(ad->win_minicon, MINI_CONTROLLER_W, MINI_CONTROLLER_H);
return;
}
mp_play_control_reset_ff_rew();
}
+static void
+_widget_del_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)
+{
+ startfunc;
+ struct appdata *ad = data;
+ MP_CHECK(ad);
+
+ mp_ecore_timer_del(ad->timer);
+ mp_play_control_reset_ff_rew();
+}
+
static void
_mp_minicontroller_update_layout(struct appdata *ad, bool landscape)
{
ad->minicon_icon, NULL);
elm_object_focus_allow_set(ad->minicon_icon, EINA_TRUE);
+ /*-------> Slider ---------->*/
+ Evas_Object *slider = elm_slider_add(ad->minicontroller_layout);
+ evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_slider_value_set(slider, 0.0);
+ elm_object_part_content_set(ad->minicontroller_layout, "slider_part", slider);
+ evas_object_propagate_events_set(slider, EINA_FALSE);
+ evas_object_show(slider);
+
+ evas_object_event_callback_add(slider, EVAS_CALLBACK_MOUSE_DOWN,
+ _mp_mini_horizontal_playing_sliderarea_down_cb,
+ ad);
+ evas_object_event_callback_add(slider, EVAS_CALLBACK_MOUSE_UP,
+ _mp_mini_horizontal_playing_sliderarea_up_cb, ad);
+
+ ad->timer = ecore_timer_add(0.25, _mp_mini_horizontal_playing_timer_cb, ad);
+ MP_TIMER_FREEZE(ad->timer);
+ evas_object_event_callback_add(ad->minicontroller_layout, EVAS_CALLBACK_FREE,
+ _widget_del_cb, ad);
+
/*-------> REW button ------->*/
Evas_Object *rew_focus_btn = elm_button_add(ad->minicontroller_layout);
elm_object_style_set(rew_focus_btn, "focus");
Evas_Object *label =
elm_object_part_content_get(ad->minicontroller_layout, "elm.text");
+ Evas_Object *artist_label =
+ elm_object_part_content_get(ad->minicontroller_layout, "artist");
mp_track_info_t *current_item = ad->current_track_info;
MP_CHECK(current_item);
char *markup_artist = elm_entry_utf8_to_markup(current_item->artist);
char *title_format =
- "<align=left><font_size=%d><color=#%02x%02x%02x%02x>%s - </color></font_size><font_size=%d><color=#%02x%02x%02x%02x>%s</color></font_size></align>";
+ "<align=left><font_size=%d><color=#%02x%02x%02x%02x>%s</color></align>";
char *title = NULL;
+ char *artist = NULL;
if ((markup_title == NULL || strlen(markup_title) == 0)
&& (markup_artist == NULL || strlen(markup_artist) == 0)) {
title = NULL;
+ artist = NULL;
} else {
title =
- g_strdup_printf(title_format, 24, r, g, b, a, markup_title, 24,
- r, g, b, a, markup_artist);
+ g_strdup_printf(title_format, 22, r, g, b, a, markup_title);
+ artist =
+ g_strdup_printf(title_format, 18, r, g, b, a, markup_artist);
}
if (!label) {
elm_object_text_set(label, title);
}
+ if (!artist_label) {
+ artist_label =
+ mp_widget_slide_title_create(ad->minicontroller_layout,
+ "slide_roll", artist);
+ elm_object_part_content_set(ad->minicontroller_layout, "artist",
+ artist_label);
+ } else {
+ elm_object_text_set(artist_label, artist);
+ }
+
elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
elm_label_slide_go(label);
+ elm_label_slide_mode_set(artist_label, ELM_LABEL_SLIDE_MODE_AUTO);
+ elm_label_slide_go(artist_label);
SAFE_FREE(title);
+ SAFE_FREE(artist);
SAFE_FREE(markup_title);
SAFE_FREE(markup_artist);
evas_object_show(label);
-
+ evas_object_show(artist_label);
}
void mp_minicontroller_update(struct appdata *ad, bool with_title)
{
-
DEBUG_TRACE();
mp_retm_if(ad == NULL, "appdata is NULL");
MP_CHECK(ad->win_minicon);
_mp_minicontroller_title_set(ad);
}
+ mp_mini_horizontal_playing_update();
+ MP_TIMER_THAW(ad->timer);
evas_object_show(ad->minicontroller_layout);
}
}
elm_object_signal_emit(ad->minicontroller_layout, signal, "c_source");
double scale = elm_config_scale_get();
- evas_object_resize(ad->win_minicon, w * scale,
- MINI_CONTROLLER_HEIGHT * scale);
+ evas_object_resize(ad->win_minicon, MINI_CONTROLLER_W, MINI_CONTROLLER_H);
_mp_minicontroller_update_layout(ad, landscape);
mp_minicontroller_update(ad, true);
}
#define INITIAL_LOAD_COUNT 200
#define ALBUMART_INDEX_SIZE (720 * elm_config_scale_get())
+#define BOX_PADDING 20
+#define BOX_WIDTH_HINT 100
+#define BOX_HEIGHT_HINT 72
static mp_list_item_data_t* g_item_data = NULL;
}
}
- if (!strcmp(part, "elm.icon")) {
+ if (!list->edit_mode && !strcmp(part, "elm.icon")) {
char *thumbpath = NULL;
Evas_Object *icon;
if (list->edit_mode) {
// if edit mode
- if (!strcmp(part, "elm.end")) {
- // swallow checkbox or radio button
+ if (!strcmp(part, "elm.icon")) {
+ Evas_Object *box = elm_box_add(obj);
+ elm_box_horizontal_set(box, EINA_TRUE);
+ elm_box_padding_set(box, BOX_PADDING, 0);
+ evas_object_size_hint_min_set(box, BOX_WIDTH_HINT, BOX_HEIGHT_HINT);
+
+ char *thumbpath = NULL;
+ Evas_Object *icon = NULL;
+ PROFILE_IN("_mp_track_list_icon_get");
+ mp_media_info_get_thumbnail_path(track, &thumbpath);
+
+ if (thumbpath) {
+ icon =
+ mp_util_create_lazy_update_thumb_icon(obj, thumbpath,
+ MP_LIST_ICON_SIZE,
+ MP_LIST_ICON_SIZE);
+ elm_layout_theme_set(content, "layout", "list/B/music.type.1",
+ "default");
+ elm_layout_content_set(content, "elm.swallow.content", icon);
+ PROFILE_OUT("_mp_track_list_icon_get");
+ }
Evas_Object *check = NULL;
check = elm_check_add(obj);
elm_object_style_set(check, "default");
mp_common_view_check_changed_cb,
item);
elm_check_state_pointer_set(check, &item->checked);
+ elm_box_pack_end(box, check);
+ if (content)
+ elm_box_pack_end(box, content);
+
+ evas_object_show(check);
+ if (content)
+ evas_object_show(content);
- return check;
+ evas_object_show(box);
+ return box;
}
}
}
if (list->reorderable) {
+ elm_object_text_set(list->tracks_count_label, "");
evas_object_smart_callback_add(list->genlist, "moved",
mp_list_item_reorder_moved_cb,
list);
- }
+ } else {
+ evas_object_smart_callback_add(list->genlist, "realized", __gl_realized_cb, list);
+ elm_object_part_content_set(list->track_control_layout, "shuffle_part_swallow", list->shuffle_btn);
+ elm_object_part_content_set(list->track_control_layout, "play_all_part_swallow", list->playall_btn);
+ evas_object_smart_callback_add(list->shuffle_btn, "clicked", _mp_track_list_shuffle_cb, list);
+ evas_object_smart_callback_add(list->playall_btn, "clicked", _mp_track_list_play_all_cb, list);
+ }
- evas_object_smart_callback_add(list->genlist, "realized", __gl_realized_cb, list);
evas_object_smart_callback_add(list->genlist, "scroll,drag,start",
list->drag_start_cb, list);
evas_object_smart_callback_add(list->genlist, "scroll,drag,stop",
list->show_fastscroll(list);
PROFILE_OUT("_mp_track_list_load_list");
- elm_object_part_content_set(list->track_control_layout, "shuffle_part_swallow", list->shuffle_btn);
- elm_object_part_content_set(list->track_control_layout, "play_all_part_swallow", list->playall_btn);
- evas_object_smart_callback_add(list->shuffle_btn, "clicked", _mp_track_list_shuffle_cb, list);
- evas_object_smart_callback_add(list->playall_btn, "clicked", _mp_track_list_play_all_cb, list);
-
if (!mp_list_get_editable_count(thiz, mp_list_get_edit_type(thiz))) {
goto NoContents;