From 781364197ace6cf967f782e69353b95e143180c5 Mon Sep 17 00:00:00 2001 From: Alka Sethi Date: Sat, 17 Sep 2016 17:32:47 +0530 Subject: [PATCH] [UX IMPL]Minicontroller and lockscreen controller implemented Change-Id: I6ab05fd3d712d6bd1a15247d3092370163303826 Signed-off-by: Alka Sethi --- playview/CMakeLists.txt | 3 + .../res/edje/images/lock_screen/album_frame.png | Bin 0 -> 1106 bytes .../lock_screen/control_circle_button_66.png | Bin 0 -> 2988 bytes .../lock_screen/control_circle_button_66_focus.png | Bin 0 -> 2949 bytes .../lock_screen/control_circle_button_66_press.png | Bin 0 -> 4751 bytes .../lock_screen/control_circle_button_84.png | Bin 0 -> 3491 bytes .../lock_screen/control_circle_button_84_focus.png | Bin 0 -> 3408 bytes .../lock_screen/control_circle_button_84_press.png | Bin 0 -> 5756 bytes .../images/lock_screen/control_circle_icon_ff.png | Bin 0 -> 1459 bytes .../lock_screen/control_circle_icon_ff_dim.png | Bin 0 -> 1309 bytes .../lock_screen/control_circle_icon_ff_press.png | Bin 0 -> 1318 bytes .../lock_screen/control_circle_icon_pause.png | Bin 0 -> 1339 bytes .../lock_screen/control_circle_icon_pause_dim.png | Bin 0 -> 1227 bytes .../control_circle_icon_pause_press.png | Bin 0 -> 1225 bytes .../lock_screen/control_circle_icon_play.png | Bin 0 -> 1684 bytes .../lock_screen/control_circle_icon_play_dim.png | Bin 0 -> 1459 bytes .../lock_screen/control_circle_icon_play_press.png | Bin 0 -> 1487 bytes .../lock_screen/control_circle_icon_rewind.png | Bin 0 -> 1457 bytes .../lock_screen/control_circle_icon_rewind_dim.png | Bin 0 -> 1301 bytes .../control_circle_icon_rewind_press.png | Bin 0 -> 1329 bytes .../lock_screen/control_circle_icon_stop.png | Bin 0 -> 1166 bytes .../lock_screen/control_circle_icon_stop_dim.png | Bin 0 -> 1126 bytes .../lock_screen/control_circle_icon_stop_press.png | Bin 0 -> 1129 bytes .../edje/images/mini_controller/album_frame.png | Bin 0 -> 1106 bytes .../images/mini_controller/bg_btn_player_01.png | Bin 0 -> 2142 bytes .../images/mini_controller/bg_btn_player_01_ef.png | Bin 0 -> 3338 bytes .../images/mini_controller/bg_btn_player_02.png | Bin 0 -> 1961 bytes .../images/mini_controller/bg_btn_player_02_ef.png | Bin 0 -> 2301 bytes .../mini_controller/btn_controller_close.png | Bin 0 -> 1127 bytes .../images/mini_controller/icon_player_next.png | Bin 0 -> 1259 bytes .../images/mini_controller/icon_player_pause.png | Bin 0 -> 1057 bytes .../images/mini_controller/icon_player_play.png | Bin 0 -> 1339 bytes .../images/mini_controller/icon_player_prev.png | Bin 0 -> 1269 bytes .../mini_controller/music_btn_player_next_nor.png | Bin 0 -> 1411 bytes .../mini_controller/music_btn_player_pause_nor.png | Bin 0 -> 2122 bytes .../mini_controller/music_btn_player_play_nor.png | Bin 0 -> 2337 bytes .../mini_controller/music_btn_player_prev_nor.png | Bin 0 -> 1374 bytes playview/res/edje/pv-lockscreenmini.edc | 840 +++++++++++++++ playview/res/edje/pv-minicontroller.edc | 1130 ++++++++++++++------ playview/src/include/vp-play-string-define.h | 2 + playview/src/view/include/vp-play-normal-view.h | 4 + playview/src/view/include/vp-play-view-priv.h | 17 + playview/src/view/vp-play-normal-view.c | 624 ++++++++++- playview/src/vp-play-view.c | 13 +- playview/src/widget/include/vp-play-lockscreenmc.h | 51 + .../src/widget/include/vp-play-minicontroller.h | 42 + playview/src/widget/vp-play-lockscreenmc.c | 656 ++++++++++++ playview/src/widget/vp-play-minicontroller.c | 864 +++++++++++++++ project_def.prop | 4 +- vp-main/project_def.prop | 4 +- 50 files changed, 3898 insertions(+), 356 deletions(-) create mode 100755 playview/res/edje/images/lock_screen/album_frame.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_66.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_66_focus.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_66_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_84.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_84_focus.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_button_84_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_ff.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_ff_dim.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_ff_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_pause.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_pause_dim.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_pause_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_play.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_play_dim.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_play_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_rewind.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_rewind_press.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_stop.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_stop_dim.png create mode 100755 playview/res/edje/images/lock_screen/control_circle_icon_stop_press.png create mode 100755 playview/res/edje/images/mini_controller/album_frame.png create mode 100755 playview/res/edje/images/mini_controller/bg_btn_player_01.png create mode 100755 playview/res/edje/images/mini_controller/bg_btn_player_01_ef.png create mode 100755 playview/res/edje/images/mini_controller/bg_btn_player_02.png create mode 100755 playview/res/edje/images/mini_controller/bg_btn_player_02_ef.png create mode 100755 playview/res/edje/images/mini_controller/btn_controller_close.png create mode 100755 playview/res/edje/images/mini_controller/icon_player_next.png create mode 100755 playview/res/edje/images/mini_controller/icon_player_pause.png create mode 100755 playview/res/edje/images/mini_controller/icon_player_play.png create mode 100755 playview/res/edje/images/mini_controller/icon_player_prev.png create mode 100644 playview/res/edje/images/mini_controller/music_btn_player_next_nor.png create mode 100644 playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png create mode 100644 playview/res/edje/images/mini_controller/music_btn_player_play_nor.png create mode 100644 playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png create mode 100644 playview/res/edje/pv-lockscreenmini.edc create mode 100644 playview/src/widget/include/vp-play-lockscreenmc.h create mode 100644 playview/src/widget/include/vp-play-minicontroller.h create mode 100644 playview/src/widget/vp-play-lockscreenmc.c create mode 100644 playview/src/widget/vp-play-minicontroller.c diff --git a/playview/CMakeLists.txt b/playview/CMakeLists.txt index c00185e..16428c7 100755 --- a/playview/CMakeLists.txt +++ b/playview/CMakeLists.txt @@ -25,6 +25,8 @@ SET(SRCS src/widget/vp-play-loading-ani.c src/widget/vp-play-volume-popup.c src/widget/vp-play-brightness-popup.c + src/widget/vp-play-minicontroller.c + src/widget/vp-play-lockscreenmc.c src/core/vp-mm-player.c src/core/vp-sound.c src/core/vp-media-contents.c @@ -223,6 +225,7 @@ BUILD_EDJ(pv-subtitle-color-popup.edc pv-subtitle-color-popup.edj BUILD_EDJ(pv-colorselector.edc pv-colorselector.edj res/edje/ images) BUILD_CUSTOM_EDJ(pv-minicontroller.edc pv-minicontroller.edj res/edje/ images custom) +BUILD_CUSTOM_EDJ(pv-lockscreenmini.edc pv-lockscreenmini.edj res/edje/ images custom) BUILD_CUSTOM_EDJ(pv-custom-winset.edc pv-custom-winset.edj res/edje/ images custom) diff --git a/playview/res/edje/images/lock_screen/album_frame.png b/playview/res/edje/images/lock_screen/album_frame.png new file mode 100755 index 0000000000000000000000000000000000000000..b70b5885e3f9639571ef2b5e0d3c424554c4a3b3 GIT binary patch literal 1106 zcmaJ=&rj4q7_ERPL_FvT<6%+~!Nl#a-7RcGg|h9+M!O-)MmEtzN;|L(v@^5=TZpK5 z^QIS1{0Al)&m81L;=zLl4`@udcq8b^ix;QeA4uZTw4Irk_ulu-eBZp7Dcu?9zt+z% z%s_EkFVoSFzl*)}zyILIA36*Yqe^DcBB@&eWHbjYKv49oC0K@*v$6USjx$U*>sG3y zYTi?94kS*qBZ z%XZFTCvJoBNTCKEBo>Ig6+cuWl}&sVI*(zV1qp>Lt862wsyPGlD1ac#rBk*bia?e* zF_V>L@fMH-QQ`&q$|*6UWMxGf1x=TBkTuLj;92 zgh75*1|xH>@1S~kGvS-2QuIS&`8F)-DoY(W*L9SFpk)m~OpB7Pi=vUyG$TD$(5DPp zlGCy#x3oI4*F5Nxmex7ZW;$x)R`4*5ti!-vhfX0t9!R#VxSewmJNh-XPUl>tj#{23 z!^egFr_e2kc27KQw=G??8z1_#+XLFx$MX;0(JQfE)U`_V_2~2a0R~*^)+P_0{+N7q zekApM^muFc(cRTAN9#sq>+#FMG2Atb4|__7dwn~5eb>jfuO>*>h0EKF#LuuVHHJk$TQF!6u#=3w2pKlkh$^ZHZow_jJR-|;Ok8YTVh)co_m Dhjm@5 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_button_66.png b/playview/res/edje/images/lock_screen/control_circle_button_66.png new file mode 100755 index 0000000000000000000000000000000000000000..738f60101c2fb627ab8b499a79781c221544a8d1 GIT binary patch literal 2988 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 f_g25|a~lyPu(``o> literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_button_84.png b/playview/res/edje/images/lock_screen/control_circle_button_84.png new file mode 100755 index 0000000000000000000000000000000000000000..5be57f7e091f8993a20b7dbd5cd1c3e980cf058f GIT binary patch literal 3491 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 Z1`QXkn3!#axvl*+xjB22s+^9-{~Pr`^@9Ka literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_button_84_focus.png b/playview/res/edje/images/lock_screen/control_circle_button_84_focus.png new file mode 100755 index 0000000000000000000000000000000000000000..fc70b997d564828798f261020edcc588702c2dd0 GIT binary patch literal 3408 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 Nv9houl$d)){|lSs{0;yB literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_button_84_press.png b/playview/res/edje/images/lock_screen/control_circle_button_84_press.png new file mode 100755 index 0000000000000000000000000000000000000000..6141ad637f47adafcc8c0b39e5c95fd07b8e84ec GIT binary patch literal 5756 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 DiIrwM literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_ff.png b/playview/res/edje/images/lock_screen/control_circle_icon_ff.png new file mode 100755 index 0000000000000000000000000000000000000000..0948ca40529da62c2bad7427bce1cc3733debe9a GIT binary patch literal 1459 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#k|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|v-k+X}F zqp7irn}w^fp`nG7iKU}~rJIYTrG=BBnKR4`Y?A%nV(e zEgXSnxmg++8o=~=<`tJD<|U`X?9Bw)3)Sn2SFe?GQEFmIeo;t%ehw@J1Z3owkk2Xf$P7t|;pxH;YYraX+o8BrghSCsfPqP%fq_MVfsw-j8?&RHZ(=}ITVltmB{M|7PD`@A zeoARJ_rK-d&T@}iivr62oJ|v+d!?G|d9_sU+|BRixB0UFT(V`o=#$DiuB`zFUq9(t zaQf#wyB#}SgDYa?r^%U$2lr(?V6EMo9npUHVXst)$ZPq~k5=WsO?*H1**Rt9t+e2N z_2{ogUfsuQwzuDZ=bwD?$u_oolea}Kd+9oH+dVtO4V&Iv7OLKTw@agI%Iomeq5ljzopr E084TSvH$=8 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_ff_dim.png b/playview/res/edje/images/lock_screen/control_circle_icon_ff_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..4961fa28d5ac31360b83998bea4a20afee5c9f8e GIT binary patch literal 1309 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#k|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|v-k+X}F zqp7irn}w^fp`nG7iKU}~rJIYTrG=BBnKR4`Y`gLD2*8txIZAW?5>ATTys|N%#)f2%rQm4tZ}eOubP2@(bv<(F{I+wn_Ig4hYSQ7 z9`-6s@OYw9BxKp?qBPN?j>(?Y63FyZQlEI@2SI^Oe_xqRE+jQRk zwp*xrl8H&7fq{tw2ca}!+nkI$-Q7`-qEE+)=y{3fKfRItvv%(9t`GGk?;kx$TKeMk z<2OmmWvq9sop_Qb?bN@hJqqVLrmAe8&!NBLaFP1y`rHHBNqbGrnl^@h)90x;7(2gi zTfZLPsm%wv%vZk-zFg$F$@IZhLnofidkyCqhfFh^eq-OH9G<`P4V`{0$vd@a*JPnR zT`zlHs4P6TA{+;jgk>q_mZMK9$A zau?Mbex9~sin)jN(ar9s)K7#=b6{X(5x`2E*;~sZ!SFG{>b^#XUMZ-+@^tlcS?83{ F1OQ(Wye0qu literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_ff_press.png b/playview/res/edje/images/lock_screen/control_circle_icon_ff_press.png new file mode 100755 index 0000000000000000000000000000000000000000..fc2fb5234c977420260309edcba154ef036f6d11 GIT binary patch literal 1318 zcmeAS@N?(olHy`uVBq!ia0vp^P9V&|1|%PcFuVX#k|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|v-k+X}F zqp7irn}w^fp`nG7iKU}~rJIYTrG=BBnKR4`Y>^98H|f zjm#|#&CE>=49sDAJ@bl767!N%VfJPM?S<+!#;e!LxhOTUB)=#mKR*YS0s=DfOY(~| z@(UE4gUu8)!ZY(y^2>`gLD2*8txIZAW?5>ATTys|N%#)f2%rQm4tl{{gSB!yyG0fA&F{I+wn_Cxi4;ctF zJY15*;O1f8!25zNmH9@4AA=8r^Z~ZBY;W0GIZtrhRIv4KKk``ikX~86_xG}{n)z=x z%Lnlv4lrExij_&Bfq{tw2k~gWbBs#Zu{*8L{AKRTnaq=0H1URKjb{(I(RG3|;@ zweE`2H?wwbT$#36*(orX{ZQEF-8Y22cPek|oBrslM$PhBcQh^reh|6(>f%f9U8YWf z>-k#vU0(~!-^>u0yLiQA-}g79_s>0hdJ?;+fCB>~3ye63?Cp;B-grhfhOTQ4xes-J Qz6F(Bp00i_>zopr0Eqy&O8@`> literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_pause.png b/playview/res/edje/images/lock_screen/control_circle_icon_pause.png new file mode 100755 index 0000000000000000000000000000000000000000..5bd2bb3cad96cad57b422dc63682a8dab19dceda GIT binary patch literal 1339 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#mddu$l1lo z(bU+*&BE2#(9puk#M05g(#^%v(!$Bm%o%0|Hoc}MMvl%-j^+jy#+HVLt|m?frWS4% zrY=s#X2vdtre-j`o_WP3iFwJXFncqB_CocV;ni#9T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?;hA|U`Q^o$py+}4)+Mzlvn(~mttdZN0UW+onON*MFmrV_bu)G|F~;R@ zh~5-(!b~6N7=2LUKuRnyAz%swG2uxc$bn~`)I4C0DFS8#d%R=l8Hv3vAqPVkw% zY!8n;r?68`;gbEUoft$k0vK7jLL3^IL<1H$G;(PKEMVdiS<%46ss-dSz1@1-i3-)T%kCa=WvcmCl+-i%%Y`$tQ|I-I{;ExH-FaDd zM%*WR)A{Gs-|jq`RQSlY+uy#$ z;b%9N{gm2kKi%=oKJDC$6S2!aUYKR=|2XsbqYc0H%HwD3_I|w4;Qyrlzt5!p@3;8# seXf7y0tZ$^D1f~U4+Xh3<&10$e?m-nPF!Nz0xHftUHx3vIVCg!02Ol0#Q*>R literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_pause_dim.png b/playview/res/edje/images/lock_screen/control_circle_icon_pause_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..3b0273207d51cb336312e5b654fc9bc03c1aba8e GIT binary patch literal 1227 zcmbVMTWHfz7|tdWtxQxl@dkzrWM0}dy<|;X-P)wps@+Og*c1e_lO|#=FSX(Fwe!DTFwUx>lfKCDn_Lwq0k9185jB_`; zkZp*);hRkrABxm1Lb*o+I*N%w3h%fSRpFz8M-amyzgLU~B3_0GgneAd%|%6y3xpX~ zC~?e$^+h87x=@|y4tP0+iTJ{GOjrneF&E?EST0<`#&iowx(rIXD%PFC3bSH)!2}Y5 zW(vaYQUxSBA%a#XG)SR^C2Lz%U4a>Et$jSjXhmSEy+DbYP$LWZ<<%MV-E2hgN4-&> z_g`@rvC9ACjKEp?C^8g)pjEP%gYeVlSZmaQ_7)oVdeth-N z5ehBaFWqbA-tK%cRDHkt!LGhnhx^ZezFT#4@q*FgBUhlb{p8tqr!TC#@a*aLJvD@* z>eBx5igkUB2OPDDzQ&5G+C*7}Bh`4Iyc$m@Z|K6Kfy2x1p|KHbm`{IgpR7-hp^0t7 zYto~KUY{ELBIk1-PV5-I)So%_{dx2FcT~V|e4=&J;W>A`3(lYHQhCBJg{?d@sfc_XH6+2Kzevf28o7O`cx@^1Hn;=@Ym0jKF1&Hhf-IkN0rbi!8q-Cb4c0SMM zT^aOPI|n?_Hqcr$26_$Aq_%A(Tgnm!umRG^vfbzSQaMFca3wqsw;778n4sPiRTb5d z*GL(9faK|T)L=P|6a<<}@PfeoM#fk!#<2JmqFh4a1u3?foP8+F=9yhmK~ZP9@G3?1 zAmmC669fSr#A)btGn^=jAx10~#THS&-$8mg>i8RK2nz5G&vKCk9Wq4JJ7Ec>D6F&^ zg6-z>bHI*2n<$(zrmVXRN3)D=hjCS`eN+HnWz1{s7yDhn6o3y)o`LV9YeUT$=kCWu zp&?cy?e#2tDSDp*jgk!g6 z2>WUkp!Glm{T}F&a+^Rlw_A=01Ak+9J=JIx;8{n2sd~^REBTeIdH7i&EAwhxO~k(! zch%SYnVd0L3=o&?`qTfXaaHcnFSq`&NOFHsNLcg^|JigZt0idu^2#j0ZEr6aNox9e;H~{q%3~ z=&z$APvM=?#hbe>jW2C-4h-9yhUpouT{|`U=2F@KD~CRuTZKUzsvL8m6%J{~v&reV zb=R9Fm5H&bh41|Fv8l7qZ?F$uO*}dO^8Nefy(|4?UxkGj-wF#c;{R=YNIa3(zqq}- QE=&TE%eE?iWey(y0^}8vz5oCK literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_play.png b/playview/res/edje/images/lock_screen/control_circle_icon_play.png new file mode 100755 index 0000000000000000000000000000000000000000..c80e1de2781c4db326ffa980a7f0b0fa103f1cc7 GIT binary patch literal 1684 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#mddu$l1lo z(bU+*&BE2#(9puk#M05g(#^%v(!$Bm%o%0|Hod0K&gPa*hUNwq#+HVLt|pc)CYBba zE(Vqs29{3F#&Er!dBr7(dC93TdozLdLiL*A)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(peNnRzMs<;9wy=z;jwCABECEH%ZgC_h&L9KKeWSnM}2b9FX#Gj=mE#^rB_ z-V}1eOdseNeNf^+N-QuTU+VM@tG6f54Nv)b7-IZ`R{Gp^LYh14SyB2 zu&}6VI7&7NO$mtc(wg3y?IiQJ6Rod={tlnbDFRZ`vZpxeSB(Hp5{(D)^!{*f% z^Dl6}kozT3+fk?bqCU-Rb}e`N;p2RJzOt@e;4kyUp|NUTThz4Dl80+ApY!?KaPQHw zEq{1ybGmXD`F>HYn!4cErq+FKuU}L)y*iznE~&9tonw{yx2kISza94!SL~bPJbz*S zhU|R7koa{sW{U-sU+@Jg^sTOCeWm(kL|jL z$RgY87Nj**MW|EbgxRc5hl70|IIO<9>d50l)|>9!byYq*JQ=I63SBl4eZrx;P;kF( z`ER)`x8Hi%&9~p-7k2T-c}9VfeV1Q;**>B9V8X|Pds=7h=V@3_&$d;^TWe~U%i=)R zo35YR`5G2{KI(HPc*fbZ;7KQ!G|AlHe^xKc;P`y@>8JayXPKT%+st)|>+Su0-Ty8# z)Udt!S?YG!!0z$WHJ_iF{ZiOcpMGWQWz+EEkC`uIS8V)mwexk3%{uw;b*3+Nwf^7Y x5CBXoiW-ibrv#=fU`gfhLg!ydc;3#y%pk%dwLE&p{Qyus;pyt=?rfPer1 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_play_dim.png b/playview/res/edje/images/lock_screen/control_circle_icon_play_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..1b5d6974c6f920a8faf4784dae8ffba07f233385 GIT binary patch literal 1459 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#mddu$l1lo z(bU+*&BE2#(9puk#M05g(#^%v(!$Bm%o%0|Hod0iE`|mc#vp8IXy|Ioy6KF3~uK`}YR?bDKi6!|(A^G_^uoMuGkzbNuoRMFk z;2dnGpb?&#my%yztO<%9h;Lm|i!#enQ{0O3a}~hhYn6$`egiXCXHz$0HxpxA{)XsH zAt%iAfsWA!B@U#-0uutJKoAq2^no0B=1I*1=9nU2)|lDrSIWS^_}J6MF{I+wn_H*7 zm<=V`9`>w=4qta5V%%R8azsO4*X|*bx zwd6g!{FOX4yEY%S*98 zy-Zswo-JJ*WIZAGW!o3d3;WX@t>*mx85pSD#q&acvxe-iXTO(~#741hxxw>ymhj72 zUu;+|9Ar3VvC#H{u zzvo87%l;epi^HtKkG1~NOm5ia+iiL!_RYgnLJN*wzA!sbvwyi^^S$S0KbESxUFfrG zx@9-L_TvqQw^o_`U-PO=8zLOe`+VQ>a?5pQPT4JMC$#V5(Fh6n{p+yY<(t>fa2rerz%9FKnxOvFuLLzLsqVelujn zujqa8d{tg^l-h+KAGlJytQKdd*nUyx`PVE73|)AbaxQ>{E{NsDz$y~Jq_N=Oli&tM Y2D30(q0PShe?Y~kr>mdKI;Vst0B36nWdHyG literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_play_press.png b/playview/res/edje/images/lock_screen/control_circle_icon_play_press.png new file mode 100755 index 0000000000000000000000000000000000000000..6dbc977cfa742a6eedbe6c25aef681b8e63e2434 GIT binary patch literal 1487 zcmeAS@N?(olHy`uVBq!ia0vp^At21b1|(&&1r7o!$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%xRe+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#mddu$l1lo z(bU+*&BE2#(9puk#M05g(#^%v(!$Bm%o%0|Hoc~fW=5{&<`xDP#+HVLt|k^{md0)d z<}M~?Zf@q5hE6cOo_WP3iFwJXFncqB_CocV0;Fg4oPxZtW+F?o9d0vemu$&cxzPJqx~NnBP9oprf)v_EXAwn~8IQ zGArjy-JRyGutN3KneJ7}!5J-#PL^~L*}=EpDdRZf4~ z{`8o|lU|uAC->K6$TaU`yV(1GN6nwt?ZRHOlIU+I*Z!C5c<-ox zrYEK#)nOl7?KI`I`8CCv33hCACpv#Rb@bp*krLaEdkbzCS5B~Fu{EgoU-#=nbh%>2 zvdg!&M&9!551TmI_)DxG%fc-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|v-k+X}F zqp7irn}w^fp`nG7iKU}~rJIYTrG=BBnKR4`Yb1bD*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I z6r6+26g0v!^HTE5i#0*f1M#g(YEfocYKmJ?ey##Ie62FE*bhu9F8KWo(VId}nCSx@ zqYp|PNQng|1WbV-COqi_Iq=Mrng`4=MZm1l&0}oFz`*#>)5S5Q;?|p68}phRB-lS# zAG-7E%2kUUrVj-rY8YyoKe27!^^vWX<>j><2VSLI7C*4e+kBT1=kAZcVvD6NZ@D*< zq3dt`Npa!N{6+Q;EjVJlP6qT?Dlo7pFfejBFfa);U}gT7ae8&m^7)x7A@fcJ*+)EU zJ$HS_@gTE{zc>A;-FRA0tozD@w}JZn=JDaXpIeDsUGPGA;kWYpp`ll;Cw*TTY^9X9 zKCSOU^Di40gD3JYlW&R~id4u5nD};qhV_DTU*=rM*s06J^JV3O$Y;%O%YHwxICu7H zjNR7-_i_Zjv{(dZZ^oSGS$dy_dbB)J4p7B4^XwhU=akv99~x|NoW$zhT3{*Cs7m`|rP> z?m20Of=|WV_Jk@uj}`$lf%=D~%u45rXSYuMVB^1PXM)vSJLyf;He26zw_DUWrB;3n z`mXRw&v?U`di#Z|isxJ2J9mdKI;Vst E01RsgKmY&$ literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png b/playview/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..3b185eba4c64bda3bec3de16b485948a851b777c GIT binary patch literal 1301 zcmbVMZD`zN9M3tOb7fk`#wbQwpaa7`@xVr zum9ig|DI|`wr$Jirp*LFY)Q9+9G(;Yw`n6D7xKg(czV=LcDr4u;Fc8|5^)XnKr(G8 zMVNz%Hq?I^wh+XIf}ZboyEA(v6&bYR%g~--VKhOsw0f4J_ClBJfkoYnQH$p|bGyh8%Y_&gzkHC3NKsx2Jx{JY6xL>I1t|wo zE4uJ5MwMLGk{G63F4N^OjqD=BiK6IpghD|q5p;%3SMh?T(_Ci&&{1vOa&=^qKBLlu z2HY5hEnRlOurirdV$)d(6b>2VDHg-gEMpkHUrW-Cn}h$Dv8J?>AF?2mgAN+7Rh*AP za~+Ihx4t4@5L+YdwRM~nr4Jx=z<{Qk1~CfX(3-AEDG-uDA|4Hcl#mQ_oREl!aaK$L zQ4|s!FV{KN!Y0^gDk+E|RtSq6my8Iq98N}gyp&mik0^wq!^$O@HAs0C%WRY?gPd>9>H#Jmtp7qnS>@9${J_xmxjSO-rzLLI%eq1VG zeZQBn+W(0egNGGW2MN}Q80O>t@iLpYVu0y$)+l39&7(rExcA6JhmX*L4`}_=5MLx&IRQW zD!c9b-9+Ht#{V2%eX#%CA7_9*b|Ku)cb=RI-f*h+M-5NEJ^uNLPGYR6aG&7EjFt z#!oJOa)5T;sysAua8`U}=Gfx#oAICD_+=WL-#79>_4VpCstmq(u2yLpt)+k4_1@sw z?;6ZDx6&zIY_MP2_tV|4HhlT}wWcR-Kk%z?vEk3ZW`B6x6TdmI4HU<2-krVg^gU-! l-I%!Z;{EG5_h##%z(xWbp5D2$eS69OQKgeva3*oM@;A?Gu>t@9 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_rewind_press.png b/playview/res/edje/images/lock_screen/control_circle_icon_rewind_press.png new file mode 100755 index 0000000000000000000000000000000000000000..185957cbeb6094e39a16567d183231a56e0aadcb GIT binary patch literal 1329 zcmbVMZA=?w9KR_dPVptqWP>bTuIg~Hy_dE}@1U}_*OO)*VyU5ty6t-RKre7F+&!g* zWXhb0qLY2#%ao9iExIh3;xG^sBJ*{zA&X)RnMOCa5uGBM86(M-5T65zi$OkkxqDv! zzu*7;`kR{`tK3|*8N;y3M5B;IbJYDR%F%c^g?eVj!zE_S&GOw<)Fcb|{=mG(3ve7kEUV11RGKz0+{`LYP?Q<mTT zFo7&xaY45vX^q%$Rs)4XMiyj?q#kqR(hf|5f6Q1{+DY|TfJ_3%%-IUcN1LYv zMzPyikt>L-;h(TIloYvBFqNDR444qY1iJC5n#zj;6BDA5pkEL}aX(Fmq5&>KaiYL+ zp(xG9N*wE9qX98i%LF1+$j{MqJP;B>LPVgcfEe`0gCU`WO&AW84F#0+YDn)YmfH}^ z$7~=&(@vRYXQ=|3vnDj1tZCt~78b8*)eP0lI}f|*S@Bi?w$=?)(KdB_IljEMj($`s z!p45DVAcNJ!5;>nIdOQRY6t)4(|-)* ze%b%mv!mYQ+Rm4c)*QfYs=)jHYhe0c8p-WAJCnYUU3l-*RQ{y?ibO&EyRVDsy@{#a zzx}v0GIZbZnaLBwv#s3r%IUYnTcd9r`J(2CI!zm8-YC_TXXh?PK3>ov$l8 zb6ZZ*_Y8MW(C4@R^!fFD#r&rWM@I){mcA^WYLZ^RSIBw}9NCuXue)^i$)SNWi_iCF zE}VIFZgB3i=Ifqs_^V^rW*djkS55Bkx&#(Su03@~!S+m$)3fJva!>c^;M4>6kIy@o z!7W`M-2PSg-Mc<^p1U|*N8qD$)qHg^GUlIM92l31dvhO=yZ`0$mK#Fwe#27PR%~&4 UaF>TA+%-H%c$OGLRzpw&2 z38H?;(h8`MJtZ5^j_83+q++`mO%R=36<0S(0Fi@W*mC03*ZYqs(lX=JKs3u_T?G`a z-U$!%PxNWVM9Gj$s_O*VS&=b;4UkS&>=DP8D{-pIE8}^vO;cpm1eM~{x>JR0j#Qur z$Y_KQ8w|^mq8MR?s3@}SB*(BE&EQ)Mvw|EIWv+wVxG1dVnL~13O>b!7Rh%j!=O$8V`IsK7To%S9G+$beBFgrg`SJSZ+&$6+kASD5Eqw1&+%KGGcn)O0PZyMYzA#mb5YbOb#O!jW19 z_55AH`DJ!W9@yH%lKcHk$`HxMMur8f#zldfZkE88x9*-mbo5LsQJI?lUb9 z*RFnOdp%byE-rM*+T`87#pP$p==H{_x`wvd?&(l#ZniGe+?w0b5YoD*>-OhnyBnHY zUt~)>Jh1ml>0HnBMCseLsQ2>hgQfP#dowo%wf8gMoBj!&rif7U&8fN{*2zmt$DTWH z=Egof&4%V@kNmvzak>64m8vwht&)9yb@VZ@durdU)hF{S!5<=%>Qiqg&tLonPzZ5? literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_stop_dim.png b/playview/res/edje/images/lock_screen/control_circle_icon_stop_dim.png new file mode 100755 index 0000000000000000000000000000000000000000..7322e32d35b930af6612d69449cba32e470f13ba GIT binary patch literal 1126 zcmbVLO-$2Z7_Pt+CnTC6i9d&?T#&f_tu1Rqg|1y;iJNmQVMj{)jWwhFO8d+(JxuAxF5Ey4!sSRo)Z2d)6J=vk|v3M^-1{XLi=h{1+itD}19 zu3|%vwh{~-djVz>#LR3QSau5_as{lqzDoUi^OhoAN2Qj;5?cy%&~z6zL$J76uGyO{ zTXv|~JLF8PU;zξTTBKT=|q>gpehC@K6j*?TB#Ep!@6)i8Uu@Jgkc2n7nmbUGcnlciy}%5btQ zCmKAT!H7(>;Ug=~_|ZgP!2ppRx&d;bPbP}i3Tz{l!k!+6;02}9k+2{25`|O7#8$v? zG|PBi5?2=;p(;3b<5YB1+Xw(t1rcnAHolL>M4yavcebGfh`mwng)Y7nYt4Xm+XFr- z8Y+cPXvcLFQ|EOfuZda1%oVa6m&*&X#>%E4%eg!!>3xmUxB{=`g`8-xxvb1_1wotE z1XJXA(-1|iV6c5|(T|Yj+n{gP#ddpK{Y>Z*d=To&U)hgPmcL;y6(({ViO9 z$@Hl7@#3g?fR8&S#I5me@AW!vt7k<+tHqywe%`-GkRwCd#JK-;Z+o!NxG_9(P;MVo zcDISi%FaM~?8U=@)YQ)0*1*-u&RlA2vT`n!uHj|srSaqAm)}3sOQ~Z}8gov963$lo k+vBJ6_3?k8raoL*CceMA@O>(a5ph^?1z!vHmJ|IdKTmxj)G1fr?7}nPP_aH|QXIi%2 zM9ta_*@O;lL^gEjco@cpCca z3@1ra#F0uRu|+c2a*+`x-C#auP(fh&wufx!k`be^2D>OvVNVAkI9{zbB6fpeqHxNX z(C`?JW*Ntc;_6!mr~!VvaiVpgZ+U=efB<%V6W>Q`J_h65oh}p^VsGS|zKt)%*ifO_ zb%2YiYM#O;v}Ieerlb_LTuSq*maXs{mn{oYiIp@}lCot^RAP>kutJ6{t65E9v%JJ{ z6`_kw|l6;N+O1cNs8NM%JN z7glZ8g1z8!bUlM;Rp8s3z|wr^kp2A1_6ho|SW(g%uL=CW;vQhF|H&DHonfNl_@h|j zEnI=obX59yF=`&*;*RlgYn0|bXt=HRt7=IPkG>v#JWG(%#ly!x?|yzdyZ7exj(7a* z$^P}OGf~_fKUY5}PR=dV$0ieV&v(WruN)M26ASf&@dVzyg&uy{Ea-bP-S7Q1HqwWf uU5fY{P{{mPJTH!pha55GQ0Mseov|q*bSGYPKjmIV&0no7tFOxU9{d8>3t7+r literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/album_frame.png b/playview/res/edje/images/mini_controller/album_frame.png new file mode 100755 index 0000000000000000000000000000000000000000..b70b5885e3f9639571ef2b5e0d3c424554c4a3b3 GIT binary patch literal 1106 zcmaJ=&rj4q7_ERPL_FvT<6%+~!Nl#a-7RcGg|h9+M!O-)MmEtzN;|L(v@^5=TZpK5 z^QIS1{0Al)&m81L;=zLl4`@udcq8b^ix;QeA4uZTw4Irk_ulu-eBZp7Dcu?9zt+z% z%s_EkFVoSFzl*)}zyILIA36*Yqe^DcBB@&eWHbjYKv49oC0K@*v$6USjx$U*>sG3y zYTi?94kS*qBZ z%XZFTCvJoBNTCKEBo>Ig6+cuWl}&sVI*(zV1qp>Lt862wsyPGlD1ac#rBk*bia?e* zF_V>L@fMH-QQ`&q$|*6UWMxGf1x=TBkTuLj;92 zgh75*1|xH>@1S~kGvS-2QuIS&`8F)-DoY(W*L9SFpk)m~OpB7Pi=vUyG$TD$(5DPp zlGCy#x3oI4*F5Nxmex7ZW;$x)R`4*5ti!-vhfX0t9!R#VxSewmJNh-XPUl>tj#{23 z!^egFr_e2kc27KQw=G??8z1_#+XLFx$MX;0(JQfE)U`_V_2~2a0R~*^)+P_0{+N7q zekApM^muFc(cRTAN9#sq>+#FMG2Atb4|__7dwn~5eb>jfuO>*>h0EKF#LuuVHHJk$TQF!6u#=3w2pKlkh$^ZHZow_jJR-|;Ok8YTVh)co_m Dhjm@5 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/bg_btn_player_01.png b/playview/res/edje/images/mini_controller/bg_btn_player_01.png new file mode 100755 index 0000000000000000000000000000000000000000..6ea99a0ee7c5c4f98f339bcbcc0b526f73a5381c GIT binary patch literal 2142 zcmaJ?X;f2Z8opr%2N(q`n|d31z@;PvNJ7FI5|$hcARt7bU`Q?yVsc{^2_VX%QHO#S zR1}e|C?G1Gq81#5u!wSG2#O#=i-0nKC?E=^w94FAvHda3J@?*kInVRF@AtmXIp4A1 zKtDqRO9KD^4C(%~5M&Hie|kE|KX2{)6=blG_%J1*aJ(d$C4vA72abb4I-ivQg+MG$ z%HB@M4FELJ+%Tqu$=FV2!+Z=&jlszHLWB(fZk{qBi_L>1U>uad6}Y2k|J95Jxg2+N z1fJo*5K^H;u79cs3QY|RW2f@iBo5ls19X#-5dl6VVSzIK9)XxFb4P#FB_nh7HWm$j zgh+Vq=s%KTGJ-)WEP_Bh#>t-TfWv_V0tV-dClGL7gN_b3N2~+#66|r#WITcFNCZDU zXe6456HgAI`F@IptlZIw5{ZzE#U>{wW0IXPuqXkGBaujI4M#_N1Ys{u5lC1vdx6+y zMS%v1*&?n`!i5E(T9Fk8OC|1TB-1~Rz!!d&6^K8T2`Ly>#u8$27zg!{R)7q~|A+GV zpV4AT2=r&Z|5I2TmLi0(A&?lBir7fw;%(HSgk-7+Vo6|87!2=OsbX*cf`y9lv$`+zQV9QdQ~g#kE|ct*^cHrw~2Vi+4}(JtZagyGlqCU1xX2&M%B!b4pmOOPf7= zdvTbTw6wHTnU!i@ViY8=QUtXHDUP>ZpUa-(H~6J%dl)Zkmu3u&JRJ=e~c-!U&q z%o)MY^z!nw6^|D%s-m#tF@3xP-{%8Ic;a8aSMvL8W8M@-%16g%H18&QItJvI$6i}* zV&+-i^OyS%qlH>J4Lcj+nkXzI-Vb6AE6Vd%zPQVoZ%O6 zQ)*Fi@!6yoe$FKOU9<1D9504!?X8}HUwXZvv08nnmj}GZOz!983>+fC;(DfGG&DCq zY!Yr(n`tv@WVrr}{6$4xNa}o_VtsZ*F#F_=Zp$+dn&67PTdViIS~DB}SP`E+k#^>B zajpJO=2lOWIt8uKz7H-C*M{zWZ98xN^K_r$R~_sL->ps-dOfDwvjKwDaYfSNl9z9c z(#qHl|AS7qvr%^uJws`(o4~M9bau4tDsWu4+d%0|V`wp9>tg(Az|TTA!95OWt0Azd z4MHke<1)@@2Cd-9TXwl?4X~|?rP)B8rEY@MWJLSf$YrtC0L!|#kCO2U5#wvg+Fe|x zH)~!hwk9QfUHsOCx4RI}w)<{ZA<^z(lAFeK8F5{C6JcZKg5g1#$+UFv%sgWhj2ug9^&PJt=c=|7HDHQpczuYjT3a-CwbCB93Ai;G6TI}}V< zOnmbUPqV5Y9k0zSX)=oAb_Y3P;gA=)=sg8fkNt(*T1grTBv+!Rz z7fg>1eldjYs{E$3%6vFnmR9aLS3s1XGmaWf2-TU5m{Lla4qud)+Aq7IdR;GUnH;Rnux6fuQpGukY)R!k)9@yf~TT|3H>GFG4URb{E=_wzT z64Y&c-W}(1r17GWo!&6ZzPF}K_vXds>3-Kor?nJA70}c^lFL6#%eHsS)r7^$jsH^_ zqci(AasFmU=DbGyr0kzX9XER0T5}9QX^5tA*L<%9TX;S-_sv2Pwbqn-!XhZzu&zKw zyYZwMXE=YiqMo~>=H#&ki#sfjDSSv{SJP$aoYXBg|8V8FzqV2^2B|hoDc?p#jm@%q z3f|m^Rs04iw1Tf|SXYzNAHIw6b=cWDyKXlsuk(H3+WniPPPrzEJ^0BDKc|`L5IqP< zPdf|OJD||9NA@x{x$4OSUJpM1unl*hz+fi%Lr?|^coDq`(6ljOt8aX|Pay58_wKC! E0#mtnCIA2c literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/bg_btn_player_01_ef.png b/playview/res/edje/images/mini_controller/bg_btn_player_01_ef.png new file mode 100755 index 0000000000000000000000000000000000000000..ed1fc1d7177d0d30d54ba9eccd82582d0374322a GIT binary patch literal 3338 zcmaJ^dmvP4A3lh3$tCGRGR6p7%#6!maw&5$(ugsr4b7MtYcLlxhZzx;GOoF_X(SYr zW6*1(_T+WLc3KzzGNKq0&tMDuKoQN0!b1dz+*i1{YGfaHJVxxuowvBJux2S*(B1 ze2~QWH{bs$%qK^38E_JV&k5(zqz4yhupEku#_$+aki#Q$IHBKn(LIO*a`-_UE(GI= zf*AWS*>sM8Z}JUKB%)o|e2~hfF*8Dpc%b|s{7;Nx6m;Ntz=MTBdR$y_Zk+BROGlD_K^EfQXx02D!ALnBI zL%qMb^dIM9^FuCNnhbpTVE^l&zb{GMvpoFAw$jNz#%HjlZs$pDjXzi80|1IKF4&!9 zVgE#aI)CkljkjX2M8PlLHT<<%+eubmQQZR*hSo||NQ$2f%18HDZ!D3-hyPib&#aGi za?QW=l(ZjrrY_joRCoK6vK>ywySB45&RAxy!1!Bo4vRnj`8J}V^W)ond!2ZFnTP*) zIhVU&-g5Qs;IozDFJet@O zl5o;n)4e{YZAW#Fp8LwE#LpN-H&OOj#3x_XzBlCG=%Q^5G(ECrn=5X%<487a&|)Oo zUSjRC=yKc!S0M{#p|T4`)UD#Y%9>)LZBBdVFG*(Ty{+zCQZK-Xr|om=S8DJy@q#h6 zWc+9cb@Z>L&PHWBdIKX(A2z%eN$e8mel1C*4JO=xe=WaOPeq5cznbCf%Nz;gWEzIS z+nVzZuwnL?epl_Zz_)0lNrY!6XBih@-f7)w+iRB#U9&{b8<&a#_X#g zIh(@SO|N$v>|QF17#h1=;+Sk){n(YS7iRLlfjGS6)2%5P4FcxXnR?F;TCVh(>~${F zi8U;Gcqe7%l1a*E$=WY!Q?Ns#*%P_4W3Z*e7^iM@N-KH%&<95-}TI2L;2BTl7n>F&DEryveDMYk3{9eN!IVCCLz zKA+?e89}kB{vez*GQz3!mld7T@^9d)9ho&pR~S|r_?>c#Yb@Np`wkA%^~7R&-kGS& zf+kkNtPQqq?OU|7Mg*OmqKQ3K5rv?Nso9Zen{O%Ig-m?Gh;!T^CVQg z%31IyEs?T}ri*EQ@n zu_$qx_gK?J{kd~!`i|!MpUZHYp5BR{7@=n@uJEZ|E%9MX6apX=H6} z_e4=?JF}8yvCkt^t+Y90vh`c7u)yh!*AirE#pO|y)$*`U8727(J2IqA&UMVOp(3 zF7M|YVFj#6JtyuG19y?#PVH)X_Pw*0(#=9CGFzZ_N?s1@cKjwlymNf|^g{U&g=4yb z?7%q2AAV7VNqTizem=@-@v8+hckpr>%1)MD@ab#BTWjXM&jM=FWcfNp<*`pypCj+J zkLm|T$V2b}hse0CZm2q|fl|D6wTuBfxi@`5$QRlX^ep;;44TCjdd#wKsDvO22tB@|0>uR{;P)m8=qNGwKVf$nBjZybLe` z5_7n=TDF5yLEn_@jt*}?#S{h_zn9fXx3Z`yTiNQ~;+7-9p|n#?t6*B(8Uaeh>(kOfsE8L3HPza!rql0O@8QR}J7Zp3 zn|<~6Yf9CFRfI;Hc;iaMd>;{7M5l=2$HeO4i~IZ;_DUGz>oyw!yf=xrbq zAV-xOd=MS>q5BUJ%ePk>xuEnkPUH1p7Z40>7I;$x4e6ouuRhP(I|lFV66zWP~Lo*sewQWY@+kwcUHBhB~Usj8_+xHtOmg|-WUu#6dlwVP6!4|(8Ito?`E1Oe6QYK4KQ7qW+` z{K2Sf^#%D{e#EVi!u&Q8Ho5ip`?pU`P7fI@ zq!cL3b?BdY_$win!?=YG9(Fu$_|uuAv&y#oLyEOpo1+slrnMZ76>OTa@CKl{`Z*tZ z^{sAK&UDX3`l?1=YIEJiHJMKDDSTAZ`C<$26ro?!SFWauUQqIebD;TAZC@Q8RUAYXE!gy%a$wS#W>TVY$r{Ln_h#_+nNHo1DcwJ!%WAG#Qv_X?o6D9Ax|@s5zu%SP#~>(IJ>j(Pp=DWhXw9++Mq7{d7J!h%Yt#-44Se0|#HeorlU z)q)3s^y-^~D$j3!B;sW8pEF;%@W=8TRLlAcQpRttFRByN9Qkx<|K+GeJJEhZ)t=Gq z=YEnOb4nCCs#fcBY)b8Yq+S>d0(_ca0{cXXq#W~pY{0>6i+G%kmeHOw?at_UJaJWI zb7DNtLPph7^O4~IVL15SOVoQpPq}CK(bt58wBah>Ung^u-j05W?gVWjEl6!IycGrW;?jeeA*BeJ%7>tbYvp`o zaGaUS%EzNJv8UgVrYLYy_t`}|xADSH&Fo(;VsbQ1V6~tV+6{2(K-NlMSgd5Wva#A*CTyGt( zUWlG-$0%n48kgsy7B0zA9)?$F_~<3SJG06WO2bcll~n Hl=%MuzPGKQ literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/bg_btn_player_02.png b/playview/res/edje/images/mini_controller/bg_btn_player_02.png new file mode 100755 index 0000000000000000000000000000000000000000..dee1d36fbe2465182c5e0c53d77e5d851f060b10 GIT binary patch literal 1961 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 n1Ty;o!(j&IGxpD-8yFd^ch9)bP0l+XkKhT*<- literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/icon_player_pause.png b/playview/res/edje/images/mini_controller/icon_player_pause.png new file mode 100755 index 0000000000000000000000000000000000000000..4b1875925102910cc695acc99073b7faa25e5554 GIT binary patch literal 1057 zcmaJ=J#5oJ6uyQ+qew*svA}>%?ouS;zr?O$YWib4G!m|&G*Z1F)v>RQY3(!imAD0| zEfYwHjR}NcV}S{=fP@eeBLfQpHZ}wj3+jNxIgL|>2J8Ip?&lvL+6T>2lc!hNA2!UA_w-BuP_9|*1+ugkO9!&vogz=gd zvCPYggMHRcF>K<8lnubtbQ0Rm8X~ZTR=q%Fe!hCcK+jc~CCTK?P(y8Rek($YTMJER zYt5;+%=AS#l_*reN5qDSzaGR&qB31wg|1UK$G|Rxtf|a?QkGeV8jcW@*izBq1p&%3 zE0iT!7S2PF7etPyLoNzsMUoY9681iZMvL4PrJ+}QvFJ`^+JuA($8|a#wo_tpw8{yU zN+s10#Ue!%TTo-SeN-cg|!BB2^Vu#x1m%W?Yzl+S-hm*UH z_`?vVW>Q?&UbUH~mpv7kSnTfX%dJSsZL literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/icon_player_play.png b/playview/res/edje/images/mini_controller/icon_player_play.png new file mode 100755 index 0000000000000000000000000000000000000000..5862a77778b9d42e6bc2ed95aab72b48a73093f5 GIT binary patch literal 1339 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$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`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDi`VCiaL>1<(YXyoE%Xy|I<0)N=Y;0_7 zX71<&)9aF-T$-DjR|3v4~Pj*wm=R%;iu*SQ+p9GSs%aFmd?PyxZcynF{I+w zn>!n|TLWc|ef)hYVaHD6nP=2a7NmD4Z9ch3M`uN}QkM|77n@}2#GqGc8*iw1da!Xf zw;og}ueMb`ZvSC-(Yeasc31p?*sk6n#eyAoEJRzpUwA4zn-7ysjm(?lgxuNn3#b9#+btJ@9aKS Z35KwZb`3iOvI{}QnWw9t%Q~loCIFwi*Qfvh literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/icon_player_prev.png b/playview/res/edje/images/mini_controller/icon_player_prev.png new file mode 100755 index 0000000000000000000000000000000000000000..1f0165b8e2af24674fe432ec6edebf4425374645 GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1|$ph9<=}|$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%u1Od5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|81#=KlDb#X~hD#E>34K5C;EJ)Q4 zN-fSWElLJPT$(b-ssbzLqSVBa{GyQj{2W*)24v)yG;}qwFf=rFb#pa#wJ>pY zHZeAY>2=9ZF3nBND}m`vLFjeDsTY(KatnYqyQCInmZhe+73JqDfW2&$iQ6p}IL(9V zO~LIJOPqT3fsWA!MJ!T8!-RmT2gHOYTObFX@Kf`Esl5o8tY6>15Xiv5nCa=_7*cWT z%?-yaCPR^9AA7Vn%DJq3uxh#BsU08fnpn#(U2?iOS!6p`oJ&lfzJTHiL&wV&$No3x ze@{6!|9!7Rd7}+Ee5QGL2yMeKdiEYN~)e|2`OcjmasVTD5U+}N^P-}85_^T@+1y-ToMv+S|Ek#Y`<+V5 zF!!ZRnRhBnca=uYt@c0DovhmD{oPl^`To!6Oq-|eVXH|KwNSlzz{S2kLFn+3eLwP) zzORf)xTj*@SR237-eunIeo4<`la{5sdVSWvcIvNGa{a`8Pp*HI2(Xy9a2}Iec(jqJ zdC{rM%hjLTiuPPG_%E|N##Z^H-h%a0a+rVR`OS^9zOh>L@mCiy;bM>IPqH_@|9m0* wc>*hs!2t$lIN{8QU;|kq1_$m0R5P+MeDt5rY;I9{4O9?$y85}Sb4q9e0JBoHVgLXD literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/music_btn_player_next_nor.png b/playview/res/edje/images/mini_controller/music_btn_player_next_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..f911d3abcb3c617c2597f35a2f3c82e092dec0f8 GIT binary patch literal 1411 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1|*M957Y)yk|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||GldHM0 zsiC8ji;Js?p`nw3i<6tFiJ^=Gku_A z^g)RODY3wWfGH5fgeQF<2cCIS^ME;~2$(e%zgoSEfq`+er;B4q#jQ6p?Y$2>NVE%2 z%t}`;S7(o%8)J3VcYj;`0oQ_8i>@5Jdi3By{)D@8LJ9=JU9C#X3rkjtJbM2kRWsaT zqgwgN&&};l3QH5p+cQ;Q-`B8Rhtqr@SBHiH&HDEANtn5)>M@_FLF z_uC?7@A#(n?%(f&nM>}gwl8|PV_Sr3V(xFJ?T^;;&n>HuQce81szR{+o4Hk@Yu>L) z&fJdlLe*)>x4FAw64$ZUcCND!zdvQkeeYR3M<%{dJmViRuewm-*PFz;%+Bya#c4MV z*G>1oC^$XI#q-zkDbMFsEK&KpNlWfXZ^Xk7Z|CQJ)bqP>IPHhsnhghTm2uxvn(<;WtjmwOfTn1#tS#c=_VH?K07=`ktF7 zzQ2*_YX2a2(HGG)wRPzyD;`<(EL^YYJtLEQ-O-IdI#vqm1kIRv^ZcvTfx1%HbuaoH zOP1Q_J*~hc%OdOp)7*X5X=d9j3*WBHQa!naDUk&fWQPRYKtToyKV>kt&7cXwU7cRX aBEb;+t9VUSR97UZSoC!Db6Mw<&;$T3g!zO3 literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png b/playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..392da396500123f14053cfad1012d00bb2849b01 GIT binary patch literal 2122 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 Qxy=5wumeJvIyx`&Kbe%r)&Kwi literal 0 HcmV?d00001 diff --git a/playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png b/playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..cab6d1a18dec76b2e321fdb6818f7774577dc9e9 GIT binary patch literal 1374 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1|*M957Y)yk|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||GldHM0 zsiC8ji;Js?p`nw3i<6tFiJ^>E%v~K_ zolTwHoQ+(ajErG=J@bl767!N%VfJPM?S<$ycEhXJ%DE^tu_V7JBtJg~mI4AY@=NlI zGx7@*oP*62G{Q6UQu51-H9^q>@vTd0QD#|cid#{Bt^zoGtunFLPuSlOy(#2`nLf}l z`k=&tlvrRwz!V5#!jnFb1J69EdB7Y~1k4%-%Zi#97#RCJT^vIyZoRo}=*8?ParC3l zhK-v$a(CU}-sa>nRoP>e!#RbD77ne9+@LD{&Pi?_k2!O6w`?n@We)bZk{UMcr1{PN z&FquZK0bf*WOi(cYv2}-np*-4Y!V3#jBX6fJO&3Clp7dPxF-*YWo^9X+LxervH0Zv zdq*}Nx|FuUZuRMq{2h}uL;Ux0Cal>o>CH;<#86)IkBmi;iU0Vm!m z)~XZB;^(caT7ED3;HF)N%B}`~)%la7HSNG3pE99uE7x63&1XFmUlg7-|KL^|*{@-> zrx;Hky7Yg#BJ*|t7O?F-UZNpTn0QXni z+G}pfUjHxG8xwqRpZvb%4|hCa=>D&ood4dSz4ga(Z}(R&wYk3{1f}iE&Rk{w8uT~e z@_M`dYwcMQ`MW#Vt;6pJ-F^GOaot7RHxH*@mn*iZvHsUuX}w>S5f~awpl|_(1`9A; g(730~&yeSQBu3smBHy85}Sb4q9e0Mm`(h5!Hn literal 0 HcmV?d00001 diff --git a/playview/res/edje/pv-lockscreenmini.edc b/playview/res/edje/pv-lockscreenmini.edc new file mode 100644 index 0000000..fa2c58f --- /dev/null +++ b/playview/res/edje/pv-lockscreenmini.edc @@ -0,0 +1,840 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + +//#include "mp-defines.h" + +#define LOCKSCREEN_MINI_W 300 +#define LOCKSCREEN_MINI_H 93 +#define LOCKSCREEN_TOP_PADDING 19.2 +#define LOCKSCREEN_LEFT_PADDING 24 +#define LOCKSCREEN_RIGHT_PADDING 22.5 +#define LOCKSCREEN_BOTTOM_PADDING 36.8 +#define ALBUM_ART_SIZE 120 120 + +#define LOCKSCREEN_BUTTON_SIZE_MIN_MAX 99 105 +#define LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX 126 134 + +#define MC_LOCKSCREEN_BG 30 28 28 0 + +#define MC_LOCKSCREEN_PREVIOUS "lock_screen/control_circle_icon_rewind.png" +#define MC_LOCKSCREEN_PREVIOUS_PRESS "lock_screen/control_circle_icon_rewind_press.png" +#define MC_LOCKSCREEN_NEXT "lock_screen/control_circle_icon_ff.png" +#define MC_LOCKSCREEN_NEXT_PRESS "lock_screen/control_circle_icon_ff_press.png" + +#define MC_LOCKSCREEN_PLAY "lock_screen/control_circle_icon_play.png" +#define MC_LOCKSCREEN_PAUSE "lock_screen/control_circle_icon_pause.png" +#define MC_LOCKSCREEN_PLAY_PRESS "lock_screen/control_circle_icon_play_press.png" +#define MC_LOCKSCREEN_PAUSE_PRESS "lock_screen/control_circle_icon_pause_press.png" + +#define MC_MUSIC_ALBUM_FRAME "lock_screen/album_frame.png" + + +#define LOCKSCREEN_INTERVAL 34.5 +#define MC_LOCKSCREEN_FOCUSED_COVER(__name, __over_part_bg) \ +part { \ + name: __name"_focus"; \ + type: SWALLOW; \ + mouse_events: 1; \ + scale: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible:1; \ + rel1 { \ + relative: 0 0; \ + to: __over_part_bg; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __over_part_bg; \ + } \ + } \ +} + +#define MC_LOCKSCREEN_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \ +part { name: __name; \ + type: SPACER; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + rel1 { relative: 1.0 0.5; to: __left_part; } \ + rel2 { relative: 1.0 0.5; to: __left_part; } \ + min: __width __height; \ + fixed: 1 1; \ + align: 0.0 0.5; \ + } \ +} +/* +#define MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND \ +program { name: "play_sound"; \ + action: RUN_PLUGIN "touch_sound_plugin"; \ +} +*/ +#define MC_LOCKSCREEN_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \ +part { name: __name"_clip"; \ + type: RECT; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + rel1.to: __name"_bg"; \ + rel2.to: __name"_bg"; \ + color: 255 255 255 255; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part { name: __name"_bg"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + clip_to: __name"_clip"; \ + description { state: "default" 0.0; \ + rel1 { relative: 0.5 0.5; to: __to; } \ + rel2 { relative: 0.5 0.5; to: __to; }\ + min: __btn_min_max; \ + max: __btn_min_max; \ + image.normal: __normal; \ + fixed: 1 1; \ + align: 0.5 0.5; \ + } \ + description { state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + } \ +} \ +part { name: __name; \ + type: RECT; \ + scale: 1; \ + mouse_events: 1; \ + clip_to: __name"_clip"; \ + description { state: "default" 0.0; \ + rel1.to: __name"_bg"; \ + rel2.to: __name"_bg"; \ + color: 0 0 0 0; \ + } \ +} + +#define MC_LOCKSCREEN_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \ +part { \ + name: __name"_spacer"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: __to; } \ + rel2 { relative: 1 1; to: __to; } \ + } \ +} \ +part { \ + name: __name"_bg"; \ + mouse_events: 0; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + visible: 0; \ + rel1 { \ + relative: 0.5 0.5; \ + to: __name"_spacer"; \ + } \ + rel2 { \ + relative: 0.5 0.5; \ + to: __name"_spacer"; \ + } \ + min: __min_max; \ + max: __min_max; \ + fixed: 1 1; \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part{ \ + name : __name"_press_bg"; \ + type: RECT; \ + mouse_events:0; \ + scale : 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible:1; \ + color: 0 0 0 0; \ + rel1 { \ + relative: 0 0; \ + to: __name"_bg"; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __name"_bg"; \ + } \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part { \ + name: __name; \ + type: IMAGE; \ + mouse_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible:1; \ + image { normal: __normal; } \ + rel1 { \ + relative: 0 0; \ + to: __name"_bg"; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __name"_bg"; \ + } \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + image { normal: __pressed; } \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} + +#define MC_LOCKSCREEN_PAUSE_PART_BUTTON(__name, __to, __normal, __pressed, __min_max) \ +part { \ + name: __name"_spacer"; \ + type: SPACER; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1 { relative: 0 0; to: __to; } \ + rel2 { relative: 1 1; to: __to; } \ + } \ +} \ +part { \ + name: __name"_bg"; \ + mouse_events: 0; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + visible: 0; \ + rel1 { \ + relative: 0.5 0.5; \ + to: __name"_spacer"; \ + } \ + rel2 { \ + relative: 0.5 0.5; \ + to: __name"_spacer"; \ + } \ + min: __min_max; \ + max: __min_max; \ + fixed: 1 1; \ + color: 0 0 0 0; \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part{ \ + name : __name"_press_bg"; \ + type: RECT; \ + mouse_events:0; \ + scale : 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + color: 0 0 0 0; \ + visible:1; \ + rel1 { \ + relative: 0 0; \ + to: __name"_bg"; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __name"_bg"; \ + } \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part { \ + name: __name; \ + type: IMAGE; \ + mouse_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible:1; \ + image { normal: __normal; } \ + rel1 { \ + relative: 0 0; \ + to: __name"_bg"; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __name"_bg"; \ + } \ + } \ + description { \ + state: "press" 0.0; \ + inherit: "default" 0.0; \ + image { normal: __pressed; } \ + } \ + description { state: "invisible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} + +#define MC_LOCKSCREEN_PART_TEXT_BTN(__name, __to, __text_part_name) \ +part { name: __name"_clip"; \ + type: RECT; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + rel1.to: __to; \ + rel2.to: __to; \ + color: 255 255 255 255; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ +} \ +part { name: __name"_bg"; \ + type: SPACER; \ + scale: 1; \ + mouse_events: 0; \ + clip_to: __name"_clip"; \ + description { state: "default" 0.0; \ + rel1.to: __to; \ + rel2.to: __to; \ + } \ + description { state: "pressed" 0.0; \ + inherit: "default" 0.0; \ + } \ +} \ +part { name: __text_part_name; \ + type: TEXT; \ + scale: 1; \ + mouse_events: 0; \ + clip_to: __name"_clip"; \ + description { state: "default" 0.0; \ + rel1.to: __name"_bg"; \ + rel2.to: __name"_bg"; \ + text { \ + font: "Tizen:style=Medium"; \ + text_class: "tizen"; \ + size: 28; \ + align: 0.5 0.5; \ + } \ + color: 149 149 149 255; \ + } \ +} \ +part { name: __name; \ + type: RECT; \ + scale: 1; \ + mouse_events: 1; \ + clip_to: __name"_clip"; \ + description { state: "default" 0.0; \ + rel1.to: __to; \ + rel2.to: __to; \ + color: 0 0 0 0; \ + } \ +} + +#define MC_LOCKSCREEN_PART_RECT(__name, __to, __sx, __sy, __ex, __ey) \ +part { \ + name: __name; \ + mouse_events: 1; \ + repeat_events: 1; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible: 1; \ + rel1 { \ + relative: __sx __sy; \ + to: __to; \ + } \ + rel2 { \ + relative: __ex __ey; \ + to: __to; \ + } \ + color: 0 0 0 0; \ + }\ + description { \ + state: "hide" 0.0; \ + visible: 0; \ + }\ +} + +#define MC_LOCKSCREEN_PART_SWALLOW(__name, __to, __sx, __sy, __ex, __ey) \ +part { \ + name: __name; \ + mouse_events: 1; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + fixed: 1 1; \ + visible: 1; \ + fixed:1 1;\ + rel1 { \ + relative: __sx __sy; \ + to: __to; \ + } \ + rel2 { \ + relative: __ex __ey; \ + to: __to; \ + } \ + color: 0 0 0 0; \ + } \ +} + +#define MC_LOCKSCREEN_PROGRAM_BTN_ACTION(__btn, __down_emission, __down_src, __up_emission, __up_src, __clicked_emission, __clicked_src) \ +program { \ + source: __btn; \ + signal: "mouse,down,1"; \ + script { \ + set_state(PART:__btn"_bg", "pressed", 0.0); \ + emit(__down_emission, __down_src); \ + } \ + transition: ACCELERATE 0.02;\ +} \ +program { \ + signal: "mouse,up,1"; \ + source: __btn; \ + script { \ + set_state(PART:__btn"_bg", "default", 0.0); \ + emit(__up_emission, __up_src); \ + } \ +} \ +program { \ + signal: "mouse,clicked,1"; \ + source: __btn; \ + action: SIGNAL_EMIT __clicked_emission __clicked_src; \ +} + +#define MC_LOCKSCREEN_BUTTON_PROGRAM(__name) \ +program { \ + name: __name"_down"; \ + source: __name; \ + signal: "mouse,down,1"; \ + action: STATE_SET "press" 0.0; \ + target: __name"_bg"; \ + target: __name"_press_bg"; \ + target: __name; \ + transition: ACCELERATE 0.02;\ +} \ +program { \ + name: __name"_up"; \ + source: __name; \ + signal: "mouse,up,1"; \ + action: STATE_SET "default" 0.0; \ + target: __name"_bg"; \ + target: __name"_press_bg"; \ + target: __name; \ + transition: DECELERATE 0.02;\ +} \ +program { \ + name: __name"_unpressed"; \ + source: __name; \ + signal: "signal.button.unpressed"; \ + action: STATE_SET "default" 0.0; \ + target: __name"_bg"; \ + target: __name"_press_bg"; \ + target: __name; \ + transition: DECELERATE 0.02;\ +} \ +program { \ + name: __name"_clicked"; \ + source: __name; \ + signal: "mouse,clicked,1"; \ + action: SIGNAL_EMIT __name"_clicked" 0.0; \ +} + +#define MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM(__name) \ +program { \ + name: __name"_visible" ; \ + signal: __name"_visible"; \ + source: __name; \ + action: STATE_SET "default" 0.0; \ + target: __name"_bg"; \ + target: __name"_press_bg"; \ + target: __name; \ +} \ +program { \ + name: __name"_invisible" ; \ + signal: __name"_invisible"; \ + source: __name; \ + action: STATE_SET "invisible" 0.0; \ + target: __name"_bg"; \ + target: __name"_press_bg"; \ + target: __name; \ +} + +#define MC_LOCKSCREEN_PROGRAM_BTN_VISIBLE(__btn, __show_signal, __hide_signal) \ +program { \ + signal: __show_signal; \ + source: "*"; \ + action: STATE_SET "default" 0.0; \ + target: __btn"_clip"; \ +} \ +program { \ + signal: __hide_signal; \ + source: "*"; \ + action: STATE_SET "hide" 0.0; \ + target: __btn"_clip"; \ +} + +#define MC_LOCKSCREEN_MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \ +part { \ + name: __name; \ + mouse_events: 1; \ + type: SWALLOW; \ + scale: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + visible: 0; \ + rel1 { \ + relative: 0 0; \ + to: __to; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __to; \ + } \ + color: 0 0 0 0; \ + } \ + description { \ + state: "visible" 0.0; \ + inherit: "default"; \ + visible: 1; \ + } \ +} + +#define MC_LOCKSCREEN_MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \ +program { \ + name: __name"_visible" ; \ + signal: __name"_visible"; \ + source: __name; \ + action: STATE_SET "visible" 0.0; \ + target: __name; \ +} \ +program { \ + name: __name"_invisible" ; \ + signal: __name"_invisible"; \ + source: __name; \ + action: STATE_SET "default" 0.0; \ + target: __name; \ +} + +externals { + external: "elm"; + external: "feedback"; +} + +collections { +base_scale: 2.4; +/* +sounds { + sample { + name: "button-pressed" AS_IS; + source: MP_BUTTON_PRESSED_NAME; + } +} +plugins { + plugin { + name: "touch_sound_plugin"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; + } +} +*/ +group { + name: "video-lockscreenmini"; + images { + image: MC_LOCKSCREEN_PREVIOUS COMP; + image: MC_LOCKSCREEN_PREVIOUS_PRESS COMP; + image: MC_LOCKSCREEN_NEXT COMP; + image: MC_LOCKSCREEN_NEXT_PRESS COMP; + image: MC_LOCKSCREEN_PLAY COMP; + image: MC_LOCKSCREEN_PAUSE COMP; + image: MC_LOCKSCREEN_PLAY_PRESS COMP; + image: MC_LOCKSCREEN_PAUSE_PRESS COMP; + image: MC_MUSIC_ALBUM_FRAME COMP; + } + parts { + part{ name: "bg"; + type : RECT; + scale : 1; + mouse_events: 0; + description { + state: "default" 0.0; + min : 0 LOCKSCREEN_MINI_H; + fixed: 1 1; + rel1{ relative : 0 0;} + rel2{ relative : 1 1;} + color : MC_LOCKSCREEN_BG; + } + } + + part { name: "padding.top"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0 0; to: "bg"; } + rel2 { relative: 1 0; to: "bg"; } + min: 0 LOCKSCREEN_TOP_PADDING; + fixed: 0 1; + align: 0 0; + } + } + + part { name: "padding.left"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0 0; to: "bg"; } + rel2 { relative: 0 1; to: "bg"; } + min: LOCKSCREEN_LEFT_PADDING 0; + fixed: 1 0; + align: 0 0; + } + } + + part { name: "padding.right"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 1 0; to: "bg"; } + rel2 { relative: 1 1; to: "bg"; } + min: LOCKSCREEN_RIGHT_PADDING 0; + fixed: 1 0; + align: 1 0; + } + } + + part { name: "padding.bottom"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0 1; to: "bg"; } + rel2 { relative: 1 1; to: "bg"; } + min: 0 LOCKSCREEN_BOTTOM_PADDING; + fixed: 0 1; + align: 0 1; + } + } + part { name: "padding_for_albumart.top"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "bg"; } + rel2 { relative: 1 0; to: "bg"; } + min: 0 25; + fixed: 0 1; + align: 0.0 0.0; + } + } + + part { name: "padding_for_albumart.bottom"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 0 1; to: "bg"; } + rel2 { relative: 1 1; to: "bg"; } + min: 0 15; + fixed: 0 1; + align: 0 1; + } + } + part { name: "albumarmt_bg"; + type: RECT; + 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"; } + min: ALBUM_ART_SIZE; + max: ALBUM_ART_SIZE; + fixed: 1 1; + align: 0.0 0.5; + } + } + part { name: "albumart_image"; + type: SWALLOW; + scale: 1; + mouse_events: 1; + clip_to: "albumarmt_bg"; + description { state: "default" 0.0; + rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; } + rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; } + min: ALBUM_ART_SIZE; + max: ALBUM_ART_SIZE; + fixed: 1 1; + align: 0.5 0.5; + } + } + + part { name: "albumarmt_frame"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "albumarmt_bg";} + rel2 { relative: 1.0 1.0; to: "albumarmt_bg";} + min: ALBUM_ART_SIZE; + image.normal: MC_MUSIC_ALBUM_FRAME; + color_class:"AO009"; + } + } + part { name: "elm.text"; + type: SWALLOW; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "padding.top";} + rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; offset: 0 57;} + fixed: 1 1; + } + } + + part { name: "control_area"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 1.0 1.0; to_x: "padding.left"; to_y: "elm.text"; } + rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; } + min: 0 134.4; + fixed: 0 1; + align: 0.5 0.5; + } + } + + part { name: "rew_btn_area"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";} + rel2 { relative: 0.27 0.45; to_x: "control_area"; to_y: "control_area";} + min: 99 134; + fixed: 1 1; + align: 0.5 0.5; + } + } + + part { name: "left_area"; + type: SPACER; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "rew_btn_area"; } + rel2 { relative: 1.0 1.0; to: "rew_btn_area"; } + min: LOCKSCREEN_BUTTON_SIZE_MIN_MAX; + fixed: 1 1; + align: 0.5 0.5; + } + } + + MC_LOCKSCREEN_PART_BUTTON("rew_btn", "left_area", MC_LOCKSCREEN_PREVIOUS, MC_LOCKSCREEN_PREVIOUS_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX) + MC_LOCKSCREEN_FOCUSED_COVER("rew", "left_area"); + + MC_LOCKSCREEN_PART_AREA_FROM_LEFT("rew_right_padding", "left_area", LOCKSCREEN_INTERVAL, 134) + + MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 126, 134) + + MC_LOCKSCREEN_PART_BUTTON("play_btn", "play_pause_btn_area", MC_LOCKSCREEN_PAUSE, MC_LOCKSCREEN_PAUSE_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX) + MC_LOCKSCREEN_PAUSE_PART_BUTTON("pause_btn", "play_pause_btn_area", MC_LOCKSCREEN_PLAY, MC_LOCKSCREEN_PLAY_PRESS, LOCKSCREEN_BIG_BTN_SIZE_MIN_MAX) + + MC_LOCKSCREEN_FOCUSED_COVER("play_pause", "play_pause_btn_area"); + + MC_LOCKSCREEN_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", LOCKSCREEN_INTERVAL, 134) + + MC_LOCKSCREEN_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 99, 105) + + MC_LOCKSCREEN_PART_BUTTON("ff_btn", "ff_btn_area", MC_LOCKSCREEN_NEXT, MC_LOCKSCREEN_NEXT_PRESS, LOCKSCREEN_BUTTON_SIZE_MIN_MAX) + MC_LOCKSCREEN_FOCUSED_COVER("ff", "ff_btn_area"); + + } + + programs { +/* MC_LOCKSCREEN_PROGRAM_PLAY_TOUCH_SOUND*/ + + MC_LOCKSCREEN_BUTTON_PROGRAM("rew_btn") + MC_LOCKSCREEN_BUTTON_PROGRAM("ff_btn") + + MC_LOCKSCREEN_BUTTON_PROGRAM("play_btn") + MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("play_btn") + MC_LOCKSCREEN_BUTTON_PROGRAM("pause_btn") + MC_LOCKSCREEN_BUTTON_VISIVBLE_PROGRAM("pause_btn") + + program { name: "set_pause_icon"; + signal: "set_pause"; + source: "*"; + script{ + emit("hide_play_btn", "edje"); + emit("show_pause_btn", "edje"); + } + } + program { name: "set_play_icon"; + signal: "set_play"; + source: "*"; + script{ + emit("show_play_btn", "edje"); + emit("hide_pause_btn", "edje"); + } + } + } + +} + + +} // collection + diff --git a/playview/res/edje/pv-minicontroller.edc b/playview/res/edje/pv-minicontroller.edc index 68ff7b3..d0c3fbe 100644 --- a/playview/res/edje/pv-minicontroller.edc +++ b/playview/res/edje/pv-minicontroller.edc @@ -14,23 +14,40 @@ * limitations under the License. * */ -#define MINI_W 692 -#define MINI_H 180 -#define TOP_PADDING 10 -#define LEFT_PADDING 16 -#define RIGHT_PADDING 20 -#define BOTTOM_PADDING 12 -#define ALBUM_ART_SIZE 156 156 + +#define MINI_H 70 +#define MINI_H_PORT 70 +#define TOP_PADDING 4 +#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 BIG_BTN_SIZE_MIN_MAX 102 102 +#define BIG_BTN_SIZE_MIN_MAX 80 80 #define BUTTON_EXPAND_OFFSET 0 #define BUTTON_CLOSE_SIZE_MAX 30 30 +#define PLAY_BTN_SIZE_MIN_MAX 80 80 +#define FF_BTN_SIZE_MIN_MAX 80 80 -#define ALBUM_ART_LD_SIZE 130 130 #define MC_BG 30 28 28 0 +#define MC_MUSIC_LAGRE_BTN_EF "mini_controller/bg_btn_player_01_ef.png" +#define MC_MUSIC_LAGRE_BTN_BG "mini_controller/bg_btn_player_01.png" +#define MC_MUSIC_PLAY_BTN "mini_controller/music_btn_player_play_nor.png" +#define MC_MUSIC_PAUSE_BTN "mini_controller/music_btn_player_pause_nor.png" + + +#define MC_MUSIC_SMALL_BTN_EF "mini_controller/bg_btn_player_02_ef.png" +#define MC_MUSIC_SMALL_BTN_BG "mini_controller/bg_btn_player_02.png" + +#define MC_MUSIC_CLOSE_BTN "mini_controller/btn_controller_close.png" +#define MC_MUSIC_PREV_BTN "mini_controller/music_btn_player_prev_nor.png" +#define MC_MUSIC_NEXT_BTN "mini_controller/music_btn_player_next_nor.png" + +#define MC_MUSIC_ALBUM_FRAME "mini_controller/album_frame.png" + #define MC_IMG_REW_NORMAL "mini_controller/btn_video_prev_nor.png" #define MC_IMG_REW_PRESSED "mini_controller/btn_video_prev_press.png" #define MC_IMG_PLAY_NORMAL "mini_controller/btn_video_play_nor.png" @@ -45,6 +62,30 @@ #define MC_IMG_PROGRESS_BAR "mini_controller/video_progress.png" + +#define MC_FOCUSED_COVER(__name, __over_part_bg) \ +part { \ + name: __name"_focus"; \ + type: SWALLOW; \ + mouse_events: 1; \ + scale: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0 0; \ + visible:1; \ + fixed: 1 1;\ + rel1 { \ + relative: 0 0; \ + to: __over_part_bg; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __over_part_bg; \ + } \ + } \ +} + #define MC_PART_AREA_FROM_LEFT(__name, __left_part, __width, __height) \ part { name: __name; \ type: SPACER; \ @@ -59,6 +100,89 @@ part { name: __name; \ } \ } +#define MC_PART_AREA_FROM_SWALLOW_LEFT(__name, __left_part, __width, __height) \ +part { name: __name; \ + type: SWALLOW; \ + scale: 1; \ + mouse_events: 1; \ + description { state: "default" 0.0; \ + rel1 { relative: 1.0 0.5; to: __left_part; } \ + rel2 { relative: 1.0 0.5; to: __left_part; } \ + min: __width __height; \ + fixed: 1 1; \ + align: 0.0 0.5; \ + } \ +} +#define MC_IMAGE_PART_FOCUS(__name,__to,__image,__btn_min_max)\ +part { name: __name;\ + type: IMAGE;\ + 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; }\ + min: __btn_min_max;\ + max: __btn_min_max;\ + image.normal: __image;\ + fixed: 1 1;\ + align: 0.5 0.5;\ + color: 41 215 255 255;\ + }\ + 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;\ + visible: 0;\ + }\ + } + + +#define MC_IMAGE_PART(__name,__to,__image,__normal_code_red_component,__normal_code_green_component,__normal_code_blue_component,__normal_code_alpha_component,__press_code_red_component,__press_code_green_component,__press_code_blue_component,__press_code_alpha_component,__btn_min_max)\ +part { name: __name;\ + type: IMAGE;\ + 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; }\ + 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;\ + }\ + 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;\ + visible: 0;\ + }\ + } + +#define MC_PROGRAM_IMAGE_VISIBLE(__btn, __show_signal, __hide_signal) \ +program { \ + signal: __show_signal; \ + source: "*"; \ + action: STATE_SET "default" 0.0; \ + target: __btn; \ +} \ +program { \ + signal: __hide_signal; \ + source: "*"; \ + action: STATE_SET "hide" 0.0; \ + target: __btn; \ +} + + #define MC_PART_ICON_BTN(__name, __to, __normal, __pressed, __btn_min_max) \ part { name: __name"_clip"; \ type: RECT; \ @@ -225,7 +349,7 @@ program { \ program { \ source: __btn; \ signal: "mouse,down,1"; \ - action: RUN_PLUGIN "touch_sound_plugin"; \ + action: PLAY_SAMPLE "button-pressed" 1.0; \ after: __btn"_after_down"; \ transition: ACCELERATE 0.02;\ } \ @@ -257,31 +381,88 @@ program { \ target: __btn"_clip"; \ } +#define MINI_CONTROL_HIDE_SWALLOW_OPTION(__name, __to) \ +part { \ + name: __name; \ + mouse_events: 1; \ + type: SWALLOW; \ + scale: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + visible: 0; \ + rel1 { \ + relative: 0 0; \ + to: __to; \ + } \ + rel2 { \ + relative: 1 1; \ + to: __to; \ + } \ + color: 0 0 0 0; \ + } \ + description { \ + state: "visible" 0.0; \ + inherit: "default"; \ + visible: 1; \ + } \ +} + +#define MINI_CONTROL_BUTTON_INVISIVBLE_PROGRAM(__name) \ +program { \ + name: __name"_visible" ; \ + signal: __name"_visible"; \ + source: __name; \ + action: STATE_SET "visible" 0.0; \ + target: __name; \ +} \ +program { \ + name: __name"_invisible" ; \ + signal: __name"_invisible"; \ + source: __name; \ + action: STATE_SET "default" 0.0; \ + target: __name; \ +} + +externals { + external: "elm"; + external: "feedback"; +} + collections { +base_scale: 2.4; +/* +sounds { + sample { + name: "button-pressed" AS_IS; + source: MP_BUTTON_PRESSED_NAME; + } +} plugins { plugin { name: "touch_sound_plugin"; source: "feedback"; param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; - } } - +} +*/ group { name: "video-minicontroller"; images { - image: MC_IMG_REW_NORMAL COMP; - image: MC_IMG_REW_PRESSED COMP; - image: MC_IMG_PLAY_NORMAL COMP; - image: MC_IMG_PLAY_PRESSED COMP; - image: MC_IMG_PAUSE_NORMAL COMP; - image: MC_IMG_PAUSE_PRESSED COMP; - image: MC_IMG_FF_NORMAL COMP; - image: MC_IMG_FF_PRESSED COMP; - image: MC_IMG_CLOSE_NORMAL COMP; - image: MC_IMG_CLOSE_PRESSED COMP; - image: MC_IMG_PROGRESS_BG COMP; - image: MC_IMG_PROGRESS_BAR COMP; + image: MC_MUSIC_LAGRE_BTN_EF COMP; + image: MC_MUSIC_LAGRE_BTN_BG COMP; + image: MC_MUSIC_PLAY_BTN COMP; + image: MC_MUSIC_PAUSE_BTN COMP; + image: MC_MUSIC_SMALL_BTN_EF COMP; + image: MC_MUSIC_SMALL_BTN_BG COMP; + + image: MC_MUSIC_CLOSE_BTN COMP; + image: MC_MUSIC_PREV_BTN COMP; + image: MC_MUSIC_NEXT_BTN COMP; + + image: MC_MUSIC_ALBUM_FRAME COMP; } parts { part{ name: "bg"; @@ -290,11 +471,28 @@ group { mouse_events: 0; description { state: "default" 0.0; - min : 0 MINI_H; + min : 0 MINI_H_PORT; fixed: 1 1; rel1{ relative : 0 0;} rel2{ relative : 1 1;} - color : MC_BG; + color: MC_BG; + } + } + + part { name: "event_box"; + type : SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0 0; + to: "bg"; + } + rel2 { + relative: 1 1; + to: "bg"; + } } } @@ -352,21 +550,23 @@ group { part { name: "padding_for_albumart.top"; type: SPACER; scale: 1; - description { state: "default" 0.0; - rel2 { relative: 1.0 0.0; } - min: 0 12; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "bg"; } + rel2 { relative: 1 0; to: "bg"; } + min: 0 15; fixed: 0 1; align: 0.0 0.0; } } - part { name: "padding_for_albumart.bottom"; + part { name: "padding_for_albumart.bottom"; type: SPACER; scale: 1; description { state: "default" 0.0; rel1 { relative: 0 1; to: "bg"; } rel2 { relative: 1 1; to: "bg"; } - min: 0 12; + min: 0 15; fixed: 0 1; align: 0 1; } @@ -382,8 +582,7 @@ group { min: ALBUM_ART_SIZE; max: ALBUM_ART_SIZE; fixed: 1 1; - align: 0.0 0.0; - visible: 0; + align: 0.0 0.5; } } @@ -391,6 +590,7 @@ group { type: SWALLOW; scale: 1; mouse_events: 1; + clip_to: "albumarmt_bg"; description { state: "default" 0.0; rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; } rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; } @@ -401,6 +601,19 @@ group { } } + part { name: "albumarmt_frame"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "albumarmt_bg";} + rel2 { relative: 1.0 1.0; to: "albumarmt_bg";} + min: ALBUM_ART_SIZE; + image.normal: MC_MUSIC_ALBUM_FRAME; + color_class:"AO009"; + } + } + part { name: "right_area"; type: SPACER; scale: 1; @@ -414,148 +627,338 @@ group { part { name: "elm.text"; // title type: SWALLOW; - mouse_events: 0; + 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: 16 0;} - rel2 { relative: 458/520 1.0; to_x: "right_area"; to_y: "padding.top";} - min: 442 36; + 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.0 0.0; + align: 0.5 0.0; } } - part { name: "close_btn_left_padding"; - type: SPACER; + part { name: "close_btn_area"; + type: RECT; scale: 1; mouse_events: 0; description { state: "default" 0.0; - rel1 { relative: 1.0 1.0; to_x: "elm.text"; to_y: "padding.top"; offset: 12 0;} - rel2 { relative: 1.0 1.0; to_x: "elm.text"; to_y: "padding.top"; offset: 12 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;} min: BUTTON_CLOSE_SIZE_MAX; max: BUTTON_CLOSE_SIZE_MAX; + color: 255 0 0 0; fixed: 1 1; - align: 1.0 0.0; - } - description { state: "landsape" 0.0; - inherit: "default" 0.0; - min: 308 86; } } - MC_PART_AREA_FROM_LEFT("close_btn_area", "close_btn_left_padding", BUTTON_CLOSE_SIZE_MAX, BUTTON_CLOSE_SIZE_MAX) - MC_PART_ICON_BTN("close_btn", "close_btn_area", MC_IMG_CLOSE_NORMAL, MC_IMG_CLOSE_PRESSED, BUTTON_CLOSE_SIZE_MAX) - - - /* progress bg image */ - part { - name: "progress_bg"; - type: IMAGE; + MC_IMAGE_PART("close_btn","close_btn_area",MC_MUSIC_CLOSE_BTN,61,185,204,255,61,185,204,255,BUTTON_CLOSE_SIZE_MAX) + part { name: "close_btn_touch_area"; + type: RECT; + scale: 1; + mouse_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; } + color: 0 0 0 0; + } + } + + part { name: "mid_padding"; + type: RECT; mouse_events: 0; scale: 1; - description { - state: "default" 0.0; - align: 0.5 0; - visible:1; - image { normal: MC_IMG_PROGRESS_BG; } - min: 484 8; - max: 484 8; - fixed: 1 1; - rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 16 0; } - rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text";} + description + { state: "default" 0.0; + rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; } + rel2 { relative: 1.0 1.0; to_x: "padding.right"; to_y: "elm.text"; offset: 0 0; } + align: 0.0 0.0; + color: 255 0 0 0; } } - /* progress */ - MC_PART_RECT("progress_area", "progress_bg", 0, 0, 1, 1) - MC_PART_SWALLOW("progress_box", "progress_area", 0, 0, 1, 1) part { name: "button_area"; type: RECT; scale: 1; description { state: "default" 0.0; - rel1 { relative: 0 1; to_x: "right_area"; to_y: "progress_bg"; offset: 0 15;} - rel2 { relative: 1 0; to_x: "right_area"; to_y: "padding.bottom"; } - align: 0.5 0.0; - visible: 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: SPACER; + type: RECT; scale: 1; - mouse_events: 0; + mouse_events: 1; description { state: "default" 0.0; - rel1 { relative: 0.0 0.5; to: "button_area"; offset: 108 0;} - rel2 { relative: 0.0 0.5; to: "button_area"; offset: 108 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; fixed: 1 1; align: 0.0 0.5; + visible: 0; } } - MC_PART_ICON_BTN("rew_btn", "rew_btn_area", MC_IMG_REW_NORMAL, MC_IMG_REW_PRESSED, BUTTON_SIZE_MIN_MAX) - MC_PART_AREA_FROM_LEFT("rew_right_padding", "rew_btn_area", 21, 102) - - MC_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 102, 102) - MC_PART_ICON_BTN("play_btn", "play_pause_btn_area", MC_IMG_PLAY_NORMAL, MC_IMG_PLAY_PRESSED, BIG_BTN_SIZE_MIN_MAX) - MC_PART_ICON_BTN("pause_btn", "play_pause_btn_area", MC_IMG_PAUSE_PRESSED, MC_IMG_PAUSE_NORMAL, BIG_BTN_SIZE_MIN_MAX) + 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) + part { name: "rew_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "rew_btn_area"; } + rel2 { to: "rew_btn_area";} + color: 0 0 0 0; + } + } + MC_FOCUSED_COVER("rew_btn", "rew_btn_area"); - MC_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", 21, 86) + part { name: "play_pause_btn_area"; + type: SPACER; + 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; + fixed: 1 1; + align:0.0 0.5; + } + } - MC_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 80, 80) - MC_PART_ICON_BTN("ff_btn", "ff_btn_area", MC_IMG_FF_NORMAL, MC_IMG_FF_PRESSED, BUTTON_SIZE_MIN_MAX) + 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) + part { name: "play_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "play_pause_btn_area"; } + rel2 { to: "play_pause_btn_area"; } + color: 0 0 0 0; + } + } + MC_FOCUSED_COVER("play_pause", "play_pause_btn_area"); + part { name: "ff_btn_area"; + type: SPACER; + 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;} + 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) + part { name: "ff_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "ff_btn_area"; } + rel2 { to: "ff_btn_area";} + color: 0 0 0 0; + } + } + MC_FOCUSED_COVER("ff_btn", "ff_btn_area"); } programs { - MC_PROGRAM_BTN_ACTION("rew_btn", "rew_btn_down", "edje", "rew_btn_up", "edje", "rew_btn_clicked", "edje") + MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn") + MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn") + + program { name: "albumart_cb"; + signal: "mouse,clicked,1"; + source: "albumart_image"; + script{ + emit("albumart_clicked", "edje"); + } + } - MC_PROGRAM_BTN_ACTION("play_btn", "play_btn_down", "edje", "play_btn_up", "edje", "play_btn_clicked", "edje") - MC_PROGRAM_BTN_VISIBLE("play_btn", "show_play_btn", "hide_play_btn") + program { name: "close_area_btn_down"; + signal: "mouse,down,1"; + source: "close_btn_touch_area"; + script{ + set_state(PART:"close_btn", "pressed", 0.0); + emit("close_btn_down", "edje"); + } + } - MC_PROGRAM_BTN_ACTION("pause_btn", "pause_btn_down", "edje", "pause_btn_up", "edje", "pause_btn_clicked", "edje") - MC_PROGRAM_BTN_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn") + program { name: "close_area_btn_up"; + signal: "mouse,up,1"; + source: "close_btn_touch_area"; + script{ + set_state(PART:"close_btn", "default", 0.0); + emit("close_btn_up", "edje"); + } + } - MC_PROGRAM_BTN_ACTION("ff_btn", "ff_btn_down", "edje", "ff_btn_up", "edje", "rew_btn_clicked", "edje") + program { name: "play_pause_btn_area_press"; + 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); + } + } - MC_PROGRAM_BTN_ACTION("close_btn", "close_btn_down", "edje", "close_btn_up", "edje", "close_btn_clicked", "edje") + program { name: "play_pause_btn_area_up"; + 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); + } + } - program { name: "albumart_cb"; + program { name: "rew_btn_touch_area_press"; + 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", "pressed", 0.0); + } + } + + program { name: "rew_btn_touch_area_up"; + 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", "default", 0.0); + } + } + + program { name: "ff_btn_touch_area_press"; + signal: "mouse,down,1"; + source: "ff_btn_touch_area"; + script{ + set_state(PART:"ff_btn_bg", "pressed", 0.0); + set_state(PART:"ff_btn_ef", "pressed", 0.0); + set_state(PART:"ff_btn", "pressed", 0.0); + } + } + + program { name: "ff_btn_touch_area_up"; + signal: "mouse,up,1"; + source: "ff_btn_touch_area"; + script{ + set_state(PART:"ff_btn_bg", "default", 0.0); + set_state(PART:"ff_btn_ef", "default", 0.0); + set_state(PART:"ff_btn", "default", 0.0); + } + } + + program { name: "close_area_btn_clicked"; signal: "mouse,clicked,1"; - source: "albumart_image"; + source: "close_btn_touch_area"; script{ - emit("albumart_clicked", "edje"); + emit("close_btn_clicked", "edje"); } } + program{ name: "albumart_cb_after_down"; source: "albumart_image"; signal: "mouse,down,1"; transition: ACCELERATE 0.02; } + /* program { name: "albumart_cb_down"; source: "albumart_image"; signal: "mouse,down,1"; - action: RUN_PLUGIN "touch_sound_plugin"; + action: PLAY_SAMPLE "button-pressed" 1.0; after: "albumart_cb_after_down"; transition: ACCELERATE 0.02; - } + }*/ + program { name: "set_pause_icon"; signal: "set_pause"; source: "*"; script{ - emit("hide_play_btn", "edje"); - emit("show_pause_btn", "edje"); + 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); } } program { name: "set_play_icon"; signal: "set_play"; source: "*"; script{ - emit("show_play_btn", "edje"); - emit("hide_pause_btn", "edje"); + 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); + } + } + program { name: "set_ff_btn_uppressed"; + signal: "ff_btn_unpressed"; + source: "*"; + script{ + set_state(PART:"ff_btn_bg", "default", 0.0); + set_state(PART:"ff_btn_ef", "default", 0.0); + set_state(PART:"ff_btn", "default", 0.0); + } + } + program { name: "set_rew_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", "default", 0.0); } } +/* + program { name: "touch_snd_rew"; + signal: "mouse,down,1"; + source: "rew_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + + program { name: "touch_snd_ff"; + signal: "mouse,down,1"; + source: "ff_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_play_pause"; + signal: "mouse,down,1"; + source: "play_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_shuffle"; + signal: "mouse,down,1"; + source: "shuffle_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_close"; + signal: "mouse,down,1"; + source: "close_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_repeat"; + signal: "mouse,down,1"; + source: "repeat_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } +*/ } } @@ -564,19 +967,16 @@ group { group { name: "video-minicontroller-ld"; images { - image: MC_IMG_REW_NORMAL COMP; - image: MC_IMG_REW_PRESSED COMP; - image: MC_IMG_PLAY_NORMAL COMP; - image: MC_IMG_PLAY_PRESSED COMP; - image: MC_IMG_PAUSE_NORMAL COMP; - image: MC_IMG_PAUSE_PRESSED COMP; - image: MC_IMG_FF_NORMAL COMP; - image: MC_IMG_FF_PRESSED COMP; - image: MC_IMG_CLOSE_NORMAL COMP; - image: MC_IMG_CLOSE_PRESSED COMP; - image: MC_IMG_PROGRESS_BG COMP; - image: MC_IMG_PROGRESS_BAR COMP; - //image: MC_IMG_ALBUMART_MASK COMP; + image: MC_MUSIC_LAGRE_BTN_EF COMP; + image: MC_MUSIC_LAGRE_BTN_BG COMP; + image: MC_MUSIC_PLAY_BTN COMP; + image: MC_MUSIC_PAUSE_BTN COMP; + image: MC_MUSIC_SMALL_BTN_EF COMP; + image: MC_MUSIC_SMALL_BTN_BG COMP; + + image: MC_MUSIC_CLOSE_BTN COMP; + image: MC_MUSIC_PREV_BTN COMP; + image: MC_MUSIC_NEXT_BTN COMP; } parts { part{ name: "bg"; @@ -589,7 +989,7 @@ group { fixed: 1 1; rel1{ relative : 0 0;} rel2{ relative : 1 1;} - color : MC_BG; + color: MC_BG; } } @@ -607,7 +1007,8 @@ group { } part { name: "padding.left"; - type: SPACER; scale: 1; + type: SPACER; + scale: 1; mouse_events: 0; description { state: "default" 0.0; rel1 { relative: 0 0; to: "bg"; } @@ -649,7 +1050,7 @@ group { scale: 1; description { state: "default" 0.0; rel2 { relative: 1.0 0.0; } - min: 0 26; + min: 0 7; fixed: 0 1; align: 0.0 0.0; } @@ -661,7 +1062,7 @@ group { description { state: "default" 0.0; rel1 { relative: 0 1; to: "bg"; } rel2 { relative: 1 1; to: "bg"; } - min: 0 24; + min: 0 7; fixed: 0 1; align: 0 1; } @@ -674,141 +1075,276 @@ group { 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"; } - min: ALBUM_ART_LD_SIZE; - max: ALBUM_ART_LD_SIZE; + min: ALBUM_ART_SIZE; + max: ALBUM_ART_SIZE; fixed: 1 1; - align: 0.0 0.0; + align: 0.0 0.5; } } - part { name: "albumart_image"; type: SWALLOW; scale: 1; mouse_events: 1; + clip_to: "albumarmt_bg"; description { state: "default" 0.0; rel1 { relative: 0.5 0.5; to: "albumarmt_bg"; } rel2 { relative: 0.5 0.5; to: "albumarmt_bg"; } - min: ALBUM_ART_LD_SIZE; - max: ALBUM_ART_LD_SIZE; + min: ALBUM_ART_SIZE; + max: ALBUM_ART_SIZE; fixed: 1 1; align: 0.5 0.5; } } - - part { name: "mid_area"; - type: SPACER; + part { name: "albumarmt_frame"; + type: IMAGE; scale: 1; mouse_events: 0; description { state: "default" 0.0; - rel1 { relative: 1.0 0.0; to_x: "albumarmt_bg"; to_y: "bg"; offset: 34 0;} - rel2 { relative: 822/1280 1.0; to_x: "bg"; to_y: "bg"; } - align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "albumarmt_bg";} + rel2 { relative: 1.0 1.0; to: "albumarmt_bg";} + min: ALBUM_ART_SIZE; + image.normal: MC_MUSIC_ALBUM_FRAME; + color_class:"AO009"; } } + part { name: "right_area"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { relative: 1.0 1.0; to_x: "albumarmt_bg"; to_y: "padding.top"; } + rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; } + align: 0.0 0.0; + color:0 255 0 0; + } + } part { name: "elm.text"; // title type: SWALLOW; - mouse_events: 0; + mouse_events: 1; scale: 1; description { state: "default" 0.0; - rel1 { relative: 0.0 0.0; to_x: "mid_area"; to_y: "bg"; offset: 0 82;} - rel2 { relative: 1.0 0.0; to_x: "mid_area"; to_y: "bg"; offset: 0 82;} - min: 620 36; + rel1 { relative: 0.1 1.0; to_x: "right_area"; to_y: "padding.top";} + rel2 { relative: 290/329 1.0; to_x: "right_area"; to_y: "padding.top";} fixed: 1 1; - align: 0.0 0.0; + align: 0.5 0.0; } } - part { name: "close_btn_left_padding"; - type: SPACER; - scale: 1; + part { name: "mid_padding"; + type: RECT; mouse_events: 0; - description { state: "default" 0.0; - rel1 { relative: 1200/1280 1.0; to_x: "bg"; to_y: "padding.top"; } - rel2 { relative: 0 1.0; to_x: "padding.right"; to_y: "padding.top"; } - min: BUTTON_CLOSE_SIZE_MAX; - max: BUTTON_CLOSE_SIZE_MAX; + scale: 1; + description + { state: "default" 0.0; + //min: 323 3; + //max: 323 3; + fixed: 1 1; + rel1 { relative: 0.0 1.0; to_x: "right_area"; to_y: "elm.text"; offset: 40 0; } + rel2 { relative: 1.0 1.0; to_x: "right_area"; to_y: "elm.text"; } fixed: 1 1; align: 0.0 0.0; + color: 255 0 0 0; } } - MC_PART_AREA_FROM_LEFT("close_btn_area", "close_btn_left_padding", BUTTON_CLOSE_SIZE_MAX, BUTTON_CLOSE_SIZE_MAX) - MC_PART_ICON_BTN("close_btn", "close_btn_area", MC_IMG_CLOSE_NORMAL, MC_IMG_CLOSE_PRESSED, BUTTON_CLOSE_SIZE_MAX) - /* progress bg image */ - part { - name: "progress_bg"; - type: IMAGE; - mouse_events: 0; + part { name: "close_btn_area"; + type: SPACER; scale: 1; - description { - state: "default" 0.0; - align: 0.5 0; - visible:1; - image { normal: MC_IMG_PROGRESS_BG; } - min: 642 8; - max: 642 8; + mouse_events: 1; + description { state: "default" 0.0; + rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "elm.text";offset: -30 15;} + rel2 { relative: 0.0 0.0; to: "padding.right";to_y: "elm.text"; offset: -30 15;} + min: BUTTON_CLOSE_SIZE_MAX; + max: BUTTON_CLOSE_SIZE_MAX; fixed: 1 1; - rel1 { relative: 0.0 1.0; to_x: "mid_area"; to_y: "elm.text"; offset: 0 12; } - rel2 { relative: 1.0 1.0; to_x: "mid_area"; to_y: "elm.text";} } } - /* progress */ - MC_PART_RECT("progress_area", "progress_bg", 0, 0, 1, 1) - MC_PART_SWALLOW("progress_box", "progress_area", 0, 0, 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) + part { name: "close_btn_touch_area"; + type: RECT; + scale: 1; + mouse_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;} + color: 0 0 0 0; + } + } part { name: "button_area"; type: RECT; scale: 1; description { state: "default" 0.0; - rel1 { relative: 1 0; to_x: "mid_area"; to_y: "bg"; offset: 68 60;} - rel2 { relative: 1 0; to_x: "mid_area"; to_y: "bg"; offset: 68 60;} - align: 0.5 0.0; - min: 0 108; - fixed: 0 1; - visible: 0; + rel1 { relative: 0 1; to_x:"elm.text"; to_y: "mid_padding";} + rel2 { relative: 1 0; to_x: "elm.text"; to_y: "padding.bottom"; } + visible: 1; + color: 0 255 0 0; } } part { name: "rew_btn_area"; - type: SPACER; + type: RECT; scale: 1; - mouse_events: 0; + mouse_events: 1; description { state: "default" 0.0; - rel1 { relative: 0.0 0.5; to: "button_area";} - rel2 { relative: 0.0 0.5; to: "button_area";} + rel1 { relative: 0.2 0.5; to: "button_area"; offset: 10 0;} + rel2 { relative: 0.2 0.5; to: "button_area"; offset: 10 -16;} min: BUTTON_SIZE_MIN_MAX; fixed: 1 1; align: 0.0 0.5; + visible: 0; } } - MC_PART_ICON_BTN("rew_btn", "rew_btn_area", MC_IMG_REW_NORMAL, MC_IMG_REW_PRESSED, BUTTON_SIZE_MIN_MAX) - MC_PART_AREA_FROM_LEFT("rew_right_padding", "rew_btn_area", 21, 102) - MC_PART_AREA_FROM_LEFT("play_pause_btn_area", "rew_right_padding", 102, 102) - MC_PART_ICON_BTN("play_btn", "play_pause_btn_area", MC_IMG_PLAY_NORMAL, MC_IMG_PLAY_PRESSED, BIG_BTN_SIZE_MIN_MAX) - MC_PART_ICON_BTN("pause_btn", "play_pause_btn_area", MC_IMG_PAUSE_NORMAL, MC_IMG_PAUSE_PRESSED, BIG_BTN_SIZE_MIN_MAX) + 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) + part { name: "rew_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "rew_btn_area"; } + rel2 { to: "rew_btn_area";} + color: 0 0 0 0; + } + } + MC_FOCUSED_COVER("rew_btn", "rew_btn_area"); - MC_PART_AREA_FROM_LEFT("play_pause_right_padding", "play_pause_btn_area", 21, 86) - MC_PART_AREA_FROM_LEFT("ff_btn_area", "play_pause_right_padding", 80, 80) - MC_PART_ICON_BTN("ff_btn", "ff_btn_area", MC_IMG_FF_NORMAL, MC_IMG_FF_PRESSED, BUTTON_SIZE_MIN_MAX) - } + part { name: "play_pause_btn_area"; + type: SPACER; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + rel1 { relative: 0.5 0.5; to: "button_area";offset: 0 0;} + rel2 { relative: 0.5 0.5; to: "button_area";offset: 0 -16;} + min: PLAY_BTN_SIZE_MIN_MAX; + max: PLAY_BTN_SIZE_MIN_MAX; + fixed: 1 1; + } + } + + + 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) + part { name: "play_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "play_pause_btn_area"; } + rel2 { to: "play_pause_btn_area";} + color: 0 0 0 0; + fixed: 1 1; + } + } + MC_FOCUSED_COVER("play_pause", "play_pause_btn_area"); + + + part { name: "ff_btn_area"; + type: SPACER; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + rel1 { relative: 0.7 0.5; to: "button_area";offset: -10 0;} + rel2 { relative: 0.7 0.5; to: "button_area";offset: -10 -16;} + 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) + part { name: "ff_btn_touch_area"; + type: RECT; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + rel1 { to: "ff_btn_area"; } + rel2 { to: "ff_btn_area";} + color: 0 0 0 0; + fixed: 1 1; + } + } + MC_FOCUSED_COVER("ff_btn", "ff_btn_area"); + } programs { - MC_PROGRAM_BTN_ACTION("rew_btn", "rew_btn_down", "edje", "rew_btn_up", "edje", "rew_btn_clicked", "edje") - MC_PROGRAM_BTN_ACTION("play_btn", "play_btn_down", "edje", "play_btn_up", "edje", "play_btn_clicked", "edje") - MC_PROGRAM_BTN_VISIBLE("play_btn", "show_play_btn", "hide_play_btn") + MC_PROGRAM_IMAGE_VISIBLE("play_btn", "show_play_btn", "hide_play_btn") + MC_PROGRAM_IMAGE_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn") + + program { name: "play_pause_btn_area_press"; + 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); + } + } + + program { name: "play_pause_btn_area_up"; + 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); + } + } + + program { name: "rew_btn_touch_area_press"; + 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", "pressed", 0.0); + } + } - MC_PROGRAM_BTN_ACTION("pause_btn", "pause_btn_down", "edje", "pause_btn_up", "edje", "pause_btn_clicked", "edje") - MC_PROGRAM_BTN_VISIBLE("pause_btn", "show_pause_btn", "hide_pause_btn") + program { name: "rew_btn_touch_area_up"; + 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", "default", 0.0); + } + } - MC_PROGRAM_BTN_ACTION("ff_btn", "ff_btn_down", "edje", "ff_btn_up", "edje", "rew_btn_clicked", "edje") + program { name: "ff_btn_touch_area_press"; + signal: "mouse,down,1"; + source: "ff_btn_touch_area"; + script{ + set_state(PART:"ff_btn_bg", "pressed", 0.0); + set_state(PART:"ff_btn_ef", "pressed", 0.0); + set_state(PART:"ff_btn", "pressed", 0.0); + } + } - MC_PROGRAM_BTN_ACTION("close_btn", "close_btn_down", "edje", "close_btn_up", "edje", "close_btn_clicked", "edje") + program { name: "ff_btn_touch_area_up"; + signal: "mouse,up,1"; + source: "ff_btn_touch_area"; + script{ + set_state(PART:"ff_btn_bg", "default", 0.0); + set_state(PART:"ff_btn_ef", "default", 0.0); + set_state(PART:"ff_btn", "default", 0.0); + } + } program { name: "albumart_cb"; signal: "mouse,clicked,1"; @@ -823,161 +1359,113 @@ group { signal: "mouse,down,1"; transition: ACCELERATE 0.02; } + /* program { name: "albumart_cb_down"; source: "albumart_image"; signal: "mouse,down,1"; - action: RUN_PLUGIN "touch_sound_plugin"; + action: PLAY_SAMPLE "button-pressed" 1.0; after: "albumart_cb_after_down"; transition: ACCELERATE 0.02; } +*/ + program { name: "close_area_btn_down"; + signal: "mouse,down,1"; + source: "close_btn_touch_area"; + script{ + set_state(PART:"close_btn", "pressed", 0.0); + emit("close_btn_down", "edje"); + } + } + + program { name: "close_area_btn_up"; + signal: "mouse,up,1"; + source: "close_btn_touch_area"; + script{ + set_state(PART:"close_btn", "default", 0.0); + emit("close_btn_up", "edje"); + } + } + + program { name: "close_area_btn_clicked"; + signal: "mouse,up,1"; + source: "close_btn_touch_area"; + script{ + emit("close_btn_clicked", "edje"); + } + } + program { name: "set_pause_icon"; signal: "set_pause"; source: "*"; script{ - emit("hide_play_btn", "edje"); - emit("show_pause_btn", "edje"); + 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); } } program { name: "set_play_icon"; signal: "set_play"; source: "*"; script{ - emit("show_play_btn", "edje"); - emit("hide_pause_btn", "edje"); + 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); } } - } - -} - - -group { - name: "minicontroller_progress_box"; - parts { - part { name: "bg"; - type : RECT; - scale: 1; - mouse_events: 1; - description { state: "default" 0.0; - visible: 1; - rel1 { relative: 0.0 0.0; } - rel2 { relative: 1.0 1.0; } - color : 0 0 0 0; - } + program { name: "set_ff_btn_uppressed"; + signal: "ff_btn_unpressed"; + source: "*"; + script{ + set_state(PART:"ff_btn_bg", "default", 0.0); + set_state(PART:"ff_btn_ef", "default", 0.0); + set_state(PART:"ff_btn", "default", 0.0); + } } - - MC_PART_RECT("progress_bar_area", "bg", 0, 0, 1, 1) - - part { - name: "progress_bar"; - mouse_events: 1; - type: SWALLOW; - scale: 1; - description { - state: "default" 0.0; - align: 0.5 0.5; - visible: 1; - fixed: 1 1; - rel1 { - relative: 0 0; - to: "progress_bar_area"; - } - rel2 { - relative: 1 1; - to: "progress_bar_area"; - } - color: 248 246 239 255; - } - description { - state: "hide" 0.0; - visible: 0; - } + program { name: "set_rew_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", "default", 0.0); + } } - } + /* + program { name: "touch_snd_rew"; + signal: "mouse,down,1"; + source: "rew_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + + program { name: "touch_snd_ff"; + signal: "mouse,down,1"; + source: "ff_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_play_pause"; + signal: "mouse,down,1"; + source: "play_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_shuffle"; + signal: "mouse,down,1"; + source: "shuffle_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_close"; + signal: "mouse,down,1"; + source: "close_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { name: "touch_snd_repeat"; + signal: "mouse,down,1"; + source: "repeat_btn_touch_area"; + action: RUN_PLUGIN "touch_sound_plugin"; + } +*/ + } } -// prgress -#define MC_PLAYER_PROGRESSBAR_H 8 -#define MC_PLAYER_CIRCLE_W 50 -#define MC_PLAYER_CIRCLE_H 50 - - -group { name: "mc_player_progressbar"; - - images { - image: MC_IMG_PROGRESS_BG COMP; - image: MC_IMG_PROGRESS_BAR COMP; - } - - parts { - part { name: "bg"; - type: RECT; - mouse_events: 1; - scale: 1; - description { - color: 0 0 0 0; - } - } - part { name: "progressbar_bg"; - type: IMAGE; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: 0.0 0.5; to: "bg";} - rel2 { relative: 1.0 0.5; to: "bg";} - image { normal: MC_IMG_PROGRESS_BG; border: 5 5 0 0; } - min: 0 MC_PLAYER_PROGRESSBAR_H; - fixed: 0 1; - align: 0.5 0.5; - } - } - - part { name: "progressbar_current"; - type: IMAGE; - mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1 { relative: 0.0 0.5; to: "progressbar_bg"; } - rel2 { relative: 0.5 0.5; to_x: "progressbar_playing"; to_y: "progressbar_bg"; } - image { normal: MC_IMG_PROGRESS_BAR; border: 5 5 0 0; } - min: 0 MC_PLAYER_PROGRESSBAR_H; - fixed: 0 1; - align: 0.5 0.5; - } - } - - part { name: "progressbar_playing_confine_rect"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - visible: 0; - rel1 { relative: 0.0 0.5; offset: (-MC_PLAYER_CIRCLE_W/2) 0; to: "progressbar_bg"; } - rel2 { relative: 1.0 0.5; offset: (MC_PLAYER_CIRCLE_W/2) 0; to: "progressbar_bg"; } - min: 0 MC_PLAYER_CIRCLE_H; - fixed: 0 1; - align: 0.5 0.5; - } - } - - part { name: "progressbar_playing"; - type: RECT; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - min: MC_PLAYER_CIRCLE_W MC_PLAYER_CIRCLE_H; - fixed: 1 1; - visible: 0; - } - dragable { - confine: "progressbar_playing_confine_rect"; - x: 1 1 1; - } - } - } -} } // collection diff --git a/playview/src/include/vp-play-string-define.h b/playview/src/include/vp-play-string-define.h index c8a5bec..de4298b 100644 --- a/playview/src/include/vp-play-string-define.h +++ b/playview/src/include/vp-play-string-define.h @@ -57,6 +57,8 @@ #define VP_PLAY_BRIGHTNESS_POPUP_EDJ_PATH "pv-brightness-popup.edj" #define VP_PLAY_ZOOM_GUIDE_EDJ_PATH "pv-zoom-guide.edj" +#define MINICON_EDJ_NAME "pv-minicontroller.edj" +#define LOCKSCREENMINI_EDJ_NAME "pv-lockscreenmini.edj" #define VP_PLAY_SUBTITLE_EDJ_PATH "pv-subtitle.edj" diff --git a/playview/src/view/include/vp-play-normal-view.h b/playview/src/view/include/vp-play-normal-view.h index a4c4ab6..e587cd4 100644 --- a/playview/src/view/include/vp-play-normal-view.h +++ b/playview/src/view/include/vp-play-normal-view.h @@ -21,6 +21,7 @@ #include "vp-play-view-priv.h" +#include "vp-mm-player.h" typedef enum { @@ -112,3 +113,6 @@ bool vp_normal_rotate_icon_timer_cb(void *pUserData); //db void vp_play_normal_view_db_change(normal_view_handle pViewHandle); +vp_mm_player_state_t vp_play_normal_view_get_player_state(PlayView *pPlayView); +void vp_play_normal_view_on_controller_button_press(void *pUserData, int btn); +bool vp_play_normal_view_is_audio_only(PlayView *pPlayView); diff --git a/playview/src/view/include/vp-play-view-priv.h b/playview/src/view/include/vp-play-view-priv.h index 80271ba..13af70c 100644 --- a/playview/src/view/include/vp-play-view-priv.h +++ b/playview/src/view/include/vp-play-view-priv.h @@ -149,5 +149,22 @@ typedef struct _PlayView { Ecore_Timer *pHwKeyLongPressTimer;// for longpress HW key Ecore_Timer *pDbUpdateTimer; //db Update connection_h connection; + + /*minicontroller*/ + Evas_Object *win_minicon; + Evas_Object *minicontroller_layout; + Evas_Object *minicon_icon; + Ecore_Timer *minicon_button_timer; + bool b_minicontroller_show; + bool minicon_visible; + + /*lockscreen mini*/ + Evas_Object *win_lockmini; + Evas_Object *lockmini_layout; + Evas_Object *lsicon_icon; + Ecore_Timer *lockmini_button_timer; + bool lockmini_visible; + bool b_lockmini_show; + } PlayView; diff --git a/playview/src/view/vp-play-normal-view.c b/playview/src/view/vp-play-normal-view.c index 9c7a972..0e1a76b 100644 --- a/playview/src/view/vp-play-normal-view.c +++ b/playview/src/view/vp-play-normal-view.c @@ -40,6 +40,8 @@ #include "vp-play-volume.h" #include "vp-play-volume-popup.h" #include "vp-play-brightness-popup.h" +#include "vp-play-minicontroller.h" +#include "vp-play-lockscreenmc.h" #include "vp-image-util.h" #include "vp-media-contents.h" @@ -860,7 +862,11 @@ static void __vp_normal_sound_alive_popup_close_cb(int nType, bool bPause, void } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } video_sound_alive_t nSAType = (video_sound_alive_t)nType; vp_sound_alive_destroy(pNormalView->pSAHandle); @@ -871,6 +877,12 @@ static void __vp_normal_sound_alive_popup_close_cb(int nType, bool bPause, void if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -878,6 +890,12 @@ static void __vp_normal_sound_alive_popup_close_cb(int nType, bool bPause, void if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -953,6 +971,10 @@ static void __vp_normal_sound_path_popup_close_cb(int nType, bool bPause, void * } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_play_volume_update_value(pNormalView->pVolumeHandle); vp_sound_path_destroy(pNormalView->pSoundPathHandle); @@ -965,7 +987,12 @@ static void __vp_normal_sound_path_popup_close_cb(int nType, bool bPause, void * if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } - + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -973,6 +1000,12 @@ static void __vp_normal_sound_path_popup_close_cb(int nType, bool bPause, void * if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("play Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1040,7 +1073,10 @@ static void __vp_normal_setting_popup_close_cb(int nType, bool bPause, void *pUs } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_setting_destroy(pNormalView->pSettingHandle); pNormalView->pSettingHandle = NULL; pNormalView->bIsPopupShow = FALSE; @@ -1050,6 +1086,12 @@ static void __vp_normal_setting_popup_close_cb(int nType, bool bPause, void *pUs if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -1057,6 +1099,12 @@ static void __vp_normal_setting_popup_close_cb(int nType, bool bPause, void *pUs if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1088,7 +1136,10 @@ static void __vp_normal_capture_popup_close_cb(int nType, bool bPause, void *pUs } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (nType != -1) { pNormalView->bCaptureMode = (bool)nType; } @@ -1102,6 +1153,12 @@ static void __vp_normal_capture_popup_close_cb(int nType, bool bPause, void *pUs if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -1109,6 +1166,12 @@ static void __vp_normal_capture_popup_close_cb(int nType, bool bPause, void *pUs if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1135,7 +1198,10 @@ static void __vp_normal_play_speed_popup_done_cb(double fValue, bool bSetValue, return; } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_play_speed_popup_destroy(pNormalView->pPlaySpeedPopup); pNormalView->pPlaySpeedPopup = NULL; pNormalView->bIsPopupShow = FALSE; @@ -1144,6 +1210,12 @@ static void __vp_normal_play_speed_popup_done_cb(double fValue, bool bSetValue, if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Play Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); } @@ -1312,7 +1384,10 @@ static void __vp_normal_subtitle_size_popup_done_cb(int nType, bool bPause, void } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_subtitle_size_destroy(pNormalView->pSubtitleSizePopup); pNormalView->pSubtitleSizePopup = NULL; pNormalView->bIsPopupShow = FALSE; @@ -1332,6 +1407,12 @@ static void __vp_normal_subtitle_size_popup_done_cb(int nType, bool bPause, void if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -1394,7 +1475,10 @@ static void __vp_normal_subtitle_select_button_popup_done_cb(char *option, void } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (!strcmp(option, "settings")) { _vp_play_normal_view_on_subtitle_popup(pNormalView); } else { @@ -1405,6 +1489,12 @@ static void __vp_normal_subtitle_select_button_popup_done_cb(char *option, void if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1420,6 +1510,10 @@ static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath, void *pU } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } char *szSubtitle = NULL; vp_subtitle_select_destroy(pNormalView->pSubtitleSelectPopup); @@ -1429,6 +1523,12 @@ static void __vp_normal_subtitle_select_popup_done_cb(char *szFilePath, void *pU if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1723,12 +1823,20 @@ static void __vp_normal_detail_popup_close_cb(int nType, bool bPause, void *pUse } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (pNormalView->bManualPause == FALSE) { if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("resume Fail"); } - + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -1741,6 +1849,12 @@ static void __vp_normal_detail_popup_close_cb(int nType, bool bPause, void *pUse if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -1758,11 +1872,20 @@ static void __vp_normal_audio_track_popup_close_cb(int nType, bool bPause, void } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (bPause) { if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -1770,6 +1893,12 @@ static void __vp_normal_audio_track_popup_close_cb(int nType, bool bPause, void if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); _vp_play_normal_view_create_layout_hide_timer(pNormalView); @@ -1784,6 +1913,12 @@ static void __vp_normal_audio_track_popup_close_cb(int nType, bool bPause, void if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -2549,6 +2684,10 @@ static Evas_Event_Flags __vp_normal_gesture_double_click_end_cb(void *pUserData, } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } Elm_Gesture_Taps_Info *pEvent = (Elm_Gesture_Taps_Info *) pEventInfo; if (pNormalView->bZoomEnable && pEvent->n == 1) { @@ -2567,6 +2706,12 @@ static Evas_Event_Flags __vp_normal_gesture_double_click_end_cb(void *pUserData, } if (nState == VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_pause(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } pNormalView->bManualPause = TRUE; } else { bool bSpeedMode = FALSE; @@ -2600,6 +2745,12 @@ static Evas_Event_Flags __vp_normal_gesture_double_click_end_cb(void *pUserData, if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Resume Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } VP_EVAS_IDLER_DEL(pNormalView->pControlIdler); pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); @@ -2893,7 +3044,10 @@ static void __vp_normal_progress_mouse_down_cb(void *pUserData, Evas * e, Evas_O return; } NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } VideoLogWarning("Mouse Down"); if (pNormalView->bIsRealize == FALSE) { @@ -2954,6 +3108,12 @@ static void __vp_normal_progress_mouse_down_cb(void *pUserData, Evas * e, Evas_O } if (nState == VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_pause(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -2969,6 +3129,12 @@ static void __vp_normal_progress_mouse_down_cb(void *pUserData, Evas * e, Evas_O VideoLogInfo("nState:%d", nState); if (nState == VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_pause(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } } } @@ -3554,7 +3720,11 @@ static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData) VideoLogWarning(""); NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (pNormalView->bSpeedDown) { pNormalView->nSpeedValue++; @@ -3583,6 +3753,12 @@ static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData) if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -3638,6 +3814,12 @@ static Eina_Bool __vp_normal_speed_timer_cb(void *pUserData) if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -3956,6 +4138,12 @@ static void __vp_normal_seek_completed_cb(void *pUserData) } else { vp_mm_player_play(pNormalView->pPlayerHandle); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } if (!vp_mm_player_set_subtitle_position(pNormalView->pPlayerHandle, pNormalView->fSubtitleSyncValue * 1000)) { VideoLogError("vp_mm_player_set_subtitle_position is fail"); @@ -3977,6 +4165,12 @@ static void __vp_normal_seek_completed_cb(void *pUserData) if (nState == VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_pause(pNormalView->pPlayerHandle); _vp_play_normal_view_set_play_state(pNormalView); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } } @@ -3984,6 +4178,12 @@ static void __vp_normal_seek_completed_cb(void *pUserData) pNormalView->nStartPosition = 0; pNormalView->bIsRealize = TRUE; vp_mm_player_play(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); //_vp_play_normal_view_show_layout(pNormalView); @@ -4000,6 +4200,12 @@ static void __vp_normal_seek_completed_cb(void *pUserData) pNormalView->bProgressDown == FALSE && !pNormalView->pSpeedTimer && !_vp_play_normal_view_check_during_call(pNormalView)) { vp_mm_player_play(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -4014,12 +4220,22 @@ static void __vp_normal_interrupted_cb(vp_mm_player_interrupt_t nCode, void *pUs } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } VideoLogWarning("== %d ==", nCode); if (nCode == VP_MM_PLAYER_INTERRUPTED_COMPLETED) { if (pNormalView->bManualPause == FALSE) { vp_mm_player_play(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } } else if (nCode == VP_MM_PLAYER_INTERRUPTED_BY_MEDIA) { pNormalView->bManualPause = TRUE; @@ -4027,6 +4243,12 @@ static void __vp_normal_interrupted_cb(vp_mm_player_interrupt_t nCode, void *pUs if (pNormalView->bDeviceRemoveInterrupt) { if (pNormalView->bManualPause == FALSE) { vp_mm_player_play(pNormalView->pPlayerHandle); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } pNormalView->bDeviceRemoveInterrupt = FALSE; } @@ -4232,7 +4454,11 @@ static void __vp_normal_buffering_cb(int nPercent, void *pUserData) } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (nPercent == 100) { VideoLogError("Buffering complete"); pNormalView->bBufferingComplete = TRUE; @@ -4263,6 +4489,12 @@ static void __vp_normal_buffering_cb(int nPercent, void *pUserData) } else { vp_mm_player_play(pNormalView->pPlayerHandle); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -4514,17 +4746,42 @@ static void __vp_normal_ctx_popup_audio_only_cb(void *pUserData, Evas_Object *pO NormalView *pNormalView = (NormalView *)pUserData; VP_EVAS_DEL(pNormalView->pCtxPopup); + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if(pNormalView->bAudioOnly == TRUE) { pNormalView->bAudioOnly = FALSE; + + if (pPlayView->win_minicon) { + vp_minicontroller_destroy(pPlayView); + } + if (pPlayView->win_lockmini) { + vp_lockscreenmini_destroy(pPlayView); + } } else { pNormalView->bAudioOnly = TRUE; vp_play_util_status_noti_show(VP_PLAY_STRING_AUDIO_ONLY_PLAYBACK_MSG); + + if (!pPlayView->win_minicon) { + vp_minicontroller_create(pPlayView); + } else { + vp_minicontroller_show(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_create(pPlayView); + } else if (!pPlayView->b_lockmini_show) { + vp_lockscreenmini_show(pPlayView); + } } _vp_play_normal_view_set_play_state(pNormalView); + } static void __vp_normal_ctx_popup_subtitle_cb(void *pUserData, Evas_Object *pObj, void *pEventInfo) @@ -4554,6 +4811,12 @@ static void __vp_normal_ctx_popup_subtitle_cb(void *pUserData, Evas_Object *pObj if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -4660,6 +4923,12 @@ static void __vp_normal_ctx_popup_delete_cb(void *pUserData, Evas_Object *pObj, if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -4770,7 +5039,11 @@ static void __vp_normal_ctx_popup_play_speed_cb(void *pUserData, Evas_Object *pO } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } VP_EVAS_DEL(pNormalView->pCtxPopup); vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; @@ -4782,6 +5055,12 @@ static void __vp_normal_ctx_popup_play_speed_cb(void *pUserData, Evas_Object *pO if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -5028,6 +5307,12 @@ void vp_play_normal_view_pause_player(void *pPlayview) vp_mm_player_pause(pNormalView->pPlayerHandle); pNormalView->bManualPause = TRUE; } + if (vPlayview->win_minicon) { + vp_minicontroller_update_control(vPlayview); + } + if (!vPlayview->win_lockmini) { + vp_lockscreenmini_update_control(vPlayview); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -5049,6 +5334,12 @@ void vp_play_normal_view_play_player(void *pPlayview) vp_mm_player_play(pNormalView->pPlayerHandle); pNormalView->bManualPause = FALSE; } + if (vPlayview->win_minicon) { + vp_minicontroller_update_control(vPlayview); + } + if (!vPlayview->win_lockmini) { + vp_lockscreenmini_update_control(vPlayview); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -5313,6 +5604,12 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); pNormalView->bManualPause = TRUE; + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } else if (pObj == pNormalView->pResumeBtn) { VideoLogWarning("Resume button"); vp_util_lock_cpu(); @@ -5336,6 +5633,12 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); pNormalView->bManualPause = FALSE; + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } else if (pObj == pNormalView->pPlayFocusBtn) { VideoLogWarning("pPlayFocusBtn click"); Evas_Object *pObj = elm_object_part_content_get(pNormalView->pControlLayout, VP_PLAY_SWALLOW_NORMAL_PLAY); @@ -5344,6 +5647,12 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } VP_EVAS_IDLER_DEL(pNormalView->pControlIdler); pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); @@ -5357,6 +5666,12 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Resume Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } VP_EVAS_IDLER_DEL(pNormalView->pControlIdler); pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); @@ -5370,6 +5685,13 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb _vp_play_normal_view_on_prev_play(pNormalView, TRUE, FALSE); } } + if (pPlayView->win_minicon) { + vp_minicontroller_update(pPlayView, true); + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update(pPlayView); + } } else if (pObj == pNormalView->pNextBtn) { VideoLogWarning("Next button"); if (pNormalView->bHLSMode == FALSE) { @@ -5378,6 +5700,13 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb _vp_play_normal_view_on_next_play(pNormalView, TRUE); } } + if (pPlayView->win_minicon) { + vp_minicontroller_update(pPlayView, true); + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update(pPlayView); + } } else if (pObj == pNormalView->pRotateBtn) { VideoLogWarning("Rotate button"); @@ -5410,6 +5739,31 @@ static void __vp_normal_control_btn_clicked_cb(void *pUserData, Evas_Object *pOb } } + +void vp_play_normal_view_on_controller_button_press(void *pUserData, int btn) { + + if (!pUserData) { + VideoLogError("pUserData is NULL"); + return; + } + + NormalView *pNormalView = (NormalView *)pUserData; + Evas_Object *pObj = NULL; + + if(btn == CONTROLLER_PAUSE_BUTTON) { + pObj = pNormalView->pPauseBtn; + } else if(btn == CONTROLLER_PLAY_BUTTON) { + pObj = pNormalView->pResumeBtn; + } else if(btn == CONTROLLER_FF_BUTTON) { + pObj = pNormalView->pNextBtn; + } else if(btn == CONTROLLER_REW_BUTTON) { + pObj = pNormalView->pPrevBtn; + } else { + VideoLogError("Unknown Button!"); + } + __vp_normal_control_btn_clicked_cb(pNormalView, pObj, NULL); +} + static void __vp_normal_control_btn_press_cb(void *pUserData, Evas_Object *pObj, void *pEvent) { if (!pUserData) { @@ -5548,6 +5902,11 @@ static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey, bool bRele } NormalView *pNormalView = (NormalView *)pUserData; + PlayView *pPlayView = pNormalView->pPlayView; + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (pNormalView->bSharepopup) { VideoLogWarning("bSharepopup is TRUE"); return; @@ -5583,7 +5942,12 @@ static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey, bool bRele } pNormalView->bManualPause = TRUE; } - + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -5626,7 +5990,12 @@ static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey, bool bRele } pNormalView->bManualPause = FALSE; } - + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } else { @@ -5669,6 +6038,12 @@ static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey, bool bRele if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogError("play Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } pNormalView->bManualPause = FALSE; } @@ -5708,6 +6083,12 @@ static void __vp_normal_media_key_event_cb(vp_media_key_event_t nKey, bool bRele VideoLogError("Pause Fail"); } } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } pNormalView->bManualPause = TRUE; _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); @@ -5734,6 +6115,11 @@ void vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle p } NormalView *pNormalView = (NormalView *)pViewHandle; + PlayView *pPlayView = pNormalView->pPlayView; + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (pNormalView->pSpeedTimer == NULL && bRelease == FALSE) { if (bFFseek) { @@ -5769,6 +6155,12 @@ void vp_play_normal_view_ff_rew_keyboard_longpress_event_cb(normal_view_handle p if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogError("play Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } pNormalView->bManualPause = FALSE; } @@ -5891,6 +6283,11 @@ void vp_play_normal_view_set_resume_or_pause(normal_view_handle *pViewHandle) NormalView *pNormalView = (NormalView *)pViewHandle; + PlayView *pPlayView = pNormalView->pPlayView; + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) { @@ -5903,6 +6300,12 @@ void vp_play_normal_view_set_resume_or_pause(normal_view_handle *pViewHandle) vp_mm_player_play(pNormalView->pPlayerHandle); pNormalView->bManualPause = FALSE; } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -7420,6 +7823,12 @@ static void _vp_play_normal_view_on_next_play(NormalView *pNormalView, bool bMan if (nState != VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_play(pNormalView->pPlayerHandle); pNormalView->bManualPause = FALSE; + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); @@ -7564,6 +7973,12 @@ static void _vp_play_normal_view_on_prev_play(NormalView *pNormalView, bool bMan if (nState != VP_MM_PLAYER_STATE_PLAYING) { vp_mm_player_play(pNormalView->pPlayerHandle); pNormalView->bManualPause = FALSE; + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); @@ -7977,6 +8392,12 @@ static void _vp_play_normal_view_on_share_popup(NormalView *pNormalView) if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); pNormalView->bSharePanelPause = FALSE; @@ -8107,6 +8528,13 @@ static void _vp_play_normal_view_on_audio_track_popup(NormalView *pNormalView) VideoLogError("pNormalView is NULL"); return; } + + PlayView *pPlayView = pNormalView->pPlayView; + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) { VideoLogWarning("vp_mm_player_get_state is fail"); @@ -8116,6 +8544,12 @@ static void _vp_play_normal_view_on_audio_track_popup(NormalView *pNormalView) if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -8123,12 +8557,6 @@ static void _vp_play_normal_view_on_audio_track_popup(NormalView *pNormalView) vp_audio_track_destroy(pNormalView->pAudioTrackHandle); pNormalView->pAudioTrackHandle = NULL; - PlayView *pPlayView = pNormalView->pPlayView; - - if (!pPlayView) { - VideoLogError("pPlayView is NULL"); - return; - } pNormalView->pAudioTrackHandle = vp_audio_track_create(pPlayView->pWin, __vp_normal_audio_track_popup_close_cb, pNormalView->nDefaultAudioTrackIndex); @@ -8477,6 +8905,13 @@ static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *pNormalV VideoLogError("pNormalView is NULL"); return; } + + PlayView *pPlayView = pNormalView->pPlayView; + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) { VideoLogWarning("vp_mm_player_get_state is fail"); @@ -8486,6 +8921,12 @@ static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *pNormalV if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -8493,12 +8934,6 @@ static void _vp_play_normal_view_on_subtitle_language_popup(NormalView *pNormalV vp_subtitle_track_destroy(pNormalView->pSubtitleTrackHandle); pNormalView->pSubtitleTrackHandle = NULL; - PlayView *pPlayView = pNormalView->pPlayView; - - if (!pPlayView) { - VideoLogError("pPlayView is NULL"); - return; - } #ifdef _SUBTITLE_MULTI_LANGUAGE pNormalView->pSubtitleTrackHandle = vp_subtitle_track_create(pPlayView->pWin, __vp_normal_subtitle_track_popup_close_cb); @@ -8729,6 +9164,12 @@ static void _vp_play_normal_view_on_subtitle_select_popup(NormalView *pNormalVie if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -8864,7 +9305,10 @@ static void __vp_normal_subtitle_edge_popup_done_cb(int nType, bool bPause, void } // to do NormalView *pNormalView = (NormalView *)pUserData; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_subtitle_edge_destroy(pNormalView->pSubtitleEdgePopup); pNormalView->pSubtitleEdgePopup = NULL; pNormalView->bIsPopupShow = FALSE; @@ -8881,6 +9325,12 @@ static void __vp_normal_subtitle_edge_popup_done_cb(int nType, bool bPause, void if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); } @@ -9309,6 +9759,12 @@ static void _vp_play_normal_view_on_detail_popup(NormalView *pNormalView) if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogError("Pause Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); } @@ -11478,6 +11934,12 @@ static void _vp_play_normal_view_prepare_pipe_cb(void *data, void *pipeData, uns VideoLogError("vp_mm_player_set_subtitle_position is fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); _vp_play_normal_view_on_capture_mode(pNormalView); @@ -11564,6 +12026,14 @@ void vp_play_normal_view_destroy(normal_view_handle pViewHandle) } NormalView *pNormalView = (NormalView *)pViewHandle; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } else { + if (pPlayView->win_minicon) { + vp_minicontroller_destroy(pPlayView); + } + } elm_access_object_unregister(pNormalView->pMainLayout); elm_object_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE); elm_object_tree_focus_allow_set(pNormalView->pNaviFrame, EINA_FALSE); @@ -11750,9 +12220,19 @@ bool vp_play_normal_view_pause(normal_view_handle pViewHandle) } NormalView *pNormalView = (NormalView *)pViewHandle; + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_mm_player_pause(pNormalView->pPlayerHandle); _vp_play_normal_view_set_play_state(pNormalView); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } return TRUE; } @@ -11765,7 +12245,10 @@ bool vp_play_normal_view_resume(normal_view_handle pViewHandle) } NormalView *pNormalView = (NormalView *)pViewHandle; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if (pNormalView->pPlayerHandle && pNormalView->bIsRealize) { _vp_play_normal_view_all_close_popup(pNormalView); } @@ -11780,6 +12263,12 @@ bool vp_play_normal_view_resume(normal_view_handle pViewHandle) if (nState != VP_MM_PLAYER_STATE_PLAYING) { if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogError("Unable to play!"); + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } } _vp_play_normal_view_set_play_state(pNormalView); } @@ -11797,7 +12286,10 @@ bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle) } NormalView *pNormalView = (NormalView *)pViewHandle; - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) { @@ -11820,6 +12312,12 @@ bool vp_play_normal_view_resume_or_pause(normal_view_handle pViewHandle) break; } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } _vp_play_normal_view_set_play_state(pNormalView); return TRUE; @@ -12482,6 +12980,7 @@ bool vp_play_normal_view_update(normal_view_handle pViewHandle) } NormalView *pNormalView = (NormalView *)pViewHandle; + PlayView *pPlayView = pNormalView->pPlayView; VideoLogWarning(" == NORMAL VIEW UPDATE =="); @@ -12557,6 +13056,13 @@ bool vp_play_normal_view_update(normal_view_handle pViewHandle) } } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } + return TRUE; } @@ -12740,6 +13246,11 @@ bool vp_play_normal_view_set_lock_screen(normal_view_handle pViewHandle, bool bL NormalView *pNormalView = (NormalView *)pViewHandle; + if (pNormalView->bAudioOnly) { + VideoLogDebug("Audio only mode is on hence lock feature disabled"); + return FALSE; + } + pNormalView->bLockScreen = bLock; VP_EVAS_TIMER_DEL(pNormalView->pLockScreenTimer); @@ -12940,13 +13451,21 @@ bool vp_controller_play_normal_view_pause(normal_view_handle pViewHandle) VideoLogError("pViewHandle is NULL"); return FALSE; } - + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } VideoLogWarning("Pause button"); if (!vp_mm_player_pause(pNormalView->pPlayerHandle)) { VideoLogWarning("Pause Fail"); } - + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } VP_EVAS_IDLER_DEL(pNormalView->pControlIdler); pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); pNormalView->bManualPause = TRUE; @@ -12962,6 +13481,10 @@ bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle) VideoLogError("pViewHandle is NULL"); return FALSE; } + PlayView *pPlayView = pNormalView->pPlayView; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } if(_vp_play_normal_view_check_during_call(pNormalView)) { return FALSE; } @@ -12969,6 +13492,12 @@ bool vp_controller_play_normal_view_resume(normal_view_handle pViewHandle) if (!vp_mm_player_play(pNormalView->pPlayerHandle)) { VideoLogWarning("Resume Fail"); } + if (pPlayView->win_minicon) { + vp_minicontroller_update_control(pPlayView); + } + if (!pPlayView->win_lockmini) { + vp_lockscreenmini_update_control(pPlayView); + } VP_EVAS_IDLER_DEL(pNormalView->pControlIdler); pNormalView->pControlIdler = ecore_idler_add(__vp_normal_control_idler_cb, (void *)pNormalView); pNormalView->bManualPause = FALSE; @@ -13150,3 +13679,38 @@ void vp_play_normal_view_db_change(normal_view_handle pViewHandle) VP_FREE(pVideoId); } } + +vp_mm_player_state_t vp_play_normal_view_get_player_state(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + + NormalView *pNormalView = (NormalView *)pPlayView->pNormalView; + vp_mm_player_state_t nState = VP_MM_PLAYER_STATE_NONE; + + if (!vp_mm_player_get_state(pNormalView->pPlayerHandle, &nState)) { + VideoLogWarning("vp_mm_player_get_state is fail"); + } + + return nState; +} + +bool vp_play_normal_view_is_audio_only(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return FALSE; + } + + NormalView *pNormalView = (NormalView *)pPlayView->pNormalView; + + if (pNormalView->bAudioOnly == TRUE) { + return TRUE; + } else { + return FALSE; + } + + return FALSE; +} diff --git a/playview/src/vp-play-view.c b/playview/src/vp-play-view.c index 5c2aa89..99be957 100644 --- a/playview/src/vp-play-view.c +++ b/playview/src/vp-play-view.c @@ -29,6 +29,8 @@ #include "vp-play-view-priv.h" #include "vp-play-normal-view.h" +#include "vp-play-minicontroller.h" +#include "vp-play-lockscreenmc.h" #include "vp-play-popup.h" #include "vp-play-button.h" @@ -549,6 +551,9 @@ static void __vp_play_rotate_changed_cb(void *pUserData, Evas_Object *pObj, void if (pPlayView->nRotate != nRotate) { vp_play_view_set_rotate(pPlayView, nRotate); } + if(pPlayView->win_minicon) { + vp_minicontroller_rotate(pPlayView, nRotate); + } } static void __vp_play_view_realize_cb(void *pUserData) @@ -721,8 +726,10 @@ static Eina_Bool __vp_play_view_event_key_down_cb(void *pUserData, int nType, vo vp_play_normal_check_detail_view(pPlayView->pNormalView); bool bPause = FALSE; vp_play_normal_view_get_pause_status(pPlayView->pNormalView, &bPause); - if (bPause) { + if (bPause && !vp_play_normal_view_is_audio_only(pPlayView)) { vp_play_util_set_lock_power_key(); + } else { + VideoLogDebug("Lock feature disabled"); } return EINA_TRUE; @@ -1764,6 +1771,10 @@ play_view_handle vp_play_view_create(Evas_Object *pParent, Ecore_X_Window nParen pPlayView->pParent = pParent; pPlayView->nPlayMode = nMode; pPlayView->nLaunchingType = nLaunchingType; + pPlayView->minicontroller_layout = NULL; + pPlayView->win_minicon = NULL; + pPlayView->lockmini_layout = NULL; + pPlayView->win_lockmini = NULL; /* init preference */ vp_play_preference_init(); diff --git a/playview/src/widget/include/vp-play-lockscreenmc.h b/playview/src/widget/include/vp-play-lockscreenmc.h new file mode 100644 index 0000000..65831ec --- /dev/null +++ b/playview/src/widget/include/vp-play-lockscreenmc.h @@ -0,0 +1,51 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + +#ifndef VP_PLAY_LOCKSCREENMC_H_ +#define VP_PLAY_LOCKSCREENMC_H_ + +//#include "mp-ta.h" +//#include "music.h" +//#include "mp-item.h" +//#include "mp-player-control.h" +//#include "mp-common.h" +//#include "mp-player-mgr.h" +//#include "mp-player-debug.h" +// +//#ifdef MP_FEATURE_LOCKSCREEN +#include "vp-play-view-priv.h" +enum vp_lc_controller_button_type { + LC_CONTROLLER_PLAY_BUTTON = 0, + LC_CONTROLLER_PAUSE_BUTTON, + LC_CONTROLLER_FF_BUTTON, + LC_CONTROLLER_REW_BUTTON +}; + +int vp_lockscreenmini_create(PlayView *pPlayView); +//int mp_lockscreenmini_hide(struct appdata *ad); +int vp_lockscreenmini_show(PlayView *pPlayView); +int vp_lockscreenmini_destroy(PlayView *pPlayView); +void vp_lockscreenmini_update_control(PlayView *pPlayView); +void vp_lockscreenmini_update(PlayView *pPlayView); +//void mp_lockscreenmini_visible_set(struct appdata *ad, bool visible); +//bool mp_lockscreenmini_visible_get(struct appdata *ad); +//void mp_lockscreenmini_on_lcd_event(struct appdata *ad, bool lcd_on); +// +//#endif + +#endif /* VP_PLAY_LOCKSCREENMC_H_ */ diff --git a/playview/src/widget/include/vp-play-minicontroller.h b/playview/src/widget/include/vp-play-minicontroller.h new file mode 100644 index 0000000..967f23c --- /dev/null +++ b/playview/src/widget/include/vp-play-minicontroller.h @@ -0,0 +1,42 @@ +/* + /* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef VP_PLAY_MINICONTROLLER_H_ +#define VP_PLAY_MINICONTROLLER_H_ + +#include "vp-play-view-priv.h" + +enum vp_controller_button_type { + CONTROLLER_PLAY_BUTTON = 0, + CONTROLLER_PAUSE_BUTTON, + CONTROLLER_FF_BUTTON, + CONTROLLER_REW_BUTTON +}; + +int vp_minicontroller_create(PlayView *pPlayView); +//int vp_minicontroller_hide(struct appdata *ad); +int vp_minicontroller_show(PlayView *pPlayView); +int vp_minicontroller_destroy(PlayView *pPlayView); +void vp_minicontroller_update_control(PlayView *pPlayView); +void vp_minicontroller_update(PlayView *pPlayView, bool with_title); +void vp_minicontroller_rotate(PlayView *pPlayView, video_play_rotate_t angle); +//void vp_minicontroller_visible_set(struct appdata *ad, bool visible); +//bool vp_minicontroller_visible_get(struct appdata *ad); +//void vp_minicontroller_on_lcd_event(struct appdata *ad, bool lcd_on); + +#endif /* VP_PLAY_MINICONTROLLER_H_ */ diff --git a/playview/src/widget/vp-play-lockscreenmc.c b/playview/src/widget/vp-play-lockscreenmc.c new file mode 100644 index 0000000..e6ccd12 --- /dev/null +++ b/playview/src/widget/vp-play-lockscreenmc.c @@ -0,0 +1,656 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#include "vp-play-lockscreenmc.h" +#include "vp-play-minicontroller.h" +#include "vp-play-view.h" +#include "vp-play-view-priv.h" +#include "vp-play-normal-view.h" +#include "vp-mm-player.h" +#include "vp-play-util.h" +#include "vp-media-contents.h" +/* check temp */ +#include "vp-play-log.h" +#include "vp-util.h" +#include "vp-file-util.h" +#include "vp-avrcp.h" +#include "Ecore.h" +//#include +//#include +//#include +//#include "mp-lockscreenmini.h" +//#include "mp-player-control.h" +//#include "mp-play.h" +//#include "Ecore.h" +//#include "mp-player-mgr.h" +//#include "mp-util.h" +//#include "mp-widget.h" +//#include "mp-setting-ctrl.h" +//#include "mp-player-view.h" +//#include +//#include +// +//#ifdef MP_FEATURE_LOCKSCREEN +// +int LOCKSCREEN_MINI_CONTROLLER_WIDTH; +#define LOCKSCREEN_MINI_CONTROLLER_HEIGHT (93) +// +////#define LOCKSCREEN_MSG_DOMAIN_CONTROL_ACCESS (int)ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL + +static time_t press_time; +static time_t release_time; +static Evas_Object *_load_edj(Evas_Object * parent, const char *file, const char *group); +static void _load_lockscreenmini(PlayView *pPlayView); +static void _vp_lockscreenmini_update_layout(PlayView *pPlayView, bool landscape); + +//static bool _mp_lockscreenmini_is_long_press() +//{ +// bool result = false; +// VideoLogDebug("press time is %s", ctime(&press_time)); +// VideoLogDebug("release time is %s", ctime(&release_time)); +// if (difftime(release_time, press_time) > 1.0) { +// result = true; +// } +// +// memset(&release_time, 0, sizeof(time_t)); +// memset(&press_time, 0, sizeof(time_t)); +// +// VideoLogDebug("is %s long press", result ? "" : "not"); +// return result; +//} + +static Evas_Object * +_load_edj(Evas_Object *parent, const char *file, const char *group) +{ + Evas_Object *eo; + int r; + + eo = elm_layout_add(parent); + if (eo) { + char edje_path[1024] ={0}; + char * path = app_get_resource_path(); + + if (path == NULL) { + VideoLogError("path is null"); + return NULL; + } + snprintf(edje_path, 1024, "%s%s/%s", path, "edje", file); + + r = elm_layout_file_set(eo, edje_path, group); + free(path); + + if (!r) { + evas_object_del(eo); + return NULL; + } + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, eo); + evas_object_show(eo); + } + + return eo; +} + +static void _lockscreen_cb(minicontrol_viewer_event_e event_type, bundle *event_arg) +{ + /*Need to handle events*/ +} + +static void +_load_lockscreenmini(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + Evas_Object *win = NULL; + + win = minicontrol_create_window("video-minicontrol.LOCKSCREEN", MINICONTROL_TARGET_VIEWER_STOCK_LOCK_SCREEN, _lockscreen_cb); + + if (!win) { + return; + } + elm_win_alpha_set(win, EINA_TRUE); + + pPlayView->win_lockmini = win; + + /* load edje */ + _vp_lockscreenmini_update_layout(pPlayView, false); + + /*evas_object_show(eo);*/ + + return; +} + +//static void +//_mp_lockscreenmini_register_reader(void *data) +//{ +// struct appdata *pPlayView = data; +// MP_CHECK(pPlayView); +//} + +void vp_lockscreenmini_update_winmini_size(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + + double scale = elm_config_scale_get(); + VideoLogDebug("scale: %f", scale); + + if ((scale - 1.7) < 0.0001) { + LOCKSCREEN_MINI_CONTROLLER_WIDTH = 318; + } else if ((scale - 1.8) < 0.0001) { + LOCKSCREEN_MINI_CONTROLLER_WIDTH = 267; + } else if ((scale - 2.4) < 0.0001) { + LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300; + } else if ((scale - 2.6) < 0.0001) { + LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300; + } else if ((scale - 2.8) < 0.0001) { + LOCKSCREEN_MINI_CONTROLLER_WIDTH = 300; + } + + evas_object_resize(pPlayView->win_lockmini, LOCKSCREEN_MINI_CONTROLLER_WIDTH * scale, LOCKSCREEN_MINI_CONTROLLER_HEIGHT * scale); + + return; +} + +int +vp_lockscreenmini_create(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + if (!(pPlayView->lockmini_layout && pPlayView->win_lockmini)) { + _load_lockscreenmini(pPlayView); + if (pPlayView->lockmini_layout == NULL) { + VideoLogError("layout not made"); + return -1; + } +// _vp_lockscreenmini_register_reader(pPlayView); + } + + vp_lockscreenmini_update_winmini_size(pPlayView); + + vp_lockscreenmini_show(pPlayView); + return 0; +} + + +int vp_lockscreenmini_show(PlayView *pPlayView) +{ + VideoLogDebug("minicontroller view show!!"); + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + if (!pPlayView->win_lockmini) { + VideoLogError("pPlayView->win_lockmini is NULL"); + return -1; + } + //MP_CHECK_VAL(!pPlayView->is_lcd_off, -1); + + pPlayView->b_lockmini_show = TRUE; + vp_lockscreenmini_update(pPlayView); + +// FILE *fp = fopen(MP_LSCR_CONTROL, "w"); +// if (fp) { +// fclose(fp); +// } + + evas_object_show(pPlayView->win_lockmini); + return 0; +} + +static void _vp_lockscreenmini_update_btn(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_lockmini) { + VideoLogError("pPlayView->win_lockmini is NULL"); + return; + } + + //MP_CHECK(!pPlayView->is_lcd_off); + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + + VideoLogInfo("nState:%d", nState); + if (nState == VP_MM_PLAYER_STATE_PAUSED) { + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "play_btn_visible", "play_btn"); + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "pause_btn_invisible", "pause_btn"); + } else { + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "play_btn_invisible", "play_btn"); + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "pause_btn_visible", "pause_btn"); + } +} + +static Eina_Bool +_vp_lockscreenmini_btn_update_timer(void *data) +{ + PlayView *pPlayView = (PlayView *)data; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } + + _vp_lockscreenmini_update_btn(pPlayView); + + pPlayView->lockmini_button_timer = NULL; + return EINA_FALSE; +} + +static void _vp_lockscreenmini_update_playpause_btn(PlayView *pPlayView) +{ + VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer); + + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + + VideoLogInfo("nState:%d", nState); + if (nState == VP_MM_PLAYER_STATE_PLAYING || nState == VP_MM_PLAYER_STATE_PAUSED) { + _vp_lockscreenmini_update_btn(pPlayView); + } else { + pPlayView->lockmini_button_timer = ecore_timer_add(1.0, _vp_lockscreenmini_btn_update_timer, (void *)pPlayView); + } +} + +void vp_lockscreenmini_update_control(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_lockmini) { + VideoLogError("pPlayView->win_lockmini is NULL"); + return; + } +// MP_CHECK(!pPlayView->is_lcd_off); + + _vp_lockscreenmini_update_playpause_btn(pPlayView); +} + +static void _vp_lockscreenmini_play_pause_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("play/pause button clicked"); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + VideoLogInfo("nState:%d", nState); + if (nState == VP_MM_PLAYER_STATE_PLAYING) { + /*if playing state then on click it should pause and set button for play*/ + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "play_btn_invisible", "play_btn"); + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "pause_btn_visible", "pause_btn"); + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, LC_CONTROLLER_PAUSE_BUTTON); + } else { + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "play_btn_visible", "play_btn"); + edje_object_signal_emit(elm_layout_edje_get(pPlayView->lockmini_layout), "pause_btn_invisible", "pause_btn"); + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, LC_CONTROLLER_PLAY_BUTTON); + } +} + +static void _vp_lockscreenmini_ff_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button pressed"); + time(&press_time); +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(true, false, false); +// } else { +// vp_play_control_rew(true, false, false); +// } +} + +static void _vp_lockscreenmini_ff_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button unpressed"); + time(&release_time); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if(!pPlayView->lockmini_layout) { + VideoLogError("pPlayView->lockmini_layout is NULL"); + return; + } + + //vp_play_control_ff(false, false, false); + elm_object_signal_emit(pPlayView->lockmini_layout, "signal.button.unpressed", "ff_btn"); +} + +static void _vp_lockscreenmini_ff_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button clicked"); +// if (_vp_minicontroller_is_long_press()) { +// return; +// } +// +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(false, false, true); +// } else { +// vp_play_control_rew(false, false, true); +// } + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, LC_CONTROLLER_FF_BUTTON); +} + +static void _vp_lockscreenmini_rew_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button pressed"); + time(&press_time); +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(true, false, false); +// } else { +// vp_play_control_rew(true, false, false); +// } +} + +static void _vp_lockscreenmini_rew_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button unpressed"); + time(&release_time); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if(!pPlayView->lockmini_layout) { + VideoLogError("pPlayView->lockmini_layout is NULL"); + return; + } + + // vp_play_control_rew(false, false, false); + elm_object_signal_emit(pPlayView->lockmini_layout, "signal.button.unpressed", "rew_btn"); + +} + +static void _vp_lockscreenmini_rew_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button clicked"); + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, LC_CONTROLLER_REW_BUTTON); +} + +/*end of focused UI callbacks*/ + +static void +_vp_lockscreenmini_update_layout(PlayView *pPlayView, bool landscape) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + + VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer); + + if(pPlayView->lockmini_layout) { + evas_object_del(pPlayView->lockmini_layout); + } + pPlayView->lockmini_layout = _load_edj(pPlayView->win_lockmini, LOCKSCREENMINI_EDJ_NAME, "video-lockscreenmini"); + + if (!pPlayView->lockmini_layout) { + VideoLogError("layout making failed"); + return ; + } + + elm_win_resize_object_add(pPlayView->win_lockmini, pPlayView->lockmini_layout); + + /*add focused UI related*/ + pPlayView->lsicon_icon = elm_image_add(pPlayView->minicontroller_layout); + evas_object_size_hint_align_set(pPlayView->lsicon_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(pPlayView->lsicon_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_image_fill_outside_set(pPlayView->lsicon_icon, true); + elm_object_part_content_set(pPlayView->minicontroller_layout, "albumart_image", pPlayView->lsicon_icon); + elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout, pPlayView->lsicon_icon, NULL); + elm_object_focus_allow_set(pPlayView->lsicon_icon, EINA_TRUE); + + /*-------> REW button ------->*/ + Evas_Object *rew_focus_btn = elm_button_add(pPlayView->lockmini_layout); + elm_object_style_set(rew_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->lockmini_layout, "rew_focus", rew_focus_btn); + elm_object_focus_custom_chain_append(pPlayView->lockmini_layout, rew_focus_btn, NULL); + evas_object_smart_callback_add(rew_focus_btn, "clicked", _vp_lockscreenmini_rew_btn_clicked_cb, pPlayView); + evas_object_smart_callback_add(rew_focus_btn, "pressed", _vp_lockscreenmini_rew_btn_pressed_cb, pPlayView); + evas_object_smart_callback_add(rew_focus_btn, "unpressed", _vp_lockscreenmini_rew_btn_unpressed_cb, pPlayView); + + /*-------> play/pause button ------->*/ + Evas_Object *play_pause_focus_btn = elm_button_add(pPlayView->lockmini_layout); + elm_object_style_set(play_pause_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->lockmini_layout, "play_pause_focus", play_pause_focus_btn); + elm_object_focus_custom_chain_append(pPlayView->lockmini_layout, play_pause_focus_btn, NULL); + evas_object_smart_callback_add(play_pause_focus_btn, "clicked", _vp_lockscreenmini_play_pause_btn_clicked_cb, pPlayView); + + /*------->FF button ------->*/ + Evas_Object *ff_focus_btn = elm_button_add(pPlayView->lockmini_layout); + elm_object_style_set(ff_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->lockmini_layout, "ff_focus", ff_focus_btn); + elm_object_focus_custom_chain_append(pPlayView->lockmini_layout, ff_focus_btn, NULL); + evas_object_smart_callback_add(ff_focus_btn, "clicked", _vp_lockscreenmini_ff_btn_clicked_cb, pPlayView); + evas_object_smart_callback_add(ff_focus_btn, "pressed", _vp_lockscreenmini_ff_btn_pressed_cb, pPlayView); + evas_object_smart_callback_add(ff_focus_btn, "unpressed", _vp_lockscreenmini_ff_btn_unpressed_cb, pPlayView); + + _vp_lockscreenmini_update_btn(pPlayView); +} + +static void +_vp_lockscreenmini_title_set(PlayView *pPlayView) +{ + VideoLogDebug("title set"); + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + Evas_Object *label = elm_object_part_content_get(pPlayView->lockmini_layout, "elm.text"); + + char *markup_title = elm_entry_utf8_to_markup(vp_play_util_get_title_from_path(pPlayView->szMediaURL)); + //char *markup_artist = elm_entry_utf8_to_markup(current_item->artist); + + char *title_shadow = g_strdup_printf("far_shadow,bottom shadow_color=#00000080"); + char *title_format = "%s"; + char *title = NULL; + char *title_format_left = "%s"; + + if (markup_title) { + if (strlen(markup_title) + 3 <= 50) { + title = g_strdup_printf(title_format, title_shadow, 30, "FFFFFFFF", "ATO003", markup_title); + } else { + title = g_strdup_printf(title_format_left, title_shadow, 30, "FFFFFFFF", "ATO003", markup_title); + } + } + + /*edje_object_part_text_set(_EDJ(pPlayView->lockmini_layout), "artist.text", markup_artist);*/ + if (!label) { + label = elm_label_add(pPlayView->lockmini_layout); + elm_object_style_set(label, "slide_roll"); + + // set the label for the title slide mode + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO); + elm_label_wrap_width_set(label, 1); + // set the label text + elm_object_text_set(label, title); + evas_object_show(label); + elm_object_part_content_set(pPlayView->lockmini_layout, "elm.text", label); + } else { + elm_object_text_set(label, title); + } + + if (pPlayView->lockmini_visible) { + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS); + elm_label_slide_go(label); + } else { + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_NONE); + elm_label_slide_go(label); + } + + VP_FREE(title); + VP_FREE(markup_title); + evas_object_show(label); +} + +void vp_lockscreenmini_update(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_lockmini) { + VideoLogError("pPlayView->win_lockmini is NULL"); + return; + } + //MP_CHECK(!pPlayView->is_lcd_off); + + /*thumbnail set*/ + char *thumbnail_path = NULL; + vp_media_contents_get_video_thumbnail_path(pPlayView->szMediaURL, &thumbnail_path); + VideoLogInfo("thumbnail = %s:%s", pPlayView->szMediaURL, thumbnail_path); + elm_image_file_set(pPlayView->lsicon_icon, thumbnail_path, NULL); + + vp_lockscreenmini_update_control(pPlayView); + _vp_lockscreenmini_title_set(pPlayView); + evas_object_show(pPlayView->lockmini_layout); + +} + +//int +//mp_lockscreenmini_hide(struct appdata *pPlayView) +//{ +// VideoLogDebug("lockscreenmini view hide!!\n"); +// mp_retvm_if(pPlayView == NULL, -1, "appdata is NULL"); +// MP_CHECK_VAL(pPlayView->win_lockmini, -1); +// +// evas_object_hide(pPlayView->win_lockmini); +// pPlayView->b_lockmini_show = FALSE; +// +// mp_ecore_timer_del(pPlayView->lockmini_progress_timer); +// mp_ecore_timer_del(pPlayView->lockmini_button_timer); +// +// return 0; +// +//} + +int +vp_lockscreenmini_destroy(PlayView *pPlayView) +{ + VideoLogDebug("lockscreenmini view destroy!!"); + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + if (!pPlayView->win_lockmini) { + VideoLogError("pPlayView->win_lockmini is NULL"); + return -1; + } + + if (pPlayView->lockmini_layout != NULL) { + pPlayView->b_lockmini_show = FALSE; + } + + evas_object_hide(pPlayView->win_lockmini); + VP_EVAS_TIMER_DEL(pPlayView->lockmini_button_timer); + pPlayView->lockmini_visible = false; + +// ecore_file_remove(MP_LSCR_CONTROL); + return 0; +} + +//void +//mp_lockscreenmini_visible_set(struct appdata *pPlayView, bool visible) +//{ +// VideoLogDebug("visible: %d", visible); +// MP_CHECK(pPlayView); +// MP_CHECK(pPlayView->win_lockmini); +// +// pPlayView->lockmini_visible = visible; +// _mp_lockscreenmini_title_set(pPlayView); +// mp_lockscreenmini_update_control(pPlayView); +// +// if (visible) { +//#ifdef LOCKSCREEN_ENABLE_PROGRESS +// _lockscreenmini_progress_timer_add(pPlayView); +//#endif +// } else { +// display_state_e lock_state; +// int ret = device_display_get_state(&lock_state); +// if (ret == DEVICE_ERROR_NONE) { +// ERROR_TRACE("[SUCCESSFULL] Return value is %d", ret); +// } else { +// ERROR_TRACE("[ERROR] Return value is %d", ret); +// } +// if (lock_state == DISPLAY_STATE_SCREEN_OFF || lock_state == DISPLAY_STATE_SCREEN_DIM) { +// ERROR_TRACE("timer locks deleted"); +// mp_ecore_timer_del(pPlayView->lockmini_progress_timer); +// } +// } +//} +// +//bool +//mp_lockscreenmini_visible_get(struct appdata *pPlayView) +//{ +// MP_CHECK_FALSE(pPlayView); +// MP_CHECK_FALSE(pPlayView->win_lockmini); +// +// return pPlayView->lockmini_visible; +//} +// +//void mp_lockscreenmini_on_lcd_event(struct appdata *pPlayView, bool lcd_on) +//{ +// VideoLogDebug("lcd_on [%d]", lcd_on); +// MP_CHECK(pPlayView); +// +// if (lcd_on && mp_util_is_now_active_player()) { +// if (pPlayView->player_state == PLAY_STATE_PLAYING) { +// mp_lockscreenmini_show(pPlayView); +// } +// } +// +// mp_lockscreenmini_visible_set(pPlayView, lcd_on); +//} diff --git a/playview/src/widget/vp-play-minicontroller.c b/playview/src/widget/vp-play-minicontroller.c new file mode 100644 index 0000000..1634540 --- /dev/null +++ b/playview/src/widget/vp-play-minicontroller.c @@ -0,0 +1,864 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "vp-play-type-define.h" +#include "vp-play-string-define.h" +#include "vp-play-value-define.h" +#include "vp-play-macro-define.h" + +#include "vp-play-minicontroller.h" +#include "vp-play-view.h" +#include "vp-play-view-priv.h" +#include "vp-play-normal-view.h" +#include "vp-mm-player.h" +#include "vp-play-util.h" +#include "vp-media-contents.h" +#include "vp-play-lockscreenmc.h" + +/* check temp */ +#include "vp-play-log.h" +#include "vp-util.h" +#include "vp-file-util.h" +#include "vp-avrcp.h" + +#define MINI_CONTROLLER_HEIGHT (93) +#define WL_INDI_H 27 //Window Layout Indicator Height +#define PAUSE_TIME_OUT 120. + +static time_t press_time; +static time_t release_time; +int MINI_CONTROLLER_WIDTH; +int MINI_CONTROLLER_WIDTH_LANDSCAPE; + +static void _minicontroller_action_cb(void *data, Evas_Object * obj, const char *emission, const char *source); +static Evas_Object *_load_edj(Evas_Object * parent, const char *file, const char *group); +static void _load_minicontroller(PlayView *pPlayView); +static void _vp_minicontroller_update_layout(PlayView *pPlayView, bool landscape); +static void _vp_minicontroller_title_set(PlayView *pPlayView); + +static bool _vp_minicontroller_is_long_press() +{ + bool result = false; + VideoLogDebug("press time is %s", ctime(&press_time)); + VideoLogDebug("release time is %s", ctime(&release_time)); + if (difftime(release_time, press_time) > 1.0) { + result = true; + } + + memset(&release_time, 0, sizeof(time_t)); + memset(&press_time, 0, sizeof(time_t)); + + VideoLogDebug("is %s long press", result ? "" : "not"); + return result; +} + +static bool +_vp_minicontroller_landscape_is(PlayView *pPlayView, video_play_rotate_t angle) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return false; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return false; + } + + bool landscape = false; + if (angle == VIDEO_PLAY_ROTATE_90 || angle == VIDEO_PLAY_ROTATE_270) { + landscape = true; + } else { + landscape = false; + } + return landscape; +} + +//static void +//_vp_minicontroller_action_show_player_view(struct appdata *ad) +//{ +// startfunc; +// MP_CHECK(ad); +//#ifndef MP_SOUND_PLAYER +// if (GET_PLAYER_VIEW != vp_view_mgr_get_top_view(GET_VIEW_MGR)) { +// if (!ad->is_focus_out) { +// minicontrol_send_event(ad->win_minicon, MINICONTROL_EVENT_REQUEST_HIDE, NULL); +// } else { +// vp_util_app_resume(); +// } +// vp_common_show_player_view(MP_PLAYER_NORMAL, true, false, true); +// } else +//#endif +// { +// if (!ad->is_focus_out) { +// minicontrol_send_event(ad->win_minicon, MINICONTROL_EVENT_REQUEST_HIDE, NULL); +// } else { +// vp_util_app_resume(); +// } +// } +//} + +static void +_minicontroller_action_cb(void *data, Evas_Object * obj, const char *emission, const char *source) +{ + PlayView *pPlayView = (PlayView *)data; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } + if (emission) { + if (!g_strcmp0(emission, "close_btn_clicked")) { + vp_minicontroller_destroy(pPlayView); + } else if (!g_strcmp0(emission, "albumart_clicked")) { + // EVENT_TRACE("albumart"); + // _vp_minicontroller_action_show_player_view(ad); + return; + } + } + +} + +static Evas_Object * +_load_edj(Evas_Object * parent, const char *file, const char *group) +{ + Evas_Object *eo; + int r; + + eo = elm_layout_add(parent); + if (eo) { + char edje_path[1024] ={0}; + char * path = app_get_resource_path(); + + if (path == NULL) { + VideoLogError("path is null"); + return NULL; + } + snprintf(edje_path, 1024, "%s%s/%s", path, "edje", file); + + r = elm_layout_file_set(eo, edje_path, group); + free(path); + if (!r) { + evas_object_del(eo); + return NULL; + } + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, eo); + evas_object_show(eo); + } + + return eo; +} + +static void _quick_panel_cb(minicontrol_viewer_event_e event_type, bundle *event_arg) +{ +// startfunc; +// struct appdata *ad = vp_util_get_appdata(); +// if (event_type == MINICONTROL_EVENT_REQUEST_HIDE) { +// DEBUG_TRACE("CLOSE"); +// if (!vp_util_is_other_player_playing()) { +// int ret_set = 0; +// ret_set = preference_set_int(PREF_MUSIC_STATE, PREF_MUSIC_OFF); +// if (ret_set) { +// ERROR_TRACE("set preference failed"); +// } +// } +// vp_play_control_reset_ff_rew(); +// xD = 0; +// yD = 0; +// xDMove = 0; +// yDMove = 0; +// xU = 0; +// yU = 0; +// if (!ad->is_sdcard_removed) { +// elm_exit(); +// } +// ad->is_sdcard_removed = false; +// } +} + +static void +_load_minicontroller(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + Evas_Object *win = NULL; + win = minicontrol_create_window("musicplayer-mini", MINICONTROL_TARGET_VIEWER_QUICK_PANEL, _quick_panel_cb); + + if (!win) { + VideoLogError("window is NULL"); + return; + } + + elm_win_alpha_set(win, EINA_TRUE); + + pPlayView->win_minicon = win; + + /*check initial rotation*/ + int nAngle = elm_win_rotation_get((Evas_Object *)pPlayView->pWin); + video_play_rotate_t nRotate = VIDEO_PLAY_ROTATE_NONE; + + switch (nAngle) { + case 0: + nRotate = VIDEO_PLAY_ROTATE_NONE; + break; + case 90: + nRotate = VIDEO_PLAY_ROTATE_90; + break; + case 180: + nRotate = VIDEO_PLAY_ROTATE_180; + break; + case 270: + nRotate = VIDEO_PLAY_ROTATE_270; + break; + } + bool landscape = _vp_minicontroller_landscape_is(pPlayView, nAngle); + VideoLogDebug("landscape ========== %d",landscape); + _vp_minicontroller_update_layout(pPlayView, landscape); + + //evas_object_show(eo); + + return; +} + +//static void +//_vp_minicontroller_register_reader(void *data) +//{ +// struct appdata *ad = data; +// MP_CHECK(ad); +//} +// + +void vp_minicontroller_update_winmini_size(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + int angle = elm_win_rotation_get((Evas_Object *)pPlayView->pWin); + + VideoLogError("angle======================%d",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(); + VideoLogDebug("scale: %f and width: %d and height: %d", scale, w, MINI_CONTROLLER_HEIGHT); + evas_object_resize(pPlayView->win_minicon, w * scale, MINI_CONTROLLER_HEIGHT * scale); + + return; +} + +int vp_minicontroller_create(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + + //MP_CHECK_VAL(!ad->is_lcd_off, -1); + + if (!(pPlayView->minicontroller_layout && pPlayView->win_minicon)) { + + _load_minicontroller(pPlayView); + if (pPlayView->minicontroller_layout == NULL) { + VideoLogError("ERROR"); + return -1; + } + + //vp_language_mgr_register_object(ad->minicontroller_layout, OBJ_TYPE_EDJE_OBJECT, "elm.text.app_name", "IDS_COM_BODY_MUSIC"); + //elm_object_part_text_set(ad->minicontroller_layout, "elm.text.app_name", GET_SYS_STR("IDS_COM_BODY_MUSIC")); + } + + vp_minicontroller_update_winmini_size(pPlayView); + + vp_minicontroller_show(pPlayView); + _vp_minicontroller_title_set(pPlayView); + + return 0; +} + + +int +vp_minicontroller_show(PlayView *pPlayView) +{ + VideoLogDebug("Showing controller!"); + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return -1; + } +// MP_CHECK_VAL(!ad->is_lcd_off, -1); +// /* Not show minicontrol when current track not exsit */ +// MP_CHECK_VAL(ad->current_track_info, -1); +// + pPlayView->b_minicontroller_show = TRUE; + vp_minicontroller_update(pPlayView, true); + evas_object_show(pPlayView->win_minicon); + return 0; + +} + +static void _vp_minicontroller_update_btn(PlayView *pPlayView) +{ + VideoLogError("Updating play/pause button!!!!!!!!!!!"); + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return; + } + //MP_CHECK(!ad->is_lcd_off); + + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + + VideoLogInfo("nState:%d", nState); + if (nState == VP_MM_PLAYER_STATE_PLAYING) { + elm_object_signal_emit(pPlayView->minicontroller_layout, "set_pause", "c_source"); + } else { + elm_object_signal_emit(pPlayView->minicontroller_layout, "set_play", "c_source"); + } + +} + +static Eina_Bool +_vp_minicontroller_btn_update_timer(void *data) +{ + PlayView *pPlayView = (PlayView *)data; + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + } + + _vp_minicontroller_update_btn(pPlayView); + + pPlayView->minicon_button_timer = NULL; + return EINA_FALSE; +} + +static void _vp_minicontroller_update_playpause_btn(PlayView *pPlayView) +{ + VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer); + + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + VideoLogInfo("nState:%d", nState); + + if (nState == VP_MM_PLAYER_STATE_PLAYING || nState == VP_MM_PLAYER_STATE_PAUSED) { + _vp_minicontroller_update_btn(pPlayView); + } else { + pPlayView->minicon_button_timer = ecore_timer_add(1.0, _vp_minicontroller_btn_update_timer, pPlayView); + } +} + +void +vp_minicontroller_update_control(PlayView *pPlayView) +{ + VideoLogDebug("Updating controller!!!!"); + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return; + } +// MP_CHECK(!ad->is_lcd_off); + + _vp_minicontroller_update_playpause_btn(pPlayView); +} + +static void _vp_minicontroller_play_pause_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("play/pause button clicked"); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + VideoLogInfo("nState:%d", nState); + if (nState == VP_MM_PLAYER_STATE_PLAYING) { + /*if playing state then on click it should pause and set button for play*/ + elm_object_signal_emit(pPlayView->minicontroller_layout, "set_play", "c_source"); + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, CONTROLLER_PAUSE_BUTTON); + } else { + elm_object_signal_emit(pPlayView->minicontroller_layout, "set_pause", "c_source"); + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, CONTROLLER_PLAY_BUTTON); + } +} + +static void _vp_minicontroller_ff_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button pressed"); + time(&press_time); +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(true, false, false); +// } else { +// vp_play_control_rew(true, false, false); +// } +} + +static void _vp_minicontroller_ff_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button unpressed"); + time(&release_time); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if(!pPlayView->minicontroller_layout) { + VideoLogError("pPlayView->minicontroller_layout is NULL"); + return; + } + + //vp_play_control_ff(false, false, false); + elm_object_signal_emit(pPlayView->minicontroller_layout, "ff_btn_unpressed", "c_source"); +} + +static void _vp_minicontroller_ff_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("ff button clicked"); +// if (_vp_minicontroller_is_long_press()) { +// return; +// } +// +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(false, false, true); +// } else { +// vp_play_control_rew(false, false, true); +// } + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, CONTROLLER_FF_BUTTON); +} + +static void +_vp_minicontroller_ff_btn_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ +// startfunc; +// vp_play_control_reset_ff_rew(); +} + +static void _vp_minicontroller_rew_btn_pressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button pressed"); + time(&press_time); +// char *source = (char *)data; +// if (!g_strcmp0(source, CONTROLLER_FF_SOURCE)) { +// vp_play_control_ff(true, false, false); +// } else { +// vp_play_control_rew(true, false, false); +// } +} + +static void _vp_minicontroller_rew_btn_unpressed_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button unpressed"); + time(&release_time); + + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if(!pPlayView->minicontroller_layout) { + VideoLogError("pPlayView->minicontroller_layout is NULL"); + return; + } + + // vp_play_control_rew(false, false, false); + elm_object_signal_emit(pPlayView->minicontroller_layout, "rew_btn_unpressed", "c_source"); + +} + +static void _vp_minicontroller_rew_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + VideoLogDebug("rew button clicked"); +// if (_vp_minicontroller_is_long_press()) { +// return; +// } + PlayView *pPlayView = (PlayView *)data; + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, CONTROLLER_REW_BUTTON); +} + +static void +_vp_minicontroller_rew_btn_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ +// startfunc; +// vp_play_control_reset_ff_rew(); +} + +/*end of focused UI callbacks*/ + +static void +_vp_minicontroller_update_layout(PlayView *pPlayView, bool landscape) +{ + if(!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + + VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer); + + //vp_evas_object_del(pPlayView->minicontroller_layout); + + if (landscape) { + VideoLogDebug("angle: 90 or 270"); + pPlayView->minicontroller_layout = _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME, "video-minicontroller-ld"); + } else { + VideoLogDebug("angle: 0"); + pPlayView->minicontroller_layout = _load_edj(pPlayView->win_minicon, MINICON_EDJ_NAME, "video-minicontroller"); + } + + if (!pPlayView->minicontroller_layout) { + return ; + } + + elm_win_resize_object_add(pPlayView->win_minicon, pPlayView->minicontroller_layout); + + /*add focused UI related*/ + pPlayView->minicon_icon = elm_image_add(pPlayView->minicontroller_layout); + evas_object_size_hint_align_set(pPlayView->minicon_icon, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(pPlayView->minicon_icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_image_fill_outside_set(pPlayView->minicon_icon, true); + elm_object_part_content_set(pPlayView->minicontroller_layout, "albumart_image", pPlayView->minicon_icon); + elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout, pPlayView->minicon_icon, NULL); + elm_object_focus_allow_set(pPlayView->minicon_icon, EINA_TRUE); + + /*-------> REW button ------->*/ + Evas_Object *rew_focus_btn = elm_button_add(pPlayView->minicontroller_layout); + elm_object_style_set(rew_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->minicontroller_layout, "rew_btn_focus", rew_focus_btn); + + elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout, rew_focus_btn, NULL); + evas_object_smart_callback_add(rew_focus_btn, "clicked", _vp_minicontroller_rew_btn_clicked_cb, pPlayView); + evas_object_smart_callback_add(rew_focus_btn, "pressed", _vp_minicontroller_rew_btn_pressed_cb, pPlayView); + evas_object_smart_callback_add(rew_focus_btn, "unpressed", _vp_minicontroller_rew_btn_unpressed_cb, pPlayView); + evas_object_event_callback_add(rew_focus_btn, EVAS_CALLBACK_DEL, _vp_minicontroller_rew_btn_del_cb, NULL); + + /*-------> play/pause button ------->*/ + Evas_Object *play_pause_focus_btn = elm_button_add(pPlayView->minicontroller_layout); + elm_object_style_set(play_pause_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->minicontroller_layout, "play_pause_focus", play_pause_focus_btn); + elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout, play_pause_focus_btn, NULL); + evas_object_smart_callback_add(play_pause_focus_btn, "clicked", _vp_minicontroller_play_pause_btn_clicked_cb, pPlayView); + + /*------->FF button ------->*/ + Evas_Object *ff_focus_btn = elm_button_add(pPlayView->minicontroller_layout); + elm_object_style_set(ff_focus_btn, "focus"); + elm_object_part_content_set(pPlayView->minicontroller_layout, "ff_btn_focus", ff_focus_btn); + + elm_object_focus_custom_chain_append(pPlayView->minicontroller_layout, ff_focus_btn, NULL); + evas_object_smart_callback_add(ff_focus_btn, "clicked", _vp_minicontroller_ff_btn_clicked_cb, pPlayView); + evas_object_smart_callback_add(ff_focus_btn, "pressed", _vp_minicontroller_ff_btn_pressed_cb, pPlayView); + evas_object_smart_callback_add(ff_focus_btn, "unpressed", _vp_minicontroller_ff_btn_unpressed_cb, pPlayView); + evas_object_event_callback_add(ff_focus_btn, EVAS_CALLBACK_DEL, _vp_minicontroller_ff_btn_del_cb, NULL); + + /*-------> close button ------->*/ + edje_object_signal_callback_add(_EDJ(pPlayView->minicontroller_layout), "*", "*", _minicontroller_action_cb, pPlayView); + _vp_minicontroller_update_btn(pPlayView); +// _vp_minicontroller_register_reader(pPlayView); + +} + +static void +_vp_minicontroller_title_set(PlayView *pPlayView) +{ + if (!pPlayView) { + VideoLogError("pPlayView is null"); + return; + } + if (!pPlayView->minicontroller_layout) { + VideoLogError("pPlayView->minicontroller_layout is null"); + return; + } + Evas_Object *label = elm_object_part_content_get(pPlayView->minicontroller_layout, "elm.text"); + + int r = 0; + int g = 0; + int b = 0; + int a = 255; + + //pTitle = vp_play_util_get_title_from_path(pPlayView->szMediaURL); + char *markup_title = elm_entry_utf8_to_markup(vp_play_util_get_title_from_path(pPlayView->szMediaURL)); + //char *markup_artist = elm_entry_utf8_to_markup(current_item->artist); + char *title_format = "%s"; + char *title = NULL; + if ((markup_title == NULL || strlen(markup_title) == 0) ){ + // && (markup_artist == NULL || strlen(markup_artist) == 0)) { + title = NULL; + } else { + title = g_strdup_printf(title_format, 24, r, g, b, a, markup_title); + } + + if (!label) { + label = elm_label_add(pPlayView->minicontroller_layout); + elm_object_style_set(label, "slide_roll"); + + // set the label for the title slide mode + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO); + elm_label_wrap_width_set(label, 1); + // set the label text + elm_object_text_set(label, title); + evas_object_show(label); + elm_object_part_content_set(pPlayView->minicontroller_layout, "elm.text", label); + } else { + elm_object_text_set(label, title); + } + + elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO); + elm_label_slide_go(label); + + VP_FREE(title); + VP_FREE(markup_title); +// SAFE_FREE(markup_artist); + evas_object_show(label); + +} + +void +vp_minicontroller_update(PlayView *pPlayView, bool with_title) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return; + } +// MP_CHECK(!ad->is_lcd_off); + + //_vp_minicontroller_update_btn(pPlayView); + VideoLogDebug("Updating thumbnail!!!!!!!!!!!!!!"); + char *thumbnail_path = NULL; + vp_media_contents_get_video_thumbnail_path(pPlayView->szMediaURL, &thumbnail_path); + VideoLogInfo("thumbnail = %s:%s", pPlayView->szMediaURL, thumbnail_path); + elm_image_file_set(pPlayView->minicon_icon, thumbnail_path, NULL); + evas_object_show(pPlayView->minicon_icon); + + if (with_title) { + VideoLogDebug("Updating title!!!!!!!!!!!!!!"); + _vp_minicontroller_title_set(pPlayView); + } + + evas_object_show(pPlayView->minicontroller_layout); +} +/* +int +vp_minicontroller_hide(struct appdata *ad) +{ + DEBUG_TRACE("minicontroller view hide!!\n"); + vp_retvm_if(ad == NULL, -1, "appdata is NULL"); + MP_CHECK_VAL(ad->win_minicon, -1); + + evas_object_hide(ad->win_minicon); + ad->b_minicontroller_show = FALSE; + + vp_ecore_timer_del(ad->minicon_progress_timer); + vp_ecore_timer_del(ad->minicon_button_timer); + + return 0; + +} +*/ +int vp_minicontroller_destroy(PlayView *pPlayView) +{ + VideoLogDebug("minicontroller view destroy!!"); + + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return -1; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return -1; + } + /*stop playing before destroy*/ + vp_mm_player_state_t nState = vp_play_normal_view_get_player_state(pPlayView); + if (nState == VP_MM_PLAYER_STATE_PLAYING) { + /*if playing state then on click it should pause and set button for play*/ + elm_object_signal_emit(pPlayView->minicontroller_layout, "set_pause", "c_source"); + vp_play_normal_view_on_controller_button_press(pPlayView->pNormalView, CONTROLLER_PAUSE_BUTTON); + } + + if (pPlayView->win_lockmini) { + vp_lockscreenmini_destroy(pPlayView); + } + + if (pPlayView->minicontroller_layout != NULL) { + evas_object_hide(pPlayView->minicontroller_layout); + evas_object_del(pPlayView->minicontroller_layout); + pPlayView->minicontroller_layout = NULL; + pPlayView->b_minicontroller_show = FALSE; + } + if (pPlayView->win_minicon) + { + evas_object_hide(pPlayView->win_minicon); + evas_object_del(pPlayView->win_minicon); + pPlayView->win_minicon = NULL; + } + //VP_EVAS_TIMER_DEL(pPlayView->minicon_progress_timer); + VP_EVAS_TIMER_DEL(pPlayView->minicon_button_timer); + + pPlayView->minicon_visible = false; + + return 0; +} + +void vp_minicontroller_rotate(PlayView *pPlayView, video_play_rotate_t angle) +{ + if (!pPlayView) { + VideoLogError("pPlayView is NULL"); + return; + } + if (!pPlayView->win_minicon) { + VideoLogError("pPlayView->win_minicon is NULL"); + return; + } + if (!pPlayView->minicontroller_layout) { + VideoLogError("pPlayView->minicontroller_layout is NULL"); + return; + } + + int w = 0; + const char *signal = NULL; + bool landscape = _vp_minicontroller_landscape_is(pPlayView, angle); + if (landscape) { + VideoLogError("llllllllllllllllllllllllllllllllllll-====%d",landscape); + signal = "sig_set_landscape_mode"; + w = MINI_CONTROLLER_WIDTH_LANDSCAPE; + landscape = true; + } else { + signal = "sig_set_portrait_mode"; + w = MINI_CONTROLLER_WIDTH; + landscape = false; + } + + elm_object_signal_emit(pPlayView->minicontroller_layout, signal, "c_source"); + + double scale = elm_config_scale_get(); + evas_object_resize(pPlayView->win_minicon, w * scale, MINI_CONTROLLER_HEIGHT * scale); +// _vp_minicontroller_update_layout(pPlayView, landscape); + vp_minicontroller_update(pPlayView, true); +} + +//void +//vp_minicontroller_visible_set(struct appdata *ad, bool visible) +//{ +// DEBUG_TRACE("visible: %d", visible); +// MP_CHECK(ad); +// MP_CHECK(ad->win_minicon); +// MP_CHECK(ad->minicontroller_layout); +// +// ad->minicon_visible = visible; +// _vp_minicontroller_title_set(ad); +// vp_minicontroller_update_control(ad); +// +// if (visible) { +//#ifdef MINICONTROLLER_ENABLE_PROGRESS +// _minicontroller_progress_timer_add(ad); +//#endif +// } else { +// display_state_e lock_state; +// int ret = device_display_get_state(&lock_state); +// if (ret == DEVICE_ERROR_NONE) { +// ERROR_TRACE("[SUCCESSFULL] return value %d", ret); +// } else { +// ERROR_TRACE("[ERROR] Return value is %d", ret); +// } +// +// DEBUG_TRACE("lock_state: %d", lock_state); +// if (lock_state == DISPLAY_STATE_SCREEN_OFF || lock_state == DISPLAY_STATE_SCREEN_DIM) { +// ERROR_TRACE("Timer deleted"); +// vp_ecore_timer_del(ad->minicon_progress_timer); +// } +// } +//} +// +//bool +//vp_minicontroller_visible_get(struct appdata *ad) +//{ +// MP_CHECK_FALSE(ad); +// MP_CHECK_FALSE(ad->win_minicon); +// +// return ad->minicon_visible; +//} +// +//void vp_minicontroller_on_lcd_event(struct appdata *ad, bool lcd_on) +//{ +// DEBUG_TRACE("lcd_on [%d]", lcd_on); +// MP_CHECK(ad); +// MP_CHECK(ad->win_minicon); +// +// if (lcd_on && vp_util_is_now_active_player()) { +// vp_minicontroller_show(ad); +// } +// +// vp_minicontroller_visible_set(ad, lcd_on); +//} +// +//void vp_minicontroller_update_progressbar(struct appdata *ad) +//{ +//#ifdef MINICONTROLLER_ENABLE_PROGRESS +// _vp_minicontroller_update_elapsed_time(ad, false); +//#endif +//} diff --git a/project_def.prop b/project_def.prop index 2a0ed76..5b0d53e 100644 --- a/project_def.prop +++ b/project_def.prop @@ -9,7 +9,7 @@ type = app profile = mobile-3.0 # C Sources -USER_SRCS = playview/src/widget/vp-play-more.c playview/src/core/vp-avrcp.c playview/src/widget/vp-play-button.c src/common/mp-rotate-ctrl.c src/feature/mp-util-move.c src/common/mp-util-preference.c playview/src/feature/vp-subtitle-size.c src/view/mp-video-list-view-normal.c src/common/mp-video-info-ctrl.c src/viewMgr/videos-view-mgr.c playview/src/feature/vp-subtitle-color.c playview/src/core/vp-hollic.c src/view/mp-video-list-view-thumbnail.c src/view/mp-video-list-folder-share-via-view.c common/src/vp-chapter-db.c playview/src/core/vp-image-util.c playview/src/core/vp-multi-path.c playview/src/feature/vp-subtitle-edge.c src/view/mp-video-list-view-folder.c playview/src/widget/vp-play-volume-popup.c src/common/mp-util-media-service.c playview/src/core/vp-media-contents.c playview/src/feature/vp-play-speed.c src/widget/mp-video-list-sort-ctrl.c src/widget/mp-external-ug.c src/widget/mp-footer-toolbar.c playview/src/feature/vp-repeat.c playview/src/feature/vp-subtitle-bg-color.c common/src/vp-preview-db.c playview/src/core/vp-sensor.c src/widget/mp-video-view-popup-ctrl.c src/view/mp-video-list-view-main.c playview/src/core/vp-device.c src/feature/mp-launching-video-displayer.c playview/src/feature/vp-audio-track.c src/view/mp-video-list-view-item-of-folder.c playview/src/feature/vp-subtitle.c playview/src/feature/vp-share.c common/src/vp-thumb-db.c playview/src/feature/vp-detail.c src/view/mp-video-list-personal-view.c playview/src/feature/vp-capture.c playview/src/core/vp-media-key.c src/common/mp-util.c playview/src/widget/vp-play-loading-ani.c src/common/mp-drm-ctrl.c playview/src/widget/vp-play-progressbar.c src/video-player.c src/view/mp-video-list-share-via-view.c src/common/mp-util-config.c playview/src/view/vp-play-normal-view.c src/view/mp-video-list-remove-view.c src/widget/mp-util-widget-ctrl.c playview/src/widget/vp-play-subtitle.c common/src/vp-util.c src/view/mp-video-list-view-select.c playview/src/feature/vp-setting.c core/src/vp-drm.c video-downloader/src/VppDownload.c src/view/mp-video-list-personal-ctrl.c src/widget/mp-video-list-option-ctrl.c src/common/mp-video-sound-manager.c playview/src/common/vp-play-util.c playview/src/widget/vp-play-popup.c playview/src/common/vp-play-ug.c playview/src/vp-play-view.c common/src/vp-file-util.c playview/src/feature/vp-sound-path.c playview/src/common/vp-play-preference.c common/src/vp-pinch-zoom.c src/view/mp-video-list-remove-ctrl.c src/view/mp-library-view-mgr.c common/src/vp-media-content-util.c common/src/vp-db-util.c playview/src/widget/vp-play-bookmark.c playview/src/feature/vp-subtitle-select.c playview/src/widget/vp-play-volume.c src/view/mp-video-detail-view.c playview/src/feature/vp-zoom-guide.c src/view/mp-video-search-view.c playview/src/feature/vp-subtitle-font.c feature/src/vp-thumb-gen.c src/common/mp-video-util-db-controller.c playview/src/core/vp-mm-player.c feature/src/vp-feature-util.c playview/src/feature/vp-subtitle-track.c src/widget/mp-video-rename-ctrl.c playview/src/core/vp-device-language.c playview/src/core/vp-sound.c playview/src/feature/vp-subtitle-alignment.c src/widget/mp-video-list-view-as-ctrl.c playview/src/widget/vp-play-brightness-popup.c playview/src/feature/vp-sound-alive.c playview/src/common/vp-play-config.c src/view/mp-video-list-view-common.c playview/src/feature/vp-subtitle-sync.c src/widget/mp-video-nocontent-layout.c src/widget/mp-video-list-auto-play-ctrl.c +USER_SRCS = playview/src/widget/vp-play-more.c playview/src/core/vp-avrcp.c playview/src/widget/vp-play-button.c src/common/mp-rotate-ctrl.c src/feature/mp-util-move.c src/common/mp-util-preference.c playview/src/feature/vp-subtitle-size.c src/view/mp-video-list-view-normal.c src/common/mp-video-info-ctrl.c src/viewMgr/videos-view-mgr.c playview/src/feature/vp-subtitle-color.c playview/src/core/vp-hollic.c src/view/mp-video-list-view-thumbnail.c src/view/mp-video-list-folder-share-via-view.c common/src/vp-chapter-db.c playview/src/core/vp-image-util.c playview/src/core/vp-multi-path.c playview/src/feature/vp-subtitle-edge.c src/view/mp-video-list-view-folder.c playview/src/widget/vp-play-volume-popup.c src/common/mp-util-media-service.c playview/src/core/vp-media-contents.c playview/src/feature/vp-play-speed.c src/widget/mp-video-list-sort-ctrl.c src/widget/mp-external-ug.c src/widget/mp-footer-toolbar.c playview/src/feature/vp-repeat.c playview/src/feature/vp-subtitle-bg-color.c common/src/vp-preview-db.c playview/src/core/vp-sensor.c src/widget/mp-video-view-popup-ctrl.c src/view/mp-video-list-view-main.c playview/src/core/vp-device.c src/feature/mp-launching-video-displayer.c playview/src/feature/vp-audio-track.c src/view/mp-video-list-view-item-of-folder.c playview/src/feature/vp-subtitle.c playview/src/feature/vp-share.c common/src/vp-thumb-db.c playview/src/feature/vp-detail.c src/view/mp-video-list-personal-view.c playview/src/feature/vp-capture.c playview/src/core/vp-media-key.c src/common/mp-util.c playview/src/widget/vp-play-loading-ani.c src/common/mp-drm-ctrl.c playview/src/widget/vp-play-progressbar.c src/video-player.c src/view/mp-video-list-share-via-view.c src/common/mp-util-config.c playview/src/view/vp-play-normal-view.c src/view/mp-video-list-remove-view.c src/widget/mp-util-widget-ctrl.c playview/src/widget/vp-play-subtitle.c common/src/vp-util.c src/view/mp-video-list-view-select.c playview/src/feature/vp-setting.c core/src/vp-drm.c video-downloader/src/VppDownload.c src/view/mp-video-list-personal-ctrl.c src/widget/mp-video-list-option-ctrl.c src/common/mp-video-sound-manager.c playview/src/common/vp-play-util.c playview/src/widget/vp-play-popup.c playview/src/common/vp-play-ug.c playview/src/vp-play-view.c common/src/vp-file-util.c playview/src/feature/vp-sound-path.c playview/src/common/vp-play-preference.c common/src/vp-pinch-zoom.c src/view/mp-video-list-remove-ctrl.c src/view/mp-library-view-mgr.c common/src/vp-media-content-util.c common/src/vp-db-util.c playview/src/widget/vp-play-bookmark.c playview/src/feature/vp-subtitle-select.c playview/src/widget/vp-play-volume.c src/view/mp-video-detail-view.c playview/src/feature/vp-zoom-guide.c src/view/mp-video-search-view.c playview/src/feature/vp-subtitle-font.c feature/src/vp-thumb-gen.c src/common/mp-video-util-db-controller.c playview/src/core/vp-mm-player.c feature/src/vp-feature-util.c playview/src/feature/vp-subtitle-track.c src/widget/mp-video-rename-ctrl.c playview/src/core/vp-device-language.c playview/src/core/vp-sound.c playview/src/feature/vp-subtitle-alignment.c src/widget/mp-video-list-view-as-ctrl.c playview/src/widget/vp-play-brightness-popup.c playview/src/feature/vp-sound-alive.c playview/src/common/vp-play-config.c src/view/mp-video-list-view-common.c playview/src/feature/vp-subtitle-sync.c src/widget/mp-video-nocontent-layout.c src/widget/mp-video-list-auto-play-ctrl.c playview/src/widget/vp-play-minicontroller.c playview/src/widget/vp-play-lockscreenmc.c # EDC Sources USER_EDCS = @@ -59,7 +59,7 @@ USER_EDCS_FONT_DIRS_ABS = # EDC Flags USER_EXT_EDC_KEYS = EDC0 -USER_EXT_EDC0_EDCS = res/edje/vp-custom-winset-style.edc playview/res/edje/pv-brightness-popup.edc playview/res/edje/pv-normal-top-control.edc res/edje/vp-main-listview-internal.edc playview/res/edje/pv-speed-popup.edc res/edje/vp-remove-list-internal.edc res/edje/vp-ctxpopup-option.edc res/edje/vp-device-list-internal.edc res/edje/vp-search-view-internal.edc playview/res/edje/pv-chapter-main-new.edc res/edje/vp-thumbnail-view.edc playview/res/edje/pv-trim-control.edc playview/res/edje/pv-volume.edc playview/res/edje/pv-progressbar.edc res/edje/vp-images.edc playview/res/edje/pv-normal-control.edc playview/res/edje/pv-tag-buddy.edc playview/res/edje/pv-gesture.edc playview/res/edje/pv-volume-popup.edc playview/res/edje/pv-multi-main.edc playview/res/edje/pv-minicontroller.edc playview/res/edje/pv-zoom-guide.edc res/edje/landscape_thumbnail.edc playview/res/edje/pv-subtitle-color-popup.edc playview/res/edje/pv-popup.edc res/shared/res/video.edc res/edje/panel.edc playview/res/edje/pv-sensor-popup.edc playview/res/edje/pv-bookmark-item.edc res/edje/vp-main-layout.edc playview/res/edje/pv-subtitle.edc res/edje/vp-motion-popup.edc res/edje/popup_progressbar.edc playview/res/edje/pv-custom-winset.edc res/edje/vp-main-listview-preview.edc res/edje/vp-naviframe.edc playview/res/edje/pv-resource.edc playview/res/edje/pv-bookmark.edc playview/res/edje/pv-trim-item.edc playview/res/edje/pv-normal-function.edc res/edje/vp-speedbox-popup.edc playview/res/edje/pv-trim-top-control.edc playview/res/edje/pv-normal-main.edc playview/res/edje/pv-tag-preview.edc playview/res/edje/pv-trim-main.edc res/edje/vp-genlist-no-item.edc playview/res/edje/pv-colorselector.edc +USER_EXT_EDC0_EDCS = res/edje/vp-custom-winset-style.edc playview/res/edje/pv-brightness-popup.edc playview/res/edje/pv-normal-top-control.edc res/edje/vp-main-listview-internal.edc playview/res/edje/pv-speed-popup.edc res/edje/vp-remove-list-internal.edc res/edje/vp-ctxpopup-option.edc res/edje/vp-device-list-internal.edc res/edje/vp-search-view-internal.edc playview/res/edje/pv-chapter-main-new.edc res/edje/vp-thumbnail-view.edc playview/res/edje/pv-trim-control.edc playview/res/edje/pv-volume.edc playview/res/edje/pv-progressbar.edc res/edje/vp-images.edc playview/res/edje/pv-normal-control.edc playview/res/edje/pv-tag-buddy.edc playview/res/edje/pv-gesture.edc playview/res/edje/pv-volume-popup.edc playview/res/edje/pv-multi-main.edc playview/res/edje/pv-minicontroller.edc playview/res/edje/pv-zoom-guide.edc res/edje/landscape_thumbnail.edc playview/res/edje/pv-subtitle-color-popup.edc playview/res/edje/pv-popup.edc res/shared/res/video.edc res/edje/panel.edc playview/res/edje/pv-sensor-popup.edc playview/res/edje/pv-bookmark-item.edc res/edje/vp-main-layout.edc playview/res/edje/pv-subtitle.edc res/edje/vp-motion-popup.edc res/edje/popup_progressbar.edc playview/res/edje/pv-custom-winset.edc res/edje/vp-main-listview-preview.edc res/edje/vp-naviframe.edc playview/res/edje/pv-resource.edc playview/res/edje/pv-bookmark.edc playview/res/edje/pv-trim-item.edc playview/res/edje/pv-normal-function.edc res/edje/vp-speedbox-popup.edc playview/res/edje/pv-trim-top-control.edc playview/res/edje/pv-normal-main.edc playview/res/edje/pv-tag-preview.edc playview/res/edje/pv-trim-main.edc res/edje/vp-genlist-no-item.edc playview/res/edje/pv-colorselector.edc playview/res/edje/pv-lockscreenmini.edc USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje/images playview/res/edje/images res/images USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS = USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds res/edje diff --git a/vp-main/project_def.prop b/vp-main/project_def.prop index 87fa6b7..d0a1832 100644 --- a/vp-main/project_def.prop +++ b/vp-main/project_def.prop @@ -9,7 +9,7 @@ type = app profile = mobile-3.0 # C Sources -USER_SRCS = src/serviceParser/vp-service-parser.c src/vp-main.c ../playview/src/core/vp-media-key.c ../src/view/mp-library-view-mgr.c ../playview/src/feature/vp-subtitle-size.c ../playview/src/feature/vp-share.c ../common/src/vp-pinch-zoom.c ../src/view/mp-video-list-remove-ctrl.c ../playview/src/feature/vp-audio-track.c ../playview/src/widget/vp-play-brightness-popup.c ../src/widget/mp-video-view-popup-ctrl.c ../playview/src/core/vp-image-util.c ../src/widget/mp-external-ug.c ../src/view/mp-video-list-view-common.c ../playview/src/core/vp-multi-path.c ../src/feature/mp-launching-video-displayer.c ../src/view/mp-video-list-view-thumbnail.c ../playview/src/common/vp-play-config.c ../src/view/mp-video-list-personal-view.c ../src/view/mp-video-detail-view.c ../playview/src/feature/vp-sound-alive.c ../src/view/mp-video-list-view-folder.c ../playview/src/vp-play-view.c ../src/view/mp-video-list-view-item-of-folder.c ../playview/src/feature/vp-subtitle-sync.c ../playview/src/feature/vp-sound-path.c ../common/src/vp-media-content-util.c ../playview/src/common/vp-play-preference.c ../playview/src/widget/vp-play-volume-popup.c ../playview/src/core/vp-media-contents.c ../common/src/vp-db-util.c ../src/widget/mp-video-list-option-ctrl.c ../playview/src/feature/vp-repeat.c ../playview/src/core/vp-avrcp.c ../playview/src/feature/vp-subtitle-alignment.c ../src/common/mp-video-sound-manager.c ../playview/src/widget/vp-play-subtitle.c ../common/src/vp-util.c ../src/widget/mp-video-list-sort-ctrl.c ../src/view/mp-video-list-personal-ctrl.c ../common/src/vp-file-util.c ../playview/src/feature/vp-subtitle-bg-color.c ../src/common/mp-util-media-service.c ../playview/src/widget/vp-play-bookmark.c ../playview/src/feature/vp-subtitle-select.c ../src/widget/mp-util-widget-ctrl.c ../playview/src/feature/vp-subtitle-font.c ../common/src/vp-chapter-db.c ../src/view/mp-video-list-view-normal.c ../src/common/mp-util-config.c ../playview/src/common/vp-play-util.c ../playview/src/widget/vp-play-popup.c ../src/common/mp-rotate-ctrl.c ../src/common/mp-util-preference.c ../playview/src/feature/vp-detail.c ../playview/src/widget/vp-play-progressbar.c ../playview/src/feature/vp-subtitle-edge.c ../src/widget/mp-video-nocontent-layout.c ../src/view/mp-video-list-share-via-view.c ../src/viewMgr/videos-view-mgr.c ../src/widget/mp-footer-toolbar.c ../playview/src/core/vp-sound.c ../playview/src/common/vp-play-ug.c ../playview/src/core/vp-device-language.c ../playview/src/feature/vp-play-speed.c ../src/view/mp-video-list-folder-share-via-view.c ../playview/src/feature/vp-subtitle-track.c ../playview/src/feature/vp-subtitle-color.c ../playview/src/core/vp-hollic.c ../src/view/mp-video-list-view-select.c ../playview/src/core/vp-mm-player.c ../src/view/mp-video-list-remove-view.c ../playview/src/widget/vp-play-volume.c ../playview/src/widget/vp-play-loading-ani.c ../playview/src/view/vp-play-normal-view.c ../playview/src/core/vp-device.c ../src/view/mp-video-list-view-main.c ../playview/src/widget/vp-play-button.c ../playview/src/widget/vp-play-more.c ../src/widget/mp-video-rename-ctrl.c ../common/src/vp-preview-db.c ../src/widget/mp-video-list-view-as-ctrl.c ../src/widget/mp-video-list-auto-play-ctrl.c ../src/feature/mp-util-move.c ../src/view/mp-video-search-view.c ../playview/src/feature/vp-capture.c ../src/common/mp-drm-ctrl.c ../src/common/mp-video-info-ctrl.c ../playview/src/feature/vp-subtitle.c ../src/common/mp-video-util-db-controller.c ../common/src/vp-thumb-db.c ../src/common/mp-util.c ../playview/src/core/vp-sensor.c ../playview/src/feature/vp-zoom-guide.c ../playview/src/feature/vp-setting.c +USER_SRCS = src/serviceParser/vp-service-parser.c src/vp-main.c ../playview/src/core/vp-media-key.c ../src/view/mp-library-view-mgr.c ../playview/src/feature/vp-subtitle-size.c ../playview/src/feature/vp-share.c ../common/src/vp-pinch-zoom.c ../src/view/mp-video-list-remove-ctrl.c ../playview/src/feature/vp-audio-track.c ../playview/src/widget/vp-play-brightness-popup.c ../src/widget/mp-video-view-popup-ctrl.c ../playview/src/core/vp-image-util.c ../src/widget/mp-external-ug.c ../src/view/mp-video-list-view-common.c ../playview/src/core/vp-multi-path.c ../src/feature/mp-launching-video-displayer.c ../src/view/mp-video-list-view-thumbnail.c ../playview/src/common/vp-play-config.c ../src/view/mp-video-list-personal-view.c ../src/view/mp-video-detail-view.c ../playview/src/feature/vp-sound-alive.c ../src/view/mp-video-list-view-folder.c ../playview/src/vp-play-view.c ../src/view/mp-video-list-view-item-of-folder.c ../playview/src/feature/vp-subtitle-sync.c ../playview/src/feature/vp-sound-path.c ../common/src/vp-media-content-util.c ../playview/src/common/vp-play-preference.c ../playview/src/widget/vp-play-volume-popup.c ../playview/src/core/vp-media-contents.c ../common/src/vp-db-util.c ../src/widget/mp-video-list-option-ctrl.c ../playview/src/feature/vp-repeat.c ../playview/src/core/vp-avrcp.c ../playview/src/feature/vp-subtitle-alignment.c ../src/common/mp-video-sound-manager.c ../playview/src/widget/vp-play-subtitle.c ../common/src/vp-util.c ../src/widget/mp-video-list-sort-ctrl.c ../src/view/mp-video-list-personal-ctrl.c ../common/src/vp-file-util.c ../playview/src/feature/vp-subtitle-bg-color.c ../src/common/mp-util-media-service.c ../playview/src/widget/vp-play-bookmark.c ../playview/src/feature/vp-subtitle-select.c ../src/widget/mp-util-widget-ctrl.c ../playview/src/feature/vp-subtitle-font.c ../common/src/vp-chapter-db.c ../src/view/mp-video-list-view-normal.c ../src/common/mp-util-config.c ../playview/src/common/vp-play-util.c ../playview/src/widget/vp-play-minicontroller.c ../playview/src/widget/vp-play-lockscreenmc.c ../playview/src/widget/vp-play-popup.c ../src/common/mp-rotate-ctrl.c ../src/common/mp-util-preference.c ../playview/src/feature/vp-detail.c ../playview/src/widget/vp-play-progressbar.c ../playview/src/feature/vp-subtitle-edge.c ../src/widget/mp-video-nocontent-layout.c ../src/view/mp-video-list-share-via-view.c ../src/viewMgr/videos-view-mgr.c ../src/widget/mp-footer-toolbar.c ../playview/src/core/vp-sound.c ../playview/src/common/vp-play-ug.c ../playview/src/core/vp-device-language.c ../playview/src/feature/vp-play-speed.c ../src/view/mp-video-list-folder-share-via-view.c ../playview/src/feature/vp-subtitle-track.c ../playview/src/feature/vp-subtitle-color.c ../playview/src/core/vp-hollic.c ../src/view/mp-video-list-view-select.c ../playview/src/core/vp-mm-player.c ../src/view/mp-video-list-remove-view.c ../playview/src/widget/vp-play-volume.c ../playview/src/widget/vp-play-loading-ani.c ../playview/src/view/vp-play-normal-view.c ../playview/src/core/vp-device.c ../src/view/mp-video-list-view-main.c ../playview/src/widget/vp-play-button.c ../playview/src/widget/vp-play-more.c ../src/widget/mp-video-rename-ctrl.c ../common/src/vp-preview-db.c ../src/widget/mp-video-list-view-as-ctrl.c ../src/widget/mp-video-list-auto-play-ctrl.c ../src/feature/mp-util-move.c ../src/view/mp-video-search-view.c ../playview/src/feature/vp-capture.c ../src/common/mp-drm-ctrl.c ../src/common/mp-video-info-ctrl.c ../playview/src/feature/vp-subtitle.c ../src/common/mp-video-util-db-controller.c ../common/src/vp-thumb-db.c ../src/common/mp-util.c ../playview/src/core/vp-sensor.c ../playview/src/feature/vp-zoom-guide.c ../playview/src/feature/vp-setting.c # EDC Sources USER_EDCS = @@ -59,7 +59,7 @@ USER_EDCS_FONT_DIRS_ABS = # EDC Flags USER_EXT_EDC_KEYS = EDC0 -USER_EXT_EDC0_EDCS = res/edje/pv-trim-control.edc res/edje/pv-custom-winset.edc res/edje/custom/pv-custom-image.edc res/edje/pv-sensor-popup.edc res/edje/custom/pv-custom-define.edc res/edje/pv-bookmark-item.edc res/edje/pv-normal-control.edc res/edje/pv-normal-top-control.edc res/edje/pv-tag-buddy.edc res/edje/pv-volume.edc res/edje/pv-progressbar.edc res/edje/pv-macro.edc res/edje/pv-multi-main.edc res/edje/pv-trim-main.edc res/edje/pv-colorselector.edc res/edje/pv-minicontroller.edc res/edje/pv-brightness-popup.edc res/edje/pv-speed-popup.edc res/edje/pv-tag-preview.edc res/edje/pv-zoom-guide.edc res/edje/pv-normal-main.edc res/edje/pv-popup.edc res/edje/pv-gesture.edc res/edje/pv-trim-top-control.edc res/edje/pv-subtitle.edc res/edje/pv-subtitle-color-popup.edc res/edje/pv-volume-popup.edc res/edje/pv-image.edc res/edje/pv-resource.edc res/edje/pv-normal-function.edc res/edje/pv-chapter-main-new.edc res/edje/pv-trim-item.edc res/edje/pv-bookmark.edc +USER_EXT_EDC0_EDCS = res/edje/pv-trim-control.edc res/edje/pv-custom-winset.edc res/edje/custom/pv-custom-image.edc res/edje/pv-sensor-popup.edc res/edje/custom/pv-custom-define.edc res/edje/pv-bookmark-item.edc res/edje/pv-normal-control.edc res/edje/pv-normal-top-control.edc res/edje/pv-tag-buddy.edc res/edje/pv-volume.edc res/edje/pv-progressbar.edc res/edje/pv-macro.edc res/edje/pv-multi-main.edc res/edje/pv-trim-main.edc res/edje/pv-colorselector.edc res/edje/pv-lockscreenmini.edc res/edje/pv-minicontroller.edc res/edje/pv-brightness-popup.edc res/edje/pv-speed-popup.edc res/edje/pv-tag-preview.edc res/edje/pv-zoom-guide.edc res/edje/pv-normal-main.edc res/edje/pv-popup.edc res/edje/pv-gesture.edc res/edje/pv-trim-top-control.edc res/edje/pv-subtitle.edc res/edje/pv-subtitle-color-popup.edc res/edje/pv-volume-popup.edc res/edje/pv-image.edc res/edje/pv-resource.edc res/edje/pv-normal-function.edc res/edje/pv-chapter-main-new.edc res/edje/pv-trim-item.edc res/edje/pv-bookmark.edc USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje/images USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS = $(workspace_loc)/playview/res/edje/images USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds -- 2.7.4