From cdbfe1fc07a21dcc1df79eacee8c795d03830520 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Tue, 21 Jul 2015 13:16:47 +0900 Subject: [PATCH 01/16] listmgr: add update parameter for listmgr_update_focus_item Change-Id: Iffc69b0afea67a53ab78f9c362779f34ee8c37b5 Signed-off-by: Jehun Lim --- include/util/listmgr.h | 2 +- src/layout/gallery.c | 11 ++++++++++- src/layout/movie.c | 10 +++++++++- src/layout/music.c | 11 ++++++++++- src/util/listmgr.c | 14 ++++++++++++-- 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/include/util/listmgr.h b/include/util/listmgr.h index 50491bb..d146532 100644 --- a/include/util/listmgr.h +++ b/include/util/listmgr.h @@ -54,6 +54,6 @@ bool listmgr_draw_list_area(struct listmgr *lmgr); bool listmgr_update_content_list(struct listmgr *lmgr, Eina_List *list); bool listmgr_update_play_info(struct listmgr *lmgr, app_media_info *info); -bool listmgr_update_focus_item(struct listmgr *lmgr, int index); +bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update); #endif /* __AIR_MEDIAHUB_LISTMGR_H__ */ diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 1a6f364..b85ef88 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -50,6 +50,7 @@ struct _priv { struct listmgr_data *ldata; struct mediadata *md; + int cur_index; Eina_List *media_list; }; @@ -151,6 +152,7 @@ static void _grid_selected_cb(void *data, Elm_Object_Item *it) vdata.list = mediadata_get_medialist(priv->md); vdata.index = util_get_media_index(vdata.list, am); + priv->cur_index = vdata.index; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); @@ -356,6 +358,7 @@ static void _update(void *layout_data, int update_type, void *data) { struct _priv *priv; int index; + bool update; if (!layout_data) { _ERR("failed to get layout data"); @@ -375,7 +378,13 @@ static void _update(void *layout_data, int update_type, void *data) } index = *(int *)data; - listmgr_update_focus_item(priv->listmgr, index); + + if (priv->cur_index != index) + update = true; + else + update = false; + + listmgr_update_focus_item(priv->listmgr, index, update); break; default: diff --git a/src/layout/movie.c b/src/layout/movie.c index a9df8fc..f5a8561 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -58,6 +58,7 @@ struct _priv { struct progressbar *prog; Eina_List *media_list; + int cur_index; app_media *recent_info; }; @@ -262,6 +263,7 @@ static void _item_selected_cb(struct _priv *priv, app_media *am) vdata.list = mediadata_get_medialist(priv->md); vdata.index = util_get_media_index(vdata.list, am); + priv->cur_index = vdata.index; viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_VIEWER); @@ -561,6 +563,7 @@ static void _update(void *layout_data, int update_type, void *data) { struct _priv *priv; int index; + bool update; if (!layout_data) { _ERR("failed to get layout data"); @@ -581,8 +584,13 @@ static void _update(void *layout_data, int update_type, void *data) } index = *(int *)data; - listmgr_update_focus_item(priv->listmgr, index); + if (priv->cur_index != index) + update = true; + else + update = false; + + listmgr_update_focus_item(priv->listmgr, index, update); _update_recent_item(priv); break; default: diff --git a/src/layout/music.c b/src/layout/music.c index fc1d128..b5e42da 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -50,6 +50,7 @@ struct _priv { struct listmgr_data *ldata; struct mediadata *md; + int cur_index; Eina_List *media_list; }; @@ -137,6 +138,7 @@ static void _grid_selected_cb(void *data, Elm_Object_Item *it) vdata.list = mediadata_get_medialist(priv->md); vdata.index = util_get_media_index(vdata.list, am); + priv->cur_index = vdata.index; viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); viewmgr_push_view(VIEW_MPLAYER); @@ -342,6 +344,7 @@ static void _update(void *layout_data, int update_type, void *data) { struct _priv *priv; int index; + bool update; if (!layout_data) { _ERR("failed to get layout data"); @@ -361,7 +364,13 @@ static void _update(void *layout_data, int update_type, void *data) } index = *(int *)data; - listmgr_update_focus_item(priv->listmgr, index); + + if (priv->cur_index != index) + update = true; + else + update = false; + + listmgr_update_focus_item(priv->listmgr, index, update); break; default: diff --git a/src/util/listmgr.c b/src/util/listmgr.c index 181b362..6e9d07e 100644 --- a/src/util/listmgr.c +++ b/src/util/listmgr.c @@ -346,13 +346,23 @@ static Evas_Object *_draw_list_item(struct listmgr *lmgr, struct group_info *gi) return ly; } -bool listmgr_update_focus_item(struct listmgr *lmgr, int index) +bool listmgr_update_focus_item(struct listmgr *lmgr, int index, bool update) { Eina_List *item, *l; - Evas_Object *ly, *grid; + Evas_Object *ly, *grid, *content; Elm_Object_Item *it; int count; + if (!update) { + content = elm_object_part_content_get(lmgr->focused, + PART_ITEM_CONTENT); + + lmgr->scr_focus = EINA_FALSE; + elm_object_focus_set(content, EINA_TRUE); + + return true; + } + item = elm_box_children_get(lmgr->box); if (lmgr->show_play_info) item = eina_list_next(item); -- 2.7.4 From 26b90a3c810a88fcf85fd5f2c074e61e1cd75c1b Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 13:13:47 +0900 Subject: [PATCH 02/16] fix libpng warning Change-Id: I08bcf8720067380b4c29879158cb2679cfc761d0 Signed-off-by: Minkyu Kang --- res/edc/images/btn_music_contr_next_foc.png | Bin 3506 -> 754 bytes res/edc/images/btn_music_contr_next_nor.png | Bin 3514 -> 830 bytes res/edc/images/btn_music_contr_one_mode_foc.png | Bin 2147 -> 1111 bytes res/edc/images/btn_music_contr_one_mode_nor.png | Bin 2188 -> 1175 bytes res/edc/images/btn_music_contr_pause_foc.png | Bin 3131 -> 406 bytes res/edc/images/btn_music_contr_pause_nor.png | Bin 3091 -> 416 bytes res/edc/images/btn_music_contr_play_foc.png | Bin 3233 -> 611 bytes res/edc/images/btn_music_contr_play_nor.png | Bin 3241 -> 628 bytes res/edc/images/btn_music_contr_previous_foc.png | Bin 3510 -> 756 bytes res/edc/images/btn_music_contr_previous_nor.png | Bin 3514 -> 837 bytes res/edc/images/btn_music_contr_repeat_foc.png | Bin 3866 -> 1058 bytes res/edc/images/btn_music_contr_repeat_nor.png | Bin 3896 -> 1110 bytes res/edc/images/btn_music_contr_shuffle_dis.png | Bin 1888 -> 991 bytes res/edc/images/btn_music_contr_shuffle_dis_foc.png | Bin 3657 -> 927 bytes res/edc/images/btn_music_contr_shuffle_nor.png | Bin 3737 -> 989 bytes res/edc/images/btn_music_contr_shuffle_nor_foc.png | Bin 3679 -> 894 bytes res/edc/images/ic_music_list_play.png | Bin 1027 -> 807 bytes res/edc/images/ic_music_list_play_foc.png | Bin 1709 -> 687 bytes res/edc/images/ic_preview_play.png | Bin 11370 -> 8988 bytes res/edc/images/ic_thumbnail_picture.png | Bin 1811 -> 713 bytes res/edc/images/ic_thumbnail_song.png | Bin 1998 -> 861 bytes res/images/ic_thumbnail_play.png | Bin 5710 -> 3339 bytes 22 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res/edc/images/btn_music_contr_next_foc.png b/res/edc/images/btn_music_contr_next_foc.png index d374f6cecae3b0e4f42286ba3989fd5bd0127f4b..8c0e8871d7125210c2155531ed020405b1c4f4bb 100644 GIT binary patch literal 754 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 bB$5Jl%~7F$d9B)B9R*;ZW2)T%agO~LLVkBZ diff --git a/res/edc/images/btn_music_contr_next_nor.png b/res/edc/images/btn_music_contr_next_nor.png index e1276337bcddd3ab1580c1084c5fd199b210d820..591d8e4b3d4c2681f85bd2a6f26d7914dba70e28 100644 GIT binary patch literal 830 zcmeAS@N?(olHy`uVBq!ia0vp^OMtkKg9S*6c4yCGU|?qTba4!+xb^n#e(x)VGRHqY zkF_fE^<#B?Sl1K~d*g-ugxE%NkJ*mR=K>=yX4E$YUgU2LJE*#DlS<#Z*}WZ$R;sR3 z71(-kQT+FxdV4>7-dACJ&HT`5_51H-cSPJeCUR;g`yYLopd*T|gN8^^_}(D9xZKj; zyfQ9f)_Pa_`=|bLw^S;rzYOq>TV8Rn;9cj@MJ+APCNsVFDTYSPIc2-iW6lJF1FExR z{9?3q49_RLo2WU_iRntlWsf^vXD+1Fzw6xV%FQYIu3&y`=j*~-Jm(~&pfTzeVF&xJB9w8(|)|tEN)G0EAszS91>E!7vvSYc{k6h`CA_N zzrCfX#s8E-{okMLudh_jt#+xmndr^B-Mz={goOPQ@pG#CbIfL>E_$$j#%`@|tN%{& zyr+^Uzw)!q_XG1E*-e~%=YfmSV=m>1M#pNE?q7b8`DokG(q}hL*?ufHbhb;Fb-weq zy40E{azD0LDDIAVQ1)q;+g$#g>feOk8W;6WOgWaDS7elSEJD$I=P8MN;p=+oGg6hm zpO|8?{+qSb8nyMZew*i2Cr#Awe`33eRWd)Yd#<3@zvr1!f%8u6dp<#lPxH}WAnr5l X;R|JcU=geZ%ohxvu6{1-oD!M9gFZlMN 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 diff --git a/res/edc/images/btn_music_contr_one_mode_foc.png b/res/edc/images/btn_music_contr_one_mode_foc.png index 0d2dd2a92935aff3e3b2750fe1ee02fdda629f75..aae7e62322c15ebed69dde7053e7b866e17a6c4a 100644 GIT binary patch literal 1111 zcmeAS@N?(olHy`uVBq!ia0vp^OMrL+2MdtY3FjzeU|^B+ba4!+xb^lxFnvx=4ljB#EZDM#e=*qy~w^MTk2JI65WV@O5-4U%X;PchfGOS87`xPJKAl>}1}W z*4Ijt^^7(fz3lh$R?>QYFLuq^t)Je=d^_@dPEFkY)pKjVKmA<$-u#B8^&0M0=kl)% z|HU~oCrwZrP-3pwCtcmOau4s9mfqOE+R=Th=lih!kN$JZ+`axvT{|5WVS6lRZn?Xk z)e82ng@(&ich3u{=Z-IQT71>{ zKkwUuwNDfn+AF5rj`aH;8SZ!Uq)|)6nd~o9&+Fe(dct>eMJl>fe2Tq4=`tK}-=xa0ZU?&az+eLA9Rc zbmwnH3^(o_=`UHlx;^&5yvlc%E-K2i?tApd@_KGs@!|9FM+zV8D>h9rcW-Ea7E#K+ z_&|a1{YihHXPx+Z;5l#IRY7JR=JwefI~yJ!SheeNh~4I!3Yojrq}E7WXn1!;+4s%Y z-EAtlYpi`zPs~=?d%fVO`>vSkS$E#bdS<`o3zq!EF0aP-Ss`ILYH%&5BljM|Iuv2bXMN$JRh#etp8`jUUTt@_u>B+LuHFB-5X_fW_|r3 z)Hdth<3u%y=htpc4rv#;UMwW>@RVf#+Na(buU7AtOkuhaRNMEe$0_ElV8ZSB@?Srh zEMK^CLiP>zKgX7RGT!3qv2ludM5Dm;jrqU)*QLkTE3U4b^PSP+Snku$+kH>0e9c(5 zNOXC{JnmD=#TMn>%QSrHb9j2?|01vZ86ms32HS`C+bq3%&t_w`{HIxVGiF?9IkopZnf83~2rUTVBr~ YQ@Lxu)7O|7V1dEl>FVdQ&MBb@07lRJnE(I) literal 2147 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 literal 2188 zcmbVO3s4hh9#1W`V0~gm3Q9K%G799ed67gCNU}*tZBoiZ$Z4%1Ss+5PakB!+X*q2q zVp9-NtQdhAYxU5|9M{88uvAe2W2JYtG6={yMrf^Qd8$S5HVR&Q<8|h4XZPFh`}X(y zzrO!(W{VP3@_BQD=8#CFd5U;Ak$8VfJbQd+6Jz0quYVz4Z{X52JPFOf^E4Pj66w%% z1W*_>nMfj{(OEXPBQYe>%NhFQG(1iDHeZVxs2VSZnr|=>Y!WFZHs7StW+OO|j%4bM z0`PugGYIH)0x*@Wq$^DlBugJ}#gHVcDp_mI*79^ti2OT@7oyF{7862CM9kFsj{RK#aHo z7J$STs!p%t!_jmJo5^O-xiDACf*>x7E|N*5Y?ep{@uGR+85=L+vS5yk!J@Mu8J!0~ zQZ|nTi6tzVluPH)Suz=GhO01|ag9-n%=pz4ey6$2-{tZp7^1;ZEEz>}W;!4t3&l}$ z7HR?{NgQBhs@|wW^USNf$MY;(7{Tsl%^;_ug z1w9-8cWAmivpoDEO(KzWd$!5sa&~=)zb%JWA|3y3t}SQIQdqdlS-r|ZKK;`})3OP8 zLvc??gK&8D;OHJ@*1!qyK0Lp3navroTCVzLgF)%BxAm1?d7W7*0a5v>Yv+w!WrmVS z&^^3%_2QEsIaIk1zpXz?7I*^Y?{0dtfr&hh!q%wb`*pQE`h~YW4NXXM<&zr}4As^5 zcS?#g-%X+YeeP$wj@q|=<~HQ)bp49**BJ}mmdtau(2?5_cxl-){)$;*`B(ZW;bJjJV18ir{R&>&||vgvqu(a zspRg}>n&k**`A`dzcGIfSt{jBb!2m-R7cY%+IIVwj#$5j51D&U57dGOMsEfP_8y#% zDD;XeU%%sUD%-{YteCtWHxxI%7ui1SE3UUo)u(nl#sFP=d+E__HJw$Z`)_4DvE}&5k%lkr+56Zn zlVI&=gOP?T_rPtrLt9hs z&!JUG4j8f;M@^r1gm%J}cZU|}M4pdcuLE@xu9#t^%D7gU9-|KUE;V;iUCz&E(26k^ z3wtjGl{C6G4RsCHzor&0Sv8>kpxC*@Lc!t=be4CNyH6)L`v%5olER4-R`TOZZNY}A zo!q3PHMv_o?i%4$?5eG*V&P>A+=L*?cO?zAyySO71R*f zS{ckLShLf4Ia=h2eruoK#k4p3tP)lATd!OS((*K}(jC^e_QZ@{^fqO}`3 z`$G)e%*{Mkpr0?$Ena#0-k}q}92cwOs+uYG1=e`{NY7VGKivoDLRT&>TT!9u5Bve= z|KTMoA>{v*uz1s~Un_cA%fA)>4ClAv|F6(5_7?aAlBy@q9JcrF+~xg0P)JqqDe=Y~ F{{ojHOwj-U diff --git a/res/edc/images/btn_music_contr_pause_foc.png b/res/edc/images/btn_music_contr_pause_foc.png index c3a2ec9064110307708216cb5dcc3c47a46f3500..419519a497bf9fb2fbb6fb2ae76371464739a9d8 100644 GIT binary patch literal 406 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 diff --git a/res/edc/images/btn_music_contr_play_foc.png b/res/edc/images/btn_music_contr_play_foc.png index 8ad74d8da3d90f31c6e2b58b7f3f859b6748de76..96fcc5e137d9bcfd5647607f04c6ebb8ec91ba43 100644 GIT binary patch literal 611 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 diff --git a/res/edc/images/btn_music_contr_play_nor.png b/res/edc/images/btn_music_contr_play_nor.png index ef767b679671cd0b7981f31257365d8ec2a65dc3..5b029a3177d9b6e0cd7e2a888df8940f57eba657 100644 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^OMtkKg9S*6c4yCGU|_QLba4!+xb^n#M$hI%5x0lo zg$$z0J(3>_%yfM#b3pUb4iA|_$J7?AOL)l8BqsFbwUFhfyV}oRGEYDJf4^(clLyL5 zGUx0b>^D$3GC{!EiHFmW&Ws6*Z?gX>*?7*^?05aU#BUE*esj_LJR`I(ef~%3txjt0 zJI{FQW$)G8y+X{$^W3IW$FUx-7((u9%%ao6y zGNHUT6GYub%{QIY>RV+yu{W$RL_1}5sEq87{T)4B(l;k5Dz>#q2qk%R(2;RM-F2#S V#?!v0eZbVj;OXk;vd$@?2>^}c`fLCI literal 3241 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 literal 3510 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 diff --git a/res/edc/images/btn_music_contr_previous_nor.png b/res/edc/images/btn_music_contr_previous_nor.png index 5ebae5424518e8b66d3c24e0276b1881e1f9845c..491740de48c35b2c4ced92ff6f47affe366d0f0a 100644 GIT binary patch literal 837 zcmeAS@N?(olHy`uVBq!ia0vp^OMtkKg9S*6c4yCGU|{C)ba4!+xb^m~y~mY8nPVTn z%gS1`I4iI?UQpABq95njNqlPFYU`ZiVS8+xd<)N$ccOFH zj`K=?TervVNtm|pj_~%DAALGo+Lz0C-s#(P;NBhP?cKjz`ZiBG5%Emx^hKj%HA<&r z9=kmX-!q%_SP{RDkp2^feo6m3en#gV-ZdUwRJ(=$v*N^!hhpPg&q}=R)G3^49m19W zyW-HoJIuQ~g*VN2_fcDa_DFVsM4*%01IgytcL$B#e)i3IlzY9$R>AFrg>}^*_8G}7 zSMMnQ^X-{%Vac)2df&g^Vg9e?fImg#?T zr-vfrE1r!Z6`6&t!E2t%%@ER6Sz~xm_g3rn>miZnY&S&gnQ-Bmns8_OdujC@=g!{| z{x4#vazN9_cAk}(U(Ej}_R540t;uIp{_WY5IAc06u*A((w#;~z^N9D8_41uZ z`hlV2!pFJ6qc`p0(!)B+HD_!Kg1=1Ia7v@N^EMaz%=5Md&YB;r^ZYyiyL{tl7b)}* d91O%y)|*QMcBvbLeE?<;22WQ%mvv4FO#ol#Yb5{x literal 3514 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 BdEx*7 diff --git a/res/edc/images/btn_music_contr_repeat_foc.png b/res/edc/images/btn_music_contr_repeat_foc.png index 41acbe58d3c5b64928a53fb968d075327216baad..e01d911f54b25e830736a12fe282c79f14e7b754 100644 GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0vp^OMtkKg9S*6c4yCGU|@df>EaktaqI0J|BfrAGRHoq z|KIYaEkvnPR9lcWGH@C@_u@0&i3zez3QaA1Nz++6^MpdKsJ@W8qPpei38G>y7=Z9glB~d>`KbF@JBF($c`atHVuVY>(CKEmunS zc~Mv!WqT&Z*J>j3uK4v?G4?O_L_Ema=_;RH{q;aGZy3LU_3<#<#TWVJ6?(O=ZvV$V zt6*&sQ^R7L^R;Uh)E~5t{m4pwBYCzldQ*O72&?RmS&Dy+3d|_x^u1?`O6}oXH3JWA@H) z<||^karapNm)3QR-x%MQ?)36+ui^SJ&3kv;b1y%pew}L*{>m`V+feJxr+aOJbc4SB zht+=S*9FuYua@p!S(Cas@KT;{^tE5X$&<{k<}NdOGIx^QhPB`NmXwyxUddCrcggwO z)v^;yitnar-T(X3`LNVQ$;(;JR;!DpR^9S>+UXKBKX+^9>nz#TJe6LTLbqL=<~eK4 zZJ*Q=oSv(5SKrlmxq8>xkT#j=TkdVU#T@k1ddgJA?;cel%FC|GP1>?P&v>e${bfbn z>td&)q_=q4XVgE;(~6(}N#O(c^^(2k80Isa4|})NY)OT*#esn7tM@R}+#EKw50VYKbL{*93-dFTIkNX1qR+oeXTN;l+N;`-bdg7D zeT=*R{mYv0+=4x~HRiPA1D)BYzhCH>kffQvK}d1k(+6+n$B6Iy&vk7>FF&Kj!M#sE zo2#X~uIh<@c_cIL$)-;$TQkn6>!!`g|D1d8@~^n|t?|`gqraZe_5Cey)$8r0yK8T* zYJcf6+0I4P^M2;uvW!(#J?Bi{x}4kLZCx7cm-5~2(%V~+wl3+jDwV1OjQvyiy*wtj fn0O8l@soS1Oz5wM=Lh})^FD*8tDnm{r-UW|#;oMV literal 3866 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 diff --git a/res/edc/images/btn_music_contr_repeat_nor.png b/res/edc/images/btn_music_contr_repeat_nor.png index 00092ce3991cdef990cead22529dabde8b9b4840..d638a751e8ba02950822ce3794375d4371e37451 100644 GIT binary patch literal 1110 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 QttP-o&s?`c$K~OF0LO$YDF6Tf diff --git a/res/edc/images/btn_music_contr_shuffle_dis.png b/res/edc/images/btn_music_contr_shuffle_dis.png index 145d4b96a23a5ab1bbd208e50fb4a11fe8f2611f..633184f3555910724ef78759e5cf08b40526c485 100644 GIT binary patch literal 991 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 literal 3657 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 diff --git a/res/edc/images/btn_music_contr_shuffle_nor.png b/res/edc/images/btn_music_contr_shuffle_nor.png index 19d2544ec6682d65f08af5292b9eab4482c9f2c9..0d32fd799f72f4bcb5b02cf0271dae845c3fb9c2 100644 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0vp^OMtkKg9S*6c4yCGU|?S2>EaktaqI0Je~-z9GRHrD zzoeqGs$0Y<@WI&yi-M!3mA%lH;}X22q}0)+Cn&r5&3VNo-YzVHg321!p7k1+3@+&j zvX*jpEn>0ta1=6%Y>&!)WOkDOPu;2KdoRy>d-46}M}^7f^JjQG7CFmhd%)-9ghf1> zrv{u@W%7j~c%|ednP=6{{=IG3?DO4tQ|t9BEpki>g754DO||Phq&y0z6)&lA^V=Ha zck%S54bCksKF{yW3pQN2SL?;uTiU_A`8Q-gL?~G)XIENro?^9GqIWEr^XF;d$nCCs z7VpwXwfr7=xLWJ~yXh=_n`XVIF4omkMX=-nGdsuQ2?VnSSfE z=mPEftb^u4Q2T#o%bSXp!`GjfK744z~Vkm8lvDg-&J{JSAnfFsE(_ zcK3fX#n5Tp((WR?Vy1?`vQK@Y8-tIr@0`_s<|&)||F~_ki|p!7-B4Ivd4%a*LBpG) zOa4speAX`av%JtT?BfiscN^O`7WO|`+><71sCGiNB-qp3x5w{8hTW;BUoMILYj(An z(ETz|v)1I3@p3c@XtXt&(j4cibH#Yur?n@F+g6;fcC~r2v85*0 z^Uw7-=QXEyO}AA4oyoiVkElS=t9XN-pO;P-d2T6O^;7%D?z>Zddt~#RjyK%v_Rs&~ v8YQ+rX1C5{?V3OFVv0v#n@H+F5?{G*)o-iR;c__!%(e`ku6{1-oD!M<{Ku>U literal 3737 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 Nprc`+j)vGr{|6oP?l=Gd diff --git a/res/edc/images/btn_music_contr_shuffle_nor_foc.png b/res/edc/images/btn_music_contr_shuffle_nor_foc.png index ff4046184b4f33b6fcf7cff6bdd7005769c8debd..c7207b6738e62f10569c131b533ac6a00bda10d8 100644 GIT binary patch literal 894 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 F;$Lth-uD0i diff --git a/res/edc/images/ic_music_list_play.png b/res/edc/images/ic_music_list_play.png index 7a6ae5d3253b0dbbe95dc5b9823c869531f416a0..4bcf81590b9df73ea68830031321c030f9cd6385 100644 GIT binary patch delta 795 zcmV+$1LXXJ2&V>+8Gi%-001WUaOMC20`5sfK~zY`t=CIT9aR_r;1Bu; z1T>{=Y9(M31yfqB3lq`0CM*irq#Nq0=}Jq|M1*!hjP6XNyVgpG6qA;E!=jOrNHTIaYkFR*#qtHuK7T`Bbk4QGbWrN+dUfg|4Y~PoqiM#H2>|RJ*1y9PD%0oMwwzaj@uZa}MhZ16#C< zY4a#+4wif-inC~l`_iIjEeBkHNZ$~2dky`UE=FGuG^J=suf}ObF*_Oa(deId> zh=14>=B+BXx+Rbzi;7fTjc)X?Ri5i9xd~HR(}Jt6%YSn;7;+=VQl9?01BMNIH4Qno zuB?Nv;ckXuwYuv|dsAemh~F>{zJ&RVPim*r{%|V3h9<=v_61-GmNSCzqDy`XXBa7rQw4Cn~e(*=4V|9NNQ5JPg2T)MemqIH=R#DYA9= zEda;SoPUy<^1BbTm`-!MX540d8#Q9haYZTS%E62eqsVb+>ww!?4!qvDI%fZwRz-Cg9?1^zIH{SSfO^)zEEILQ}R9@Ue3LvUo}?z;AfK- z{DZyg<=lIUF{?XyWz1A?c6%eV;3Q(e_qi0D8&TnyCN*AGie(SY7&n};B;L;0_P>Dt Z0TdQm$#gb_zH0yg002ovPDHLkV1gi;ik<)f delta 1016 zcmV06Lfe02gnPU&TfM00W6hL_t(|+U(d%h?Qj+ z2k_rm%6LhH8gx@)Nt%%kf$69PrI1Cs2r{efU{adk##%+IGJlY=G{~Y>6#YU{i=Mz{T zu)aa&oX*&fw=oXO@dBn}H@096&eyYoZTKqW&SPE9+m<276-gi7&D?ddwIa6LY9-i) zuQ5BT)`3@Xp^i&=AvQWFsEnN1||4x^m<%uBEgHf-4dk=2~LT(?~4;|wtNum4%}KqaB*VmX9-PZ zWIqnaMt`kxF4!$eLarh>KYC9M#_z#h*qJe-Mv{B3;BpzkJEOm?bE_7|#_O0+a_-^i z8ASwdjy~R?JaY|x#4{z*x?|CkiwIVd%`*)=_%~s5vX^S4f<3O;DgR%Ms7cO7k8dEc zU*lUJs`CBum!xM`5&R|kwg#=(Tev;C+7+x||9@OW@JRH`I>~*3Sy{Q?O3tlde^*3s zZ}h?%NFBxxcr+QwksAM81$$pnO|mQ1*TWcFGMdb4z_Az`?16B(Y6VZ=o4A`N|ASck zM6kQUrO?f6j$Vh6O(ZuG&*yp5Q0dk-^yD_JZ6d+7!R!f#K?(L_b)H{DdlSgD2MeCN zvVZGP6iGhE`xuRn|E+GVQ`&+t8t)Z_#KA({s^oZ69N%we3m#o;edzgtg;-JaS2n zcQog%svNOQ19NxEf@J}io0i)0D(6=km|K--V3zH$_T!_BDarE|q~N~gl6>w=Ql_3< mhMh{bfGg7Sf0w^b`FjAnF3O%7m%M%e0000#OHQ@W|^x-7}kCw~=`)k}ReT!Xjwk|akB zFRPIwNw4>n-naw>04!dxK%5Bu^b;Y@0vlKW6iBoO9AFiI3TcKtZ#PVe3IMANv;v0N z1*$9&@_87xhghNt>=HHs!xVuElSY{1lT?7>d1Pb4AUnVzV{PGt7~>GwVbB}629$`j zjk9Yi0c&2s1b*oXf#i8$7I@SZ zPKY#+YXnBAVKLM-a0rVUirUIIE+t+XdrP`#{{cAjf|2geyKd_kg$VGdu!DTLJ;T@PC*-kDO89s|!2>Lo;Z$*B&_` z;LP2W&g`ctXag-tBW=Nsw5WNH^$|(mJKvP2T=mI`1N&~tc}Wv3{@W|v(W1WjL?Y>G{;Q*R>>Ry|X%4C8=I{^NS1$!%xhvqZSA(@B z;IvJ>Yk%}fPJtQccVp-|P-@oM7H*5wGk2viXv^q9M>6`(B%_@Rec3GZLPXdDs;sme zMV6@od(ArjXX>Tj!&1uURUafpx!qyO_8E%xac-S7F~S515++8P_4+thba%Ej&>lFq zeFje0=Aqxf888m*QO#>gH*`%Sl8*IRMP-#SjT^*)|NblB7ZDUo6ZT8qoB#j-07*qo IM6N<$f_a%aMF0Q* literal 1709 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+nA0*tB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij|AGfwQTx zsgZ$&i-oI+p`nF|fuozNtEq{jo1vw-r4!5yYK#vr#t^rny#X8J(K=z|gmQeuG#0aGA|2~YY!4m|Uu<^gj|5io1a z3trR7z`%6Z)5S5Q;?|oP2eXA8MUHLuotzc5w0+r;?jX^NT~Yd97l<1kt@=7`o@vuP z-+w&*PJ(-*{xfLG>Bvo5wRE~$PSdiks(=kj61S5kuDgH0{6o*|l=QOAXAd^YGjBG2 zUpsT=*?r$-u9qh7z4I%{_TDe%HL}dp53&|8$uRx?v4+vEK}(}i{lVU;;-yE}jyUp7 zIoS7l|JwrJKC_zNCW6yhLmzHolxviJAS1!boH8Z()lHe_ufmqDy}rQYV@f zo8^~3i+db(H!ah8!U2Wp-=d=g5bgfEVa9?TnI|&oV?Cm!*BBP_nTzOT}&45TbrH0 zoN~kcCfh;rZ|( zSn^cAQT^t67MoR>w{|eM@m>$R(O=yf{d&(5WijzRp})EEn(F44x$Ss2`?~ihZk2-! zH_Ujot!?Vr^nPuayreJpRfo=#|FUj=mlF2dyClATAhzRC@xE_=FMB^w|K{#=Yvb+* z64m>ySJc*j5!!L;Ux`DZ|3S%jcghcMz4bj?zftwubRCzK``gVQXr1Vi&%U+g{U*5y z`5zMlp8u4;vDE)=y1|uK!OPjiX5K#c#;I@K;`h&^=7h)H`TQ^}=E=TR4py;0Y-^03 z+~={JoGtz-|I+g*_m{kE^q6%?P}TQ)?&Wh{;+M~f-ri!|b!4xcO5ybtb1EX2EIcaU zCC@rBO|Sga?!OXuUkBO*wJvaEPSjktvOU&jl251d^{3n0&m2>$^x>TJEMi`9%FngW zzHVz%3=lIA=jEQEcm2!^F@w1bu3rp~Rjy*Gk&zMkc!$5u$COR+^ETB73QYgQe}?{6 aKER-uW^!4FXOSnU0`YY9b6Mw<&;$T%?UfP$ diff --git a/res/edc/images/ic_preview_play.png b/res/edc/images/ic_preview_play.png index 2c20b3e7bfb5fea52e5ea82306295aad208a7cff..2d6e37cbbc0144a39d6897add02e2b1680af3e8d 100644 GIT binary patch literal 8988 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�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 N%JLd=l`@v0{{a{;S>^x$ literal 11370 zcmW++1yCGK6Wznz-2wpu!JXh5+}+(Z=pn&^1ef3*Ah^4`ySoN=f;;^8{adv+wR_W3 zJJZ`e@Aca-B?U=TBqAgL08pi+#8n`z$A2dR9OReBjB5tcAbyk5b^!on?Eg*>kd{FJ z07#0~Vq!{4R*tTYE>@1;$fd=^$iF!|T3FkeL#$UaRV~$2kMIQUH*Q2_L;VwE9aV4< z$W=rm{Bhzw(NQ2`$b?elEaNJ7V}AV#Lp=056goQEKN44&0VN!134WI%H##scG<@Xw zuXmp9LfifR_*?y=;6d4SX6+<=7XnI>6uUB~KT5GE8Rk~tVBf&sT_)iGB&u%!212bF zh07}?2zc=2=coVJ1>XUHJZ6y*fG+v;E*6rX@94*(sd^y)AW)ZU+!t8{e;h#AD_XPw z5S9S>XQq5o1%AT-Mx&-CJAe`+U_|4$KMVM0KBRhs0Nn%%T+r`0fE?RAR2;D41Ii{f z!oLDqEC7y$Y#$G>#0aoRYg$MFRgFN`1O{>qfPez9D2E1r24K7aqajL44&Dp zLkn(l0#!DGAn!QFB7IZnJ6ReGE!VE?djPme!mcUmHbT&_*+Q-asmJYaVjRYky@ca1OO2K9Y9wlLVVLrz|aLp(ha-T zjr?N76(ma4*CUD{ie%YJtSaGZ~_A0&^(!V$DU|L_rd{$WvyntZ6ZLztg9j>xcv* zxpEGsO0CdWVg$toS-K7h;Mx1^SeOQSMXSFsAjX@HR(~u*DIFlH(kO#&4ZAg+tOmni z1$^y7`ZCaHP8yUhqj6IG$IP(-X5%s(@mGz<=HB8PJ z9ntcf29-+XpGDXlZfQK@fq2rg`Q^EZvqV<-R`=GGhpsJ{>xpCv$y1s$qeqg5$%oK4 zU=-94+`z$5OIpHo0(b&TLNGyPid+HVYy{z;8Vfh;NyeEGXOU2DoKX={W) zNpTL37`qI+X06I~f`t(LPKwh*hN}YN0c~OOwQu+a&c)~L&%^~Ba?PyfdbTA=$w^wJ zQl-kJk|*t46=#K+1?^v3wVwmfL`*9(yf@#F<~Z!4HeZ1ah8 zTE)Sg4u$6_Sse!cS#pkr8=mb4Pb5CfuWGOMPldOVC|Yo}C{%E(C=&$y{hUsY{G`l- ztCz}R`n|$p`NoOH$$x|5ny2~m<|U#e&?Bt}^meFr><8=z@;=>``@EseAy|h; zJ6}s(N5590JhPm7p|!lV5VNpZAzq<0Yr(R&>at(0PybEQ5woS%B*x?t`%VM) z=;uD`Ox5&RNlSdoW|zS0(1Kzi>Qr?>uLe5TPvE3~5RTNVUu&h6zWHx1v(=1=CYRm_h z+#6ru3*HGjXYUB^@N;jlZD<>gad$NiHI6FwI%XLLZ;JU*zMH*!y-x#${?s5#=&%5h z09~l(2e0oGozX(PtLAq#%V#2yznevHMPh!G|Jds;r?472jV-6RKS-H~o3KU;R`NYu zn1VOnH;(A_MWG4)8LSy16#Xq!i)flPnG-y{Cg!p!{v@6xzL9Rps>oBxD8or7Si)q( zzrx+Z(IPa!WT8Daua&7KZ6`~@!$eoXS!d-9?~AmkId6t)1gaZdURw8S5kEHUcXM` z+BiL_`q}dt_L_reieua4Q03Osd9(1++{x|P1bEw71AoQEI*FE0$j3KW9$W5PxQ~{Z z2iLsyJ47@xlO@6r+t$XG!D=%iHHa1*s_D=!(!tkQnrm8gj)#r#B$Z~-kDrazj;zLV zXIx~zpJDZ2{r%ODA0n&CNUF8pUS`8n!|&v|inN0ZOCO>ESH|BI-auzRuULAfnOx!9 z{>e+;Ho%~J=DB&&838qwm<9S1NwmQa z9dDTzU`A9fRQ0Hgfo;lf;-0%l_lTSKWT?C=?vdVQf8l38xRY9vGTVrzU8PB+tEN5c zn&`GDjtNdL9B+8NNUnZB&*0$K_LR9+8@66K`Y{`Cc{LfCnV9M0%k;Qrw3^%CePBAV zX@l-~(SqUncjoJR!~tI$--O;(lj~K@>K?XclV(~auc7_1>oNaZ{H)?&Yes8YMYEo5 z^SM`hy|=~v5pfpx#QIIU=Oy0z!h9Bwz%?g5GMMJPyiKvq z@J9GdWLa$e=e&^a+uG8_nx9P<`1kenn&drPaNy)y+-(fH7;H>x%xDN|$Vt{0K^~rM zA?MelmqM{gv&m0c_;0yyqZRmg%)SrvCyNu)DbqR0SIP06_TTegkGoC?D^~}42FN;w zJ=j?dZZw|Hy1{E;(u=%Jbj988vN$-z;cz0@SfllNvJSan)XhZLoS%qv<;tc*B?9+)iHVbNWI6i!!u3VE zjbJ}R&0xkhbls(1zgE|NY1PKSwRX<3B+JTlabHf|>~Nd#ME@8hY-`($+PLu}Y269{ zf~H*jgjJ^iDQ{3cX}y7{JiImBaXFWJ5C-Gc{v3*t3D7l~%*;(Jm)n4%^@v7xQss42un5aOyCbbDCjSbJHT=@RK=%QXt|@$qTS zHamqt6l#b71DJ#O(Ca<|V`i5+B`~}>@ag%Yldq|z1&xD~^A;Z|*arqGfCf;yeQ_kL z*U2nUDRvk#tFhJA)=u`mKYs-P0@9lT;Mp4MrN>Xc8H&m(Y{HIZart( zYDSupGfES~RChm$Vc5Gb1DY z_{8w=>bZkl-I_a>L$CNk(8I0mnoAvM#|*3=<4XSxb%nP3fZqVl>buQK{ct& zF32UuW%+O#P0D9C5J|{BIx=FzJFrxtu`|RX_tYCX=6!iTTOsjPi2r8w0{xl{cL)>< z2ULf)cKc%>BOH-XZM}Y-_e1O!Mt}n309xP&2;pqk$nk2T$*D3{7MIxt{?H?Y)Fa4D0o z;&kBfeS3H|4h%kBiBGsM`i%wHV)(9bom*#A@5A0szn+l|S z9`k=j2tz(IFfizC9~|7fC@4gyLCfn<8D;SnR2p_})Jn#Xr3Z@|XA{|_U0ux|5^q*$ zgO8l&>Ln4Xeg&4m1#ti=pg-|yV++8);ET*VRqZj*Aiw|{GzF9iBd6n{l5Ac4yVXR7 zg74Vqj8US+ng1rh?XcM)Q0TbX;RO6HR;*vA0#5$8k0gBFC+2q0Gch;kgr}fl$qh-Q zQIs^$uJTw8p1X-u397=v&;W_rFsk)g+0%Vw23e8%V`q*Rd|84bFN?*{*!_EMbL%ry z(k-@$hK3O){*m%tT3!TNlyx%B>YSykI`X6?|QM_1Oc*|~pka?-Jpbuz_V`)(~* zb~@Xq`k&fWV4X=&H5Nb*GOpKvH5Icgp1wxbNu01T#?}D3!VyNpdA&TB>=5<2Z=ys3 zURej0LOC`gqM|a1FfhKM102jY>BOik%+FLq!^5e^ySsHD3Nw>0OqA^Orrq0)zRzd( zoimsN;WS3oa2OT_zn;n+ITb+0)?`+fOVhopm4?q}9$;=wFy*~mR(AG#er@fw1EAC? zrEzNQZ#Xhbl_`_OV*JA#k{nWMYh6+(^it)RR!isA`73}$2 zQ^O~77&j@BsgaKX1&RLFJmf7{#yVa%G1$Wf`d)Tx|Cy!A8JK_blgr4+c<{`@Smq z!G{V2Ahm}kaGEitJ?FZ5cr;zNUUYaXG2lHDcF=t0p?=H^Q@x|1qQVCaAPM8p)F%{# z$=Z=pr%lVS8;f_Et9=`ehFOU1s|I|zy*t9dT(_Fyvt?sawe-T{}H5aG60>J ztPTwgO#}o4U_u3S^-e9231T_fY$qJiApWKU%3$O^^T3DO4;b0jOyg8VBKYG{kXr~{ zEDO56EKQ4{*w^Zm`+6MBG=`cGQ zc{N_`#l{$56Rs0Iq1Z`+SwOJDgEkHp<}m50Dfr;WQ9QabPcIlN#ZZo7vj5}o@GuS< z9~l%%9$XZYhC` z-Y4|0oOF88)Z{UcHoWHY{yru&GV)aC!v?3XNYhOSDlrKZG<1v#&fd^P+qWYb*RCz& zXEmEB91KQi@p@NpUCE)8`3+>90u|do(3=Du7d`p(%5bry{~0-~)D2?-hxh?6ZFEE+ zfYbNIW3=7-o{XK9mC%T`85H>Qf*MHlx8fm}S?_7veY&hcqy%zVMSy+Hi4WPQn~RFf ze-cLbl;dd>$vhwa8C%O2k0+Z4eg-fSlad_jYiiO)E~J{WQ>I$qx89w8(ZkCX8(>-< zKV~o|VM0x(Ai&n`)yrBI5U%Xj)YP;uEG)2tghddHiF)8n0Sq%Uv+q_2+%(+GC*wJJ z;QF3&TRarZt^_0uM$KZ*nHEy=Gde6L9GGb9md9nVkx6+w!ao3%ozGbf z>DTZPb67M$1?Cs>Y3?5(aUCYqwXops4q35DOXYbtSUGK7-E4FjqpnqR_{H-|B(K}AGD#v^2qBr>cz{{sXKXIInEz!kt-vD@WFA~rZMpuoY( zdNh22u-b7w^!f)r*x$8zPowFUYM4m4?!|W|u&3&bFXkVgyquiZz`#IjB6o#>e&lOY}-$m2!>J=MJ)$+subPy{@`QZg5F`d&X24l!oa_ zv6%PZYIU+EVsOtfF0QAi=SfCprY7JIRVS;H{aG#-;%A1l(^J9S>^34FfhUFUqL|#o zd8}K`*oTNAE#+H|=PF}BPsuL4b-(3=K~vvFU2SbT5e|--cDiJg?R5tDbm@{zezu_{ z9;Mf+!=T}bgS%dRR%_TlQFi}UuEWQCI_W~Qqr&H-SP>p7kufTuF`-|zTL-~2mv+@> z6PbLQKWR=9PReqv0hZ*^z2ttAYIH*{=s?NS-GW9sVgoNkxFpP^U24Z9EgfC}*xlcw zsnELid8labEU@O3i5T;vG~)b7PIP@;_^|*E4h3P#jTR^Td2MG!W{N4ovm{&s5YFcJ ztik`lL=jYmxcm(cC?%5isz>fapl891pl(r}P>8O4b-aG6XH8c4KC`;m8s*NYjGSPh z5WW~>7r85hj~CIe4|&joK}7132*`Nkhx4V2@GtS!N9Z3iqT6D78ELHlRE3hC$p{5T zbP?R2A3g8y4Vk8+pRaR`tf?_L7~AMtM$B7I8cxW|%PRf_KRrCi6@4~igG;%(y28@c z)kQzZetBIo)T}qgoZ&E0fd*lSBd{VVP+_G-5wkmw^!6=9$>RHMKqF9Y@t86Shhst` zlzx2UufS)6#0vWT%?(FdN8iBQH3Vq?uu5|%8&L;}Bw2GC^U^b?XY8U3fJOM|h}nNVUznl^?T6+Fi~__z z67~ss(p{~|J6yWe%GxO5P@|w63O(K3UJKc6);O>Pi!4Q+vHwk)Evc8w;s_IGTheL@ zLY-r;hcFMck8wp_0|KKpV==3}7a-BJeX915@wK(GaY@xr6BANx)m{UV7htHKsqq;> zTjWtI-!(Gd7-NF{uy+dQ^>%MCJd2e68+27?=ljXa6 zg%2IiOiagPc7atTss0i$06WiPOi4|R3)z+T%j+w27F>$MY=OMtTRPS`O}^DUdtC~R z1OmnG>Nwxw$g-(!H0cWa#G1HWu0HA#135M$a@j(S=gdl-^>vH~0Wq&uQc_a;gJXCH z-ZS7|YBt-GrbNp@D#+nsB5@UkYOBd~XDeuoYXZW^Gr#`hbb3R=DA3g#g31nIWalr2 zqXA-)Dj-m2ntX)qf`-P#b!STR7l_+5O(jsAY_E)Qdl<-#&`EfIjVzXk=1lo4RT=LO z0F*!%yT#aHPd1#2j*iB!)cDcm&7{r$JjUPT_Z$*Y7%gZ0WQ=RU=HgsBGBP6TSpYwo z!kULXh)W1nu(rO=cP;dh`CXX_V9`r#(%epE9!NnWm~z}*Uy4ZYeZTKrmFFm%Q9n0z zzP@sKASDqSAuzHtHqL1z=XqBa$>DMd*7E32D=rS3{}XmGHY5|R%Ll&WxG2Eapuhua zA7jXHuO^*QqGYR5Q&W-szBw59VghY5*X1OqXZ(xh1}#?$^|jfsclWi9qIanPke+^j z$ol>V(%Ci&ivcU_X5qoY%nZ+ojJRzCl_IFc6O73JdeA*Sh;~M3Yj5qa@?eY$1@uAs z9E0$}#L+mVSqiLI!iB!ja92WMyws|k(62zauGPcTR@hNkbg##JpVXh@~Ub048v~eZ}djKZPv!d@BOEQ$g|s~Ngdn{36eWS_Tm6WdTOSs@juGC zzkc`vhyw)am+*y_W@>fYWzEg4&91ABE~72V`WHzv|VEVit0j1Z*@0}2FPk*{4u}zQ><2^VoH|=0HxDbH#Hxl z@7$BhzuY=x9si39WoH+9zxp0rSE7Qfp*hy()bQb(b5$|{f;Hj4tPlS{*r{?Fx|+AqXAg7O+M5_#SCmB5S6VCY&$AMA3u!b z--!Do3r162-TXwlDld;QIZUFm1b1R&V%VVixHa$Zv!A?3$}dVe`sSXJG>LN90VgL{ z*SfvzeFCCHqlU6FhS4tA#vQ7M#Oqo*Iy!pyi`S!vwqV&@L=m0)`FNWE=E}#CAc4Y(jP{qyu}Q_f1N?5`SZ%FO(_osFzJ21Yb$Oa#OtGCaIw zSGFn(6%LTMwmu@o#*RNe`}Xqc1%@$loU5+VskK207Ik{C>RTqP?f6m}TWW@YyxZo{ z5O&crprXU2r~|RGpQ^Ze|A`7mx&@(xotY3?SkAZH>@ujZ_VzsmJUuRW8W!H+YdUbs z{MMBH@H++BJ0Xhrj(-%^>R#@2tvPQ)LKlK<{H_6L!>^jqf_`t`Io{=&&N2i91lGoN z!byEo;!-c)60C(#zPmhZ^zGJt4?02;h9b1IoR=S+Sg`QZm)Bq6@xGeO67c3~;p&0` zI3n#*nPAC*)NMaD0Bcg-;k9eztLU` zRWF$cbt9{0ZJAn^OVwc|-q?|%vYOkvL%ohZzuU1|Cd^5>C@Y+ns(}I1*vy99(i5QaY-1>fbS@~LqQG*ue+qBJ-Kn=xr*K_M&6;-5! z-=ezbDJq=t;|19jSpoU~b)T779*)>_y4oEM1b%b4RsoU8Y<++c5@7#F

cOIfAJr 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 diff --git a/res/edc/images/ic_thumbnail_picture.png b/res/edc/images/ic_thumbnail_picture.png index 04d17f64f3efe29b43bbf289eeb101c06fd0f00c..0a70910d9819a5d3680008dbde0f5e06682e90bb 100644 GIT binary patch delta 700 zcmV;t0z>_i4#@?O8Gi%-001NyIwk-B0+2~WK~!ko?b_cEPpR1jE@5dBl#bzL`#mYSK+MPz7UHCc(8EGoCXyV&E{+|GWT zbIoQT9DpRlJYimm z9rXg-%qsvATz^9l_Amp$5~u0`*uYEWb!TdgdnEd*FHoly|r2>a_9=fPb&F7977v3V>&X5IXq|zznjWL3{7 zahjcOfe*^!3BoZJ0GOpYQ@c(AfDuBgy3Z@|J=@&?`^x4CLc0>b=pMbQyfGRIbYI{n z0F%`NAAeTF6NHm2X7=c1egiPU7KiSO{L1>QssL8X6NJ_N+( zLel58fGx&*<2LPV=G^2v`*pCto2 z4WFFDlF?-*5mKy6DZ`M=GI^G|tVGS#kdqRD1RIYaFd(=Juo?75Gtb5+PxA7JwR4+B z1}07L5^a76gHD0D}%PXmnyg6p+bdK|BT zH%wE+%YY?QzKAzIxfsVyJQ~evwNkC|R20+FKrWZ-vY$_8Cq|#{ygEOy5YcrmK{2Rt= zt<71bCWMxOm{AL+CeEWM$^|BB_hv^hufsAq$zn*t<$_`f41!`7N5mF!K?oMc zGbEyTnCZewjb>bBR3k3GI>PT1mh(m|PlO>V9L2IwRPR!Nq8P}Ll#a>}o0o6h78dBBd;fQb3Qb-u|#aWxa0s%{B|!m)z7?BmV#YrS=C z3$K3ot&&1r9{KnKJh)L!L|Ao^HH((?cE|-B-qZYR zk0#cXcwBbuHL|^%?MQmy-aD4rBl5f>C*4*DkDs+0#1~EvpU?`PJiFkt%{wA=mV#8b2S?K88ak8}EiI1i(+_wyR=1nQW7{tE*A=5FEu*;;?Kju2emHbkWGEpe zbwHMoR)*dlUfm8wHZRSyJnCLB-nB7euo1kouRJvj8FZwj-wjvJ*e!^CR8=2!Z)JJ- zmYLVmGS6IX*h7sqFYSUtXFfeQ((0A(*Z;MCeZ;4u=~0&PzybOF8%?Vjw~knDH_UAd ziSth_SXIeBW~uI||Iw$cw_)p5_DFtDqF+VrDZa|5o#~P0eR@3eV{R2>Pbz$#+WPyU z2T}dUyB80fYy`CGXI=Rw@2tTAp~CC#{ehgaQ~JG?$Lj4vJ19fy_r2`%{c{U@loO%M z<@?s{ert)>;hoIJ0V{8;S0z6%YNG`U0&ukjl{Xvl389~*XjICNyT!wIk}+fA0o@C Aod5s; diff --git a/res/edc/images/ic_thumbnail_song.png b/res/edc/images/ic_thumbnail_song.png index 502280101e95b410549e33a9db837656b684cd9d..00950f4562923209274ef181a4a2304b15633e3d 100644 GIT binary patch delta 849 zcmV-X1Frne58Vck8Gi%-001NyIwk-B10+dAK~!ko?b_Q*6k!<0@t>84v{EUdA}T1V z3lCvng66IXNq zRj=J0iadIn*{U{$)vj6MrdhqzaY;pXC&4HO;=Rn&SNj(HOH%+0fPa2R01SYBM*u8zV5|Bxrnu%b zsvgz3m;rYiko7y8=qEMixylAx`z~+!16DEuOmmTXN-3wA>m-1ug#sJ^-mx!b>?mK8 zYw0_%6PRT8s_|y#3IjL*oUzQ@HVPt_rFG&0Hz>_g zq#T&Zkbm2061bVyz%-YrrG!!%=_UpYW+_q$#4_Y+fVe4OKk$M5DPs+MvC)YW84qzM zFk}W80;Vj=)Dh1Ld;pxY%-jLan*k00XDu_=vI0ARskF5hqLq2#>@@?N0Crhsnrxit z4}nh{Oc`t88*te^Z!KWe8lAY&)~)Uh5TlzWDu1XZ#4Y{;Pbe`1tN?yz$dv(qvQEC4 zJ1nGJq7rmb?1Z=WA^r*Mw9GUDA8i$Aq=!-B#CXdUi*qt3;A7yFWu^=0bzaQPwpOwe z_`!}<;|G`ln*9fgXTV5WCm&!8xa$os8?cH|V1m=h%k_TFGYt$=UKl`8lY9b(7_-Sw z{Yq@{if8X}tCL4e0`Q&tw0MU@IQWINN(=gx=XXGh@aj($uH(OdaSwpLM*s|fen$Wd bfPTk6g*?3~FaN+g00000NkvXXu0mjf)R2AJ literal 1998 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 -- 2.7.4 From 7164ff50f1eaf0ce6b24641b8d68336d4f78ce88 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 13:14:56 +0900 Subject: [PATCH 03/16] re-enable -Werror option Change-Id: I82201092fbe86fb81a69d1ea59dd049bca6d5aa2 Signed-off-by: Minkyu Kang --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e0f0e99..1138f9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,7 +83,7 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) FOREACH(flag ${PKGS_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror") TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS}) CONFIGURE_FILE(${PACKAGE_NAME}.xml.in ${PACKAGE_NAME}.xml) -- 2.7.4 From 7b69872e9274a5d06d6d0367decd56c6e9308cea Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 14:59:23 +0900 Subject: [PATCH 04/16] musicplayer: set initial state to pause on play/pause button Change-Id: I1ec82b8acec83d0ec59d4dff249e3786100af48c Signed-off-by: Minkyu Kang --- res/edc/widgets/button.edc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index e51d82f..798ff5c 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -926,7 +926,9 @@ group { signal: "load"; source: ""; script { - set_int(cur_state, STATE_PLAY); + set_int(cur_state, STATE_PAUSE); + set_state(PART:"bg", "default_pause", 0.0); + set_state(PART:"color", "default_pause", 0.0); } } program { -- 2.7.4 From a5beeee421359010e47a562cd3c69e9a31f5bd3b Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 15:18:50 +0900 Subject: [PATCH 05/16] musicplayer: play automatically when showing view Change-Id: I84f01a40b209cef272a023c00ce5cd12b95453ee Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 6675b90..261e9de 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -81,10 +81,6 @@ static struct _btn_info btn_player[] = { }, }; -static void _player_play(struct _priv *priv); -static void _player_stop(struct _priv *priv); -static void _player_next(struct _priv *priv); - static void _draw_playlist(struct _priv *priv) { struct _list_data *ld; @@ -234,7 +230,7 @@ static struct progressbar_ops _progressbar_ops = { .get_value = _player_get_position, }; -static void _player_play(struct _priv *priv) +static void _player_play_pause(struct _priv *priv) { app_media_info *mi; player_state_e state; @@ -289,8 +285,37 @@ static void _player_next(struct _priv *priv) return; } + progressbar_start(priv->progress); + playermgr_play(priv->player, mi->file_path, 0); + break; + default: + _ERR("player was not created"); + break; + } +} + +static void _player_play(struct _priv *priv) +{ + app_media_info *mi; + player_state_e state; + + playermgr_get_state(priv->player, &state); + + switch (state) { + case PLAYER_STATE_IDLE: + case PLAYER_STATE_READY: + mi = _get_current_media_info(priv); + if (!mi) { + _ERR("failed to getting media info"); + return; + } + + progressbar_start(priv->progress); playermgr_play(priv->player, mi->file_path, 0); break; + case PLAYER_STATE_PAUSED: + case PLAYER_STATE_PLAYING: + break; default: _ERR("player was not created"); break; @@ -337,10 +362,23 @@ static void _callback_music(void *data, const char *ev) _mplayer_next(priv); _player_next(priv); } else if (!strcmp(ev, SRC_BTN_MUSIC_PLAY)) { - _player_play(priv); + _player_play_pause(priv); } } +static void _list_set_focus(struct _priv *priv) +{ + struct _list_data *ld; + + ld = eina_list_nth(priv->item_list, priv->playlist.cur); + if (!ld) { + _ERR("failed to get list data"); + return; + } + + elm_object_item_focus_set(ld->item, EINA_TRUE); +} + static void _list_free(struct _priv *priv) { elm_genlist_clear(priv->list); @@ -632,6 +670,8 @@ static void _show(void *view_data) media_content_connect(); _mplayer_show(priv); + _list_set_focus(priv); + _player_play(priv); evas_object_show(priv->base); } -- 2.7.4 From 88b2f1d3a3260626d14eff513523e1783c9a5363 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Tue, 21 Jul 2015 15:40:26 +0900 Subject: [PATCH 06/16] music: add edc for now playing item Change-Id: I59b44ef7134845285bd933ebb8cb6ec062bee967 Signed-off-by: Jehun Lim --- include/define.h | 1 + include/layout/music.h | 10 + res/edc/widgets/button.edc | 625 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 636 insertions(+) diff --git a/include/define.h b/include/define.h index 4edee07..8608add 100644 --- a/include/define.h +++ b/include/define.h @@ -41,6 +41,7 @@ #define COLOR_TEXT_NORMAL 87 87 87 255 #define COLOR_TEXT_INFO 153 153 153 255 #define COLOR_TEXT_FOCUS 255 255 255 255 +#define COLOR_TEXT_FOCUS_0 255 255 255 0 #define COLOR_TEXT_SELECTED 64 136 211 255 #define COLOR_TEXT_DISABLED 87 87 87 128 #define COLOR_TEXT_BG 113 128 147 255 diff --git a/include/layout/music.h b/include/layout/music.h index ea3efde..8d10464 100644 --- a/include/layout/music.h +++ b/include/layout/music.h @@ -17,10 +17,20 @@ #ifndef __AIR_MEDIAHUB_LAYOUT_MUSIC_H__ #define __AIR_MEDIAHUB_LAYOUT_MUSIC_H__ +/* layout */ #define LAYOUT_MUSIC "LAYOUT_MUSIC" +/* group */ #define GRP_MUSIC_LAYOUT "group.music_layout" +/* part */ +#define PART_PLAYING_CONTENT_THUMBNAIL "part.playing_content_thumbnail" +#define PART_PLAYING_CONTENT_TITLE "part.playing_content_title" +#define PART_PLAYING_CONTENT_ARTIST "part.playing_content_artist" +#define PART_PLAYING_CONTENT_ALBUM "part.playing_content_album" + +/* style */ #define STYLE_GRID_SONG_ITEM "song_item" +#define STYLE_BTN_PLAYING_CONTENT "base_btn_playing" #endif /* __AIR_MEDIAHUB_LAYOUT_MUSIC_H__ */ diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index 798ff5c..9725e95 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -1637,3 +1637,628 @@ group { } } } + +group { + name: "elm/button/base/base_btn_playing"; + data.item, "focus_highlight" "on"; + images { + image: IMAGE_PREVIEW_PLAY COMP; + } + parts { + part { + name: "bg"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 514 614; + color: 0 0 0 0; + } + } + part { + name: "bg_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: 1.0 0.0; + min: 26 0; + align: 1.0 0.5; + fixed: 1 0; + } + } + part { + name: "map"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + perspective { + zplane: 0; + focal: 1000; + } + visible: 0; + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + perspective.zplane: -100; + } + } + part { + name: PART_PLAYING_CONTENT_THUMBNAIL; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "bg"; + rel2 { + to: "bg_text"; + relative: 1.0 0.0; + } + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + } + part { + name: "default_image"; + type: IMAGE; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: PART_PLAYING_CONTENT_THUMBNAIL; + relative: 0.5 0.5; + } + rel2 { + to: PART_PLAYING_CONTENT_THUMBNAIL; + relative: 0.5 0.5; + } + image.normal: IMAGE_PREVIEW_PLAY; + min: 120 120; + fixed: 1 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + } + } + part { + name: "part_focus1"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "bg"; + rel2 { + to: "bg_padding"; + relative: 0.0 0.0; + } + min: 0 6; + align: 0.5 0.0; + color: COLOR_ITEM_FOCUS; + fixed: 0 1; + visible: 0; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + visible: 1; + } + description { + state: "selected_0" 0.0; + inherit: "default" 0.0; + visible: 1; + color: COLOR_ITEM_FOCUS_0; + } + } + part { + name: "part_focus2"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "part_focus1"; + relative: 0.0 1.0; + } + rel2 { + to: "bg_text"; + relative: 0.0 0.0; + } + min: 6 0; + align: 0.0 0.5; + color: COLOR_ITEM_FOCUS; + fixed: 1 0; + visible: 0; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + visible: 1; + } + description { + state: "selected_0" 0.0; + inherit: "default" 0.0; + visible: 1; + color: COLOR_ITEM_FOCUS_0; + } + } + part { + name: "part_focus3"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "part_focus1"; + relative: 1.0 1.0; + } + rel2 { + to: "bg_text"; + relative: 1.0 0.0; + } + min: 6 0; + align: 1.0 0.5; + color: COLOR_ITEM_FOCUS; + fixed: 1 0; + visible: 0; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + map.on: 1; + visible: 1; + } + description { + state: "selected_0" 0.0; + inherit: "default" 0.0; + visible: 1; + color: COLOR_ITEM_FOCUS_0; + } + } + part { + name: "defaultbg_text"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "bg"; + relative: 0.0 1.0; + } + rel2 { + to: "bg_padding"; + relative: 0.0 1.0; + } + min: 0 144; + align: 0.5 1.0; + color: COLOR_ITEM_BG; + fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + color: COLOR_ITEM_FOCUS; + map.on: 1; + } + } + part { + name: "bg_text"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "defaultbg_text"; + rel2.to: "defaultbg_text"; + color: COLOR_ITEM_BG; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + color: COLOR_ITEM_FOCUS; + map.on: 1; + } + description { + state: "selected_0" 0.0; + inherit: "default" 0.0; + color: COLOR_ITEM_FOCUS_0; + } + } + part { + name: "padding_text_left"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "bg_text"; + rel2 { + to: "bg_text"; + relative: 0.0 0.0; + } + min: 30 20; + align: 0.0 0.0; + fixed: 1 1; + } + } + part { + name: "padding_text_right"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "bg_text"; + relative: 1.0 0.0; + } + rel2 { + to: "bg_text"; + relative: 1.0 0.0; + } + min: 30 20; + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: PART_PLAYING_CONTENT_TITLE; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_text_left"; + relative: 1.0 1.0; + } + rel2 { + to: "padding_text_right"; + relative: 0.0 1.0; + } + text { + font: FONT_LIGHT; + size: 36; + align: 0.0 0.5; + } + min: 0 36; + align: 0.5 0.0; + color: COLOR_TEXT_TITLE; + fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + color: COLOR_TEXT_FOCUS; + map.on: 1; + } + description { + state: "selected_0" 0.0; + inherit: "selected" 0.0; + color: COLOR_TEXT_FOCUS_0; + } + } + part { + name: "padding_text_artist"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: PART_PLAYING_CONTENT_TITLE; + relative: 0.0 1.0; + } + rel2.to: PART_PLAYING_CONTENT_TITLE; + min: 0 10; + align: 0.5 0.0; + fixed: 0 1; + } + } + part { + name: PART_PLAYING_CONTENT_ARTIST; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_text_artist"; + relative: 0.0 1.0; + } + rel2.to: "padding_text_artist"; + text { + font: FONT_LIGHT; + size: 28; + align: 0.0 0.5; + } + min: 0 28; + align: 0.5 0.0; + color: COLOR_TEXT_INFO; + fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + color: COLOR_TEXT_FOCUS; + map.on: 1; + } + description { + state: "selected_0" 0.0; + inherit: "selected" 0.0; + color: COLOR_TEXT_FOCUS_0; + } + } + part { + name: "padding_text_album"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: PART_PLAYING_CONTENT_ARTIST; + relative: 0.0 1.0; + } + rel2.to: PART_PLAYING_CONTENT_ARTIST; + min: 0 2; + align: 0.5 0.0; + fixed: 0 1; + } + } + part { + name: PART_PLAYING_CONTENT_ALBUM; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "padding_text_album"; + relative: 0.0 1.0; + } + rel2.to: "padding_text_album"; + text { + font: FONT_LIGHT; + size: 28; + align: 0.0 0.5; + } + min: 0 28; + align: 0.5 0.0; + color: COLOR_TEXT_INFO; + fixed: 0 1; + map { + perspective_on: 1; + perspective: "map"; + } + } + description { + state: "selected" 0.0; + inherit: "default" 0.0; + color: COLOR_TEXT_FOCUS; + map.on: 1; + + } + description { + state: "selected_0" 0.0; + inherit: "selected" 0.0; + color: COLOR_TEXT_FOCUS_0; + } + } + part { + name: "border_up"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "bg"; + rel2 { + to: "bg_padding"; + relative: 0.0 0.0; + } + min: 0 1; + align: 0.5 0.0; + color: COLOR_ITEM_BORDER; + fixed: 0 1; + } + } + part { + name: "border_left"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "border_up"; + relative: 0.0 1.0; + } + rel2 { + to: "bg"; + relative: 0.0 1.0; + } + min: 1 0; + align: 0.0 0.5; + color: COLOR_ITEM_BORDER; + fixed: 1 0; + } + } + part { + name: "border_right"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "border_up"; + relative: 1.0 1.0; + } + rel2 { + to: "bg_padding"; + relative: 0.0 1.0; + } + min: 1 0; + align: 1.0 0.5; + color: COLOR_ITEM_BORDER; + fixed: 1 0; + } + } + part { + name: "border_bottom"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to: "border_left"; + relative: 1.0 1.0; + } + rel2 { + to: "border_right"; + relative: 0.0 1.0; + } + min: 0 1; + align: 0.5 1.0; + color: COLOR_ITEM_BORDER; + fixed: 0 1; + } + } + part { + name: "event"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "go_active"; + signal: "elm,action,focus"; + source: "elm"; + action: STATE_SET "selected_0" 0.0; + target: "part_focus1"; + target: "part_focus2"; + target: "part_focus3"; + target: "bg_text"; + after: "focus,in,anim"; + } + program { + name: "focus,in,anim"; + action: STATE_SET "selected" 0.0; + target: PART_PLAYING_CONTENT_THUMBNAIL; + target: "default_image"; + target: "part_focus1"; + target: "part_focus2"; + target: "part_focus3"; + target: "bg_text"; + target: PART_PLAYING_CONTENT_TITLE; + target: PART_PLAYING_CONTENT_ARTIST; + target: PART_PLAYING_CONTENT_ALBUM; + transition: LINEAR 0.17; + after: "focus,in,anim,2"; + } + program { + name: "focus,in,anim,2"; + action: STATE_SET "selected" 0.0; + target: "defaultbg_text"; + } + program { + name: "go_passive"; + signal: "elm,action,unfocus"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "defaultbg_text"; + target: PART_PLAYING_CONTENT_TITLE; + target: PART_PLAYING_CONTENT_ARTIST; + target: PART_PLAYING_CONTENT_ALBUM; + after: "focus,out,anim"; + } + program { + name: "focus,out,anim"; + action: STATE_SET "selected_0" 0.0; + target: "part_focus1"; + target: "part_focus2"; + target: "part_focus3"; + target: "bg_text"; + transition: LINEAR 0.17; + after: "focus,out,anim,2"; + } + program { + name: "focus,out,anim,2"; + action: STATE_SET "default" 0.0; + target: PART_PLAYING_CONTENT_THUMBNAIL; + target: "default_image"; + target: "part_focus1"; + target: "part_focus2"; + target: "part_focus3"; + target: "bg_text"; + } + program { + name: "button_clicked"; + signal: "mouse,clicked,1"; + source: "event"; + action: SIGNAL_EMIT "elm,action,click" ""; + } + program { + name: SIG_BTN_CLICKED; + signal: SIG_BTN_CLICKED; + source: SIG_SOURCE_SRC; + action: STATE_SET "selected" 0.0; + target: "map"; + transition: DECELERATE 0.2; + after: "after_selected"; + } + program { + name: "after_selected"; + action: STATE_SET "default" 0.0; + target: "map"; + transition: DECELERATE 0.2; + after: "item_selected"; + } + program { + name: "item_selected"; + action: SIGNAL_EMIT SIG_ITEM_SELECTED SIG_SOURCE_EDC; + } + } +} -- 2.7.4 From 521c6131457ad3aa71eefcb86cfae4982be099e6 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Tue, 21 Jul 2015 15:40:52 +0900 Subject: [PATCH 07/16] music: add now playing item Change-Id: Ibb5b45a506bd299cc4b5c12739450b662060e3e1 Signed-off-by: Jehun Lim --- src/layout/music.c | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 200 insertions(+), 11 deletions(-) diff --git a/src/layout/music.c b/src/layout/music.c index b5e42da..856f96b 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -14,9 +14,11 @@ * limitations under the License. */ +#include #include #include #include +#include #include #include #include @@ -31,6 +33,7 @@ #define LIST_MEDIA_COND "media_type=3" #define TEXT_NOCONTENT "No Music" +#define TEXT_NOW_PLAYING "Now Playing" #define GRID_PADDING 26 #define GRID_ITEM_X (488 + GRID_PADDING) @@ -50,9 +53,11 @@ struct _priv { struct listmgr_data *ldata; struct mediadata *md; - int cur_index; Eina_List *media_list; + int cur_index; + + app_media *playing_info; }; static char *_grid_text_get(void *data, Evas_Object *obj, const char *part) @@ -117,10 +122,142 @@ static struct grid_class _gclass = { .content_get = _grid_content_get }; +static bool _update_playing_info(void *data, Evas_Object *base) +{ + Evas_Object *content, *image; + app_media_info *info; + struct _priv *priv; + + if (!data || !base) { + _ERR("invalid argument"); + return false; + } + + priv = data; + + content = elm_object_part_content_get(base, PART_ITEM_CONTENT); + if (!content) { + _ERR("failed to get content part"); + return false; + } + + image = elm_object_part_content_get(content, + PART_PLAYING_CONTENT_THUMBNAIL); + if (!image) { + _ERR("failed to get image object"); + return false; + } + + info = app_media_get_info(priv->playing_info); + if (!info) { + _ERR("failed to get app media info"); + return false; + } + + elm_image_file_set(image, info->thumbnail_path, NULL); + elm_image_aspect_fixed_set(image, EINA_FALSE); + + elm_object_part_text_set(content, PART_PLAYING_CONTENT_TITLE, + info->title); + + elm_object_part_text_set(content, PART_PLAYING_CONTENT_ARTIST, + info->audio->artist); + elm_object_part_text_set(content, PART_PLAYING_CONTENT_ALBUM, + info->audio->album); + + return true; +} + +static bool _draw_playing_title(Evas_Object *base) +{ + Evas_Object *btn; + + btn = elm_button_add(base); + if (!btn) { + _ERR("failed to create button object"); + return false; + } + + elm_object_style_set(btn, STYLE_BTN_INDEX); + elm_object_text_set(btn, TEXT_NOW_PLAYING); + + elm_object_part_content_set(base, PART_ITEM_TITLE, btn); + + return true; +} + +static bool _draw_playing_content(Evas_Object *base) +{ + Evas_Object *btn, *image; + + btn = elm_button_add(base); + if (!btn) { + _ERR("failed to create button object"); + return false; + } + + elm_object_style_set(btn, STYLE_BTN_PLAYING_CONTENT); + + image = elm_image_add(btn); + if (!image) { + _ERR("failed to create image object"); + return false; + } + + elm_object_part_content_set(btn, PART_PLAYING_CONTENT_THUMBNAIL, image); + + elm_object_part_content_set(base, PART_ITEM_CONTENT, btn); + + return true; +} + +static bool _draw_playing_info(void *data, Evas_Object *base) +{ + if (!base) { + _ERR("invalid argument"); + return false; + } + + if (!_draw_playing_title(base)) { + _ERR("failed to draw playing title"); + return false; + } + + if (!_draw_playing_content(base)) { + _ERR("failed to draw playing content"); + return false; + } + + return true; +} + +static void _item_selected_cb(struct _priv *priv, app_media *am) +{ + struct view_update_data vdata; + + vdata.list = mediadata_get_medialist(priv->md); + vdata.index = util_get_media_index(vdata.list, am); + priv->cur_index = vdata.index; + + viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); + viewmgr_push_view(VIEW_MPLAYER); +} + +static void _playing_selected_cb(void *data, Evas_Object *obj) +{ + struct _priv *priv; + + if (!data || !obj) + return; + + priv = data; + + _item_selected_cb(priv, priv->playing_info); +} + static void _grid_selected_cb(void *data, Elm_Object_Item *it) { app_media *am; - struct view_update_data vdata; struct _priv *priv; if (!data || !it) { @@ -136,17 +273,13 @@ static void _grid_selected_cb(void *data, Elm_Object_Item *it) return; } - vdata.list = mediadata_get_medialist(priv->md); - vdata.index = util_get_media_index(vdata.list, am); - priv->cur_index = vdata.index; - - viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT, &vdata); - viewmgr_push_view(VIEW_MPLAYER); + _item_selected_cb(priv, am); } static struct listmgr_data *_create_listmgr_data(struct _priv *priv) { struct listmgr_data *data; + struct play_info_ops *pops; struct grid_ops *gops; data = calloc(1, sizeof(*data)); @@ -160,6 +293,15 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) data->grid_num_item = GRID_NUM_ITEM; data->box_padding = BOX_PADDING; + pops = calloc(1, sizeof(*pops)); + if (!pops) + goto err; + + pops->draw = _draw_playing_info; + pops->update = _update_playing_info; + pops->selected_cb = _playing_selected_cb; + pops->ops_data = priv; + gops = calloc(1, sizeof(*gops)); if (!gops) goto err; @@ -168,6 +310,7 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) gops->selected_cb = _grid_selected_cb; gops->ops_data = priv; + data->pops = pops; data->gops = gops; return data; @@ -177,7 +320,7 @@ err: return NULL; } -static void _update_list_area(struct _priv *priv) +static void _update_content_list(struct _priv *priv) { Eina_List *list; @@ -197,6 +340,51 @@ static void _update_list_area(struct _priv *priv) priv->media_list = list; } +static void _update_playing_item(struct _priv *priv) +{ + GList *list; + app_media *am; + app_media_info *info; + struct recent_data *recent; + int r; + + list = NULL; + info = NULL; + + r = app_contents_get_recent_list(CONTENTS_MUSIC, 1, &list); + if (r != APP_CONTENTS_ERROR_NONE) { + _ERR("failed to get movie recent list"); + return; + } + + recent = (struct recent_data *)g_list_nth_data(list, 0); + + if (recent) { + am = util_find_media_info(mediadata_get_medialist(priv->md), + recent->id); + if (!am) { + _ERR("failed to get app media"); + g_list_free(list); + return; + } + + info = app_media_get_info(am); + if (!info) { + _ERR("failed to get app media info"); + g_list_free(list); + return; + } + + priv->playing_info = am; + } + + if (!listmgr_update_play_info(priv->listmgr, info)) + _ERR("failed to update now playing item"); + + + g_list_free(list); +} + static bool _create(layoutmgr *lmgr, void *data) { struct listmgr *listmgr; @@ -355,7 +543,8 @@ static void _update(void *layout_data, int update_type, void *data) switch (update_type) { case UPDATE_CONTENT: - _update_list_area(priv); + _update_content_list(priv); + _update_playing_item(priv); break; case UPDATE_FOCUS: if (!data) { @@ -371,7 +560,7 @@ static void _update(void *layout_data, int update_type, void *data) update = false; listmgr_update_focus_item(priv->listmgr, index, update); - + _update_playing_item(priv); break; default: break; -- 2.7.4 From cc8927db2d68a7ccccc9f7b0d8426c7644e8ec6f Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 18:37:08 +0900 Subject: [PATCH 08/16] musicplayer: add key down callback at genlist Change-Id: I0a49583b1d9de5e6031522875877091026a69dbf Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 261e9de..b75b14d 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -256,7 +256,6 @@ static void _player_play_pause(struct _priv *priv) progressbar_start(priv->progress); playermgr_play(priv->player, mi->file_path, 0); - break; default: _ERR("player was not created"); @@ -366,6 +365,32 @@ static void _callback_music(void *data, const char *ev) } } +static void _pop_view(struct _priv *priv) +{ + struct view_update_data vdata; + + vdata.index = priv->playlist.cur; + + viewmgr_update_view(VIEW_BASE, UPDATE_FOCUS, &vdata); + viewmgr_pop_view(); +} + +static void _key_down(int id, void *data, Evas *e, Evas_Object *obj, + Evas_Event_Key_Down *ev) +{ + struct _priv *priv; + + if (!data || !ev) + return; + + priv = data; + + if (!strcmp(ev->keyname, KEY_BACK) || + !strcmp(ev->keyname, KEY_BACK_REMOTE)) { + _pop_view(priv); + } +} + static void _list_set_focus(struct _priv *priv) { struct _list_data *ld; @@ -489,6 +514,7 @@ static input_handler _list_handler = { .realized = _list_realized, .selected = _list_selected, .mouse_move = _list_mouse_move, + .key_down = _key_down, }; static void _add_playlist_item(struct _priv *priv) -- 2.7.4 From 15dd609103b1e812b81611db6e390eda63b6792e Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Tue, 21 Jul 2015 18:36:09 +0900 Subject: [PATCH 09/16] music: remove status icon of now playing item Change-Id: Ic62cea52e9bd5480d355bb899b0ac69032fcce95 Signed-off-by: Jehun Lim --- res/edc/widgets/button.edc | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index 9725e95..7cc3fe1 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -1708,34 +1708,6 @@ group { } } part { - name: "default_image"; - type: IMAGE; - scale: 1; - description { - state: "default" 0.0; - rel1 { - to: PART_PLAYING_CONTENT_THUMBNAIL; - relative: 0.5 0.5; - } - rel2 { - to: PART_PLAYING_CONTENT_THUMBNAIL; - relative: 0.5 0.5; - } - image.normal: IMAGE_PREVIEW_PLAY; - min: 120 120; - fixed: 1 1; - map { - perspective_on: 1; - perspective: "map"; - } - } - description { - state: "selected" 0.0; - inherit: "default" 0.0; - map.on: 1; - } - } - part { name: "part_focus1"; type: RECT; mouse_events: 0; @@ -2187,7 +2159,6 @@ group { name: "focus,in,anim"; action: STATE_SET "selected" 0.0; target: PART_PLAYING_CONTENT_THUMBNAIL; - target: "default_image"; target: "part_focus1"; target: "part_focus2"; target: "part_focus3"; @@ -2228,7 +2199,6 @@ group { name: "focus,out,anim,2"; action: STATE_SET "default" 0.0; target: PART_PLAYING_CONTENT_THUMBNAIL; - target: "default_image"; target: "part_focus1"; target: "part_focus2"; target: "part_focus3"; -- 2.7.4 From 88fa9aee622ac97e6214090040ca5878bd7e31d3 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 19:19:18 +0900 Subject: [PATCH 10/16] musicplayer: add key down callback at control button Change-Id: I7452c3ee9a665e2c64347c9cac439cfd4f31165b Signed-off-by: Minkyu Kang --- include/util/controller.h | 1 + src/util/controller.c | 20 ++++++++++++++++++++ src/view/mplayer.c | 21 ++++++++++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/include/util/controller.h b/include/util/controller.h index 3f24bf2..babe7b5 100644 --- a/include/util/controller.h +++ b/include/util/controller.h @@ -30,6 +30,7 @@ struct controller_ops { void (*func)(void *, const char *), void *data); void (*focus)(void *handle, int loc, bool foc); void (*signal)(void *handle, int loc, const char *signal); + Evas_Object *(*get_object)(void *handle, int loc); }; struct controller { diff --git a/src/util/controller.c b/src/util/controller.c index b43c4f9..0e1c03c 100644 --- a/src/util/controller.c +++ b/src/util/controller.c @@ -268,6 +268,25 @@ static void _hide(void *handle) _disable(handle); } +static Evas_Object *_get_object(void *handle, int loc) +{ + struct _priv *p; + struct _control *ctl; + + if (!handle) { + _ERR("invalid parameter"); + return NULL; + } + + p = handle; + + ctl = eina_list_nth(p->list, loc); + if (!ctl) + return NULL; + + return ctl->obj; +} + static struct controller_ops _operations = { .add_control = _add_control, .add_callback = _add_callback, @@ -277,6 +296,7 @@ static struct controller_ops _operations = { .disable = _disable, .show = _show, .hide = _hide, + .get_object = _get_object, }; struct controller *controller_create(Evas_Object *base) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index b75b14d..02012a4 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -35,7 +35,7 @@ #define STYLE_MUSIC_BTN "music_btn" #define PART_MUSIC_BTN "control_btn" -#define PLAY_BTN_LOC 2 +#define PLAY_BTN_LOC 1 struct _list_data { app_media *am; @@ -517,6 +517,10 @@ static input_handler _list_handler = { .key_down = _key_down, }; +static input_handler _btn_handler = { + .key_down = _key_down, +}; + static void _add_playlist_item(struct _priv *priv) { Elm_Genlist_Item_Class *ic; @@ -584,6 +588,10 @@ static bool _ui_init(struct _priv *priv) ctl->ops->add_control(ctl->handle, btn_player[i].name, btn_player[i].loc, STYLE_MUSIC_BTN, PART_MUSIC_BTN); + + obj = ctl->ops->get_object(ctl->handle, i); + if (obj) + inputmgr_add_callback(obj, 0, &_btn_handler, priv); } ctl->ops->add_callback(ctl->handle, _callback_music, priv); @@ -747,6 +755,9 @@ static void _update(void *view_data, int update_type, void *data) static void _destroy(void *view_data) { struct _priv *priv; + struct controller *ctl; + Evas_Object *obj; + int i; if (!view_data) { _ERR("failed to get view data"); @@ -755,6 +766,14 @@ static void _destroy(void *view_data) priv = view_data; + ctl = priv->ctl; + + for (i = 0; i < ARRAY_SIZE(btn_player); i++) { + obj = ctl->ops->get_object(ctl->handle, i); + if (obj) + inputmgr_remove_callback(obj, &_btn_handler); + } + _list_free(priv); inputmgr_remove_callback(priv->list, &_list_handler); -- 2.7.4 From 47fa6416056a8f2a56ae1860ef663cfb24333c33 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 19:39:21 +0900 Subject: [PATCH 11/16] musicplayer: don't draw if mplayer view is hidden Change-Id: I12bce3c210b7442e57210e7463a41edb56a56465 Signed-off-by: Minkyu Kang --- src/view/mplayer.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 02012a4..17e43f0 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -59,6 +59,8 @@ struct _priv { struct playermgr *player; struct progressbar *progress; struct controller *ctl; + + bool bar_show; }; struct _btn_info { @@ -144,6 +146,9 @@ static void _mplayer_show(struct _priv *priv) struct controller *ctl; app_media_info *mi; + if (!priv->bar_show) + return; + mi = _get_current_media_info(priv); if (!mi) { _ERR("failed to getting media info"); @@ -618,6 +623,7 @@ static bool _ui_init(struct _priv *priv) inputmgr_add_callback(obj, 0, &_list_handler, priv); priv->list = obj; + priv->bar_show = false; return true; @@ -703,7 +709,9 @@ static void _show(void *view_data) media_content_connect(); + priv->bar_show = true; _mplayer_show(priv); + _list_set_focus(priv); _player_play(priv); @@ -722,6 +730,7 @@ static void _hide(void *view_data) priv = view_data; _mplayer_hide(priv); + priv->bar_show = false; media_content_disconnect(); -- 2.7.4 From 3d27566ece76c00f939a4d2be13536b1445328a5 Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Tue, 21 Jul 2015 20:04:10 +0900 Subject: [PATCH 12/16] fix edc warning Change-Id: Ib144ef2b35988aa0a8b12c4e577abf2374fd6bea Signed-off-by: Jehun Lim --- res/edc/widgets/button.edc | 1 + 1 file changed, 1 insertion(+) diff --git a/res/edc/widgets/button.edc b/res/edc/widgets/button.edc index 7cc3fe1..52cecca 100644 --- a/res/edc/widgets/button.edc +++ b/res/edc/widgets/button.edc @@ -303,6 +303,7 @@ group { parts { part { name: "bg"; + type: RECT; scale: 1; description { state: "default" 0.0; -- 2.7.4 From 691ec07cd48502ab0e9c9bcf92213797ebe1662f Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 20:35:06 +0900 Subject: [PATCH 13/16] musicplayer: set new path when playing music Change-Id: I5f168c3570557a500c55b9f8cb3864db1d42557d Signed-off-by: Minkyu Kang --- include/util/playermgr.h | 1 + src/util/playermgr.c | 27 +++++++++++++++++++++++++++ src/view/mplayer.c | 33 ++++++++++++++++++++++++++------- 3 files changed, 54 insertions(+), 7 deletions(-) diff --git a/include/util/playermgr.h b/include/util/playermgr.h index 0eafe4b..46c6005 100644 --- a/include/util/playermgr.h +++ b/include/util/playermgr.h @@ -34,5 +34,6 @@ bool playermgr_set_position(struct playermgr *m, int ms, void playermgr_get_state(struct playermgr *m, player_state_e *state); bool playermgr_set_completed_cb(struct playermgr *m, player_completed_cb cb, void *data); +const char *playermgr_get_path(struct playermgr *m); #endif diff --git a/src/util/playermgr.c b/src/util/playermgr.c index 8adbdd8..4cd046a 100644 --- a/src/util/playermgr.c +++ b/src/util/playermgr.c @@ -24,8 +24,29 @@ struct playermgr { Evas_Object *win; player_h player; + char *path; }; +static void _set_path(struct playermgr *m, const char *path) +{ + free(m->path); + + if (path) + m->path = strdup(path); + else + m->path = NULL; +} + +const char *playermgr_get_path(struct playermgr *m) +{ + if (!m) { + _ERR("invalid parameter"); + return NULL; + } + + return m->path; +} + int playermgr_get_duration(struct playermgr *m) { int r; @@ -155,6 +176,8 @@ void playermgr_stop(struct playermgr *m) player_pause(m->player); player_stop(m->player); player_unprepare(m->player); + + _set_path(m, NULL); } bool playermgr_play(struct playermgr *m, const char *path, int ms) @@ -174,6 +197,8 @@ bool playermgr_play(struct playermgr *m, const char *path, int ms) return false; } + _set_path(m, path); + if (m->win) { r = player_set_display(m->player, PLAYER_DISPLAY_TYPE_OVERLAY, GET_DISPLAY(m->win)); @@ -246,6 +271,7 @@ struct playermgr *playermgr_create(Evas_Object *win) } m->win = win; + m->path = NULL; return m; } @@ -262,5 +288,6 @@ void playermgr_destroy(struct playermgr *m) player_destroy(m->player); } + free(m->path); free(m); } diff --git a/src/view/mplayer.c b/src/view/mplayer.c index 17e43f0..a065194 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -302,28 +302,47 @@ static void _player_play(struct _priv *priv) { app_media_info *mi; player_state_e state; + const char *path; + struct controller *ctl; + + mi = _get_current_media_info(priv); + if (!mi) { + _ERR("failed to getting media info"); + return; + } playermgr_get_state(priv->player, &state); switch (state) { case PLAYER_STATE_IDLE: case PLAYER_STATE_READY: - mi = _get_current_media_info(priv); - if (!mi) { - _ERR("failed to getting media info"); - return; - } - progressbar_start(priv->progress); playermgr_play(priv->player, mi->file_path, 0); break; case PLAYER_STATE_PAUSED: + path = playermgr_get_path(priv->player); + if (path && !strcmp(mi->file_path, path)) + playermgr_resume(priv->player); + else + playermgr_play(priv->player, mi->file_path, 0); + + progressbar_resume(priv->progress); + break; case PLAYER_STATE_PLAYING: + path = playermgr_get_path(priv->player); + if (path && !strcmp(mi->file_path, path)) + break; + + progressbar_start(priv->progress); + playermgr_play(priv->player, mi->file_path, 0); break; default: _ERR("player was not created"); break; } + + ctl = priv->ctl; + ctl->ops->signal(ctl->handle, PLAY_BTN_LOC, SIG_SET_PAUSE); } static void _player_stop(struct _priv *priv) @@ -472,7 +491,7 @@ static void _list_selected(int id, void *data, if (priv->playlist.cur != index) { _mplayer_set_current(priv, index); - _player_next(priv); + _player_play(priv); } } -- 2.7.4 From 3f0651d7a14d6f8d6e8972208284a0acb7eb00e6 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Tue, 21 Jul 2015 21:14:06 +0900 Subject: [PATCH 14/16] progressbar: fix to call elm_slider_value_set The slider should have its minimum and maximum values set by the application with elm_slider_min_max_set() and value should also be set by the application before use with elm_slider_value_set() Change-Id: Ie7fc7f2758f2906602e6e55bc8273db8cbd1a3cf Signed-off-by: Minkyu Kang --- src/util/progressbar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/progressbar.c b/src/util/progressbar.c index 8e27037..ed0a28f 100644 --- a/src/util/progressbar.c +++ b/src/util/progressbar.c @@ -167,9 +167,9 @@ void progressbar_reset(struct progressbar *m, int position, int duration) return; } - elm_slider_value_set(m->slider, position); elm_slider_min_max_set(m->slider, 0, duration); elm_slider_step_set(m->slider, SLIDER_STEP); + elm_slider_value_set(m->slider, position); _update_time_info(m, position, duration); } -- 2.7.4 From e9f04f45f11d172c02fc821c56c4758a5cf77db3 Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Wed, 22 Jul 2015 15:06:21 +0900 Subject: [PATCH 15/16] add new update types UPDATE_PLAY_INFO: for updating play info UPDATE_PLAYER: for updating player (stopping player) Change-Id: Ibd0193a589bac43e83b6d111f87798dcebe0a046 Signed-off-by: Minkyu Kang --- include/view.h | 4 +++- src/view/base.c | 2 +- src/view/mplayer.c | 29 +++++++++++++++++++++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/include/view.h b/include/view.h index 3fec5db..f37bf6c 100644 --- a/include/view.h +++ b/include/view.h @@ -35,7 +35,9 @@ struct view_update_data { /* view update type */ enum update_type { UPDATE_CONTENT = 0, - UPDATE_FOCUS + UPDATE_FOCUS, + UPDATE_PLAY_INFO, + UPDATE_PLYAER }; #endif /* __AIR_MEDIAHUB_VIEW_H__ */ diff --git a/src/view/base.c b/src/view/base.c index 52e0ab8..27efa42 100644 --- a/src/view/base.c +++ b/src/view/base.c @@ -304,7 +304,7 @@ static void _update(void *view_data, int update_type, void *data) layoutmgr_update_layout(priv->lmgr, g_menu_item[priv->current_layout].layout_id, - UPDATE_FOCUS, (void *)&vdata->index); + update_type, (void *)&vdata->index); } static void _destroy(void *view_data) diff --git a/src/view/mplayer.c b/src/view/mplayer.c index a065194..fa151be 100644 --- a/src/view/mplayer.c +++ b/src/view/mplayer.c @@ -141,6 +141,18 @@ static app_media_info *_get_current_media_info(struct _priv *priv) return mi; } +static void _update_info(struct _priv *priv, app_media_info *mi) +{ + struct view_update_data vdata; + + /* update history */ + app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); + + /* update play info */ + vdata.index = priv->playlist.cur; + viewmgr_update_view(VIEW_BASE, UPDATE_PLAY_INFO, &vdata); +} + static void _mplayer_show(struct _priv *priv) { struct controller *ctl; @@ -163,7 +175,7 @@ static void _mplayer_show(struct _priv *priv) _draw_progressbar(priv, mi); _draw_playlist(priv); - app_contents_recent_add(CONTENTS_MEDIA, mi->media_id); + _update_info(priv, mi); } static void _mplayer_hide(struct _priv *priv) @@ -774,10 +786,19 @@ static void _update(void *view_data, int update_type, void *data) priv = view_data; vdata = data; - priv->playlist.list = vdata->list; - priv->playlist.cur = vdata->index; + switch (update_type) { + case UPDATE_CONTENT: + priv->playlist.list = vdata->list; + priv->playlist.cur = vdata->index; - _add_playlist_item(priv); + _add_playlist_item(priv); + break; + case UPDATE_PLYAER: + _player_stop(priv); + break; + default: + break; + } } static void _destroy(void *view_data) -- 2.7.4 From 997bd65902fca422470f328f4bde2fa39fbc40cb Mon Sep 17 00:00:00 2001 From: Minkyu Kang Date: Wed, 22 Jul 2015 15:31:58 +0900 Subject: [PATCH 16/16] musicplayer: add default thumbnail image Change-Id: I60b992053e18985e3d7a1f58f0a7efae8a756788 Signed-off-by: Minkyu Kang --- include/view/mplayer.h | 2 ++ res/images/ic_thumbnail_song_player.png | Bin 0 -> 6077 bytes src/view/mplayer.c | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 res/images/ic_thumbnail_song_player.png diff --git a/include/view/mplayer.h b/include/view/mplayer.h index 297ba41..988daf9 100644 --- a/include/view/mplayer.h +++ b/include/view/mplayer.h @@ -45,6 +45,8 @@ #define SRC_BTN_MUSIC_NEXT "next" /* images */ +#define IMAGE_MUSIC_THUMBNAIL IMAGEDIR"/ic_thumbnail_song_player.png" + #define IMAGE_MUSIC_PREV_FOCUS "btn_music_contr_previous_foc.png" #define IMAGE_MUSIC_PREV_NORMAL "btn_music_contr_previous_nor.png" #define IMAGE_MUSIC_PLAY_FOCUS "btn_music_contr_play_foc.png" diff --git a/res/images/ic_thumbnail_song_player.png b/res/images/ic_thumbnail_song_player.png new file mode 100644 index 0000000000000000000000000000000000000000..cee21818bc46322a7ae93a3c30d9d6bc0e215a40 GIT binary patch literal 6077 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, mi->thumbnail_path, NULL); + char *path; + + if (mi->thumbnail_path) + path = mi->thumbnail_path; + else + path = IMAGE_MUSIC_THUMBNAIL; + + elm_image_file_set(priv->thumb, path, NULL); elm_object_part_content_set(priv->base, PART_MPLAYER_THUMB, priv->thumb); } -- 2.7.4