[UX IMPL]Minicontroller and lockscreen controller implemented 01/88401/3 submit/tizen_mobile/20160917.145605
authorAlka Sethi <alka.sethi@samsung.com>
Sat, 17 Sep 2016 12:02:47 +0000 (17:32 +0530)
committerAlka Sethi <alka.sethi@samsung.com>
Sat, 17 Sep 2016 12:12:44 +0000 (17:42 +0530)
Change-Id: I6ab05fd3d712d6bd1a15247d3092370163303826
Signed-off-by: Alka Sethi <alka.sethi@samsung.com>
50 files changed:
playview/CMakeLists.txt
playview/res/edje/images/lock_screen/album_frame.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_66.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_66_focus.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_66_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_84.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_84_focus.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_button_84_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_ff.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_ff_dim.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_ff_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_pause.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_pause_dim.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_pause_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_play.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_play_dim.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_play_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_rewind.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_rewind_press.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_stop.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_stop_dim.png [new file with mode: 0755]
playview/res/edje/images/lock_screen/control_circle_icon_stop_press.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/album_frame.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/bg_btn_player_01.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/bg_btn_player_01_ef.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/bg_btn_player_02.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/bg_btn_player_02_ef.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/btn_controller_close.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/icon_player_next.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/icon_player_pause.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/icon_player_play.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/icon_player_prev.png [new file with mode: 0755]
playview/res/edje/images/mini_controller/music_btn_player_next_nor.png [new file with mode: 0644]
playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png [new file with mode: 0644]
playview/res/edje/images/mini_controller/music_btn_player_play_nor.png [new file with mode: 0644]
playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png [new file with mode: 0644]
playview/res/edje/pv-lockscreenmini.edc [new file with mode: 0644]
playview/res/edje/pv-minicontroller.edc
playview/src/include/vp-play-string-define.h
playview/src/view/include/vp-play-normal-view.h
playview/src/view/include/vp-play-view-priv.h
playview/src/view/vp-play-normal-view.c
playview/src/vp-play-view.c
playview/src/widget/include/vp-play-lockscreenmc.h [new file with mode: 0644]
playview/src/widget/include/vp-play-minicontroller.h [new file with mode: 0644]
playview/src/widget/vp-play-lockscreenmc.c [new file with mode: 0644]
playview/src/widget/vp-play-minicontroller.c [new file with mode: 0644]
project_def.prop
vp-main/project_def.prop

index c00185e..16428c7 100755 (executable)
@@ -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 (executable)
index 0000000..b70b588
Binary files /dev/null and b/playview/res/edje/images/lock_screen/album_frame.png differ
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 (executable)
index 0000000..738f601
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_66.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_button_66_focus.png b/playview/res/edje/images/lock_screen/control_circle_button_66_focus.png
new file mode 100755 (executable)
index 0000000..dca73d4
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_66_focus.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_button_66_press.png b/playview/res/edje/images/lock_screen/control_circle_button_66_press.png
new file mode 100755 (executable)
index 0000000..e4ab23a
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_66_press.png differ
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 (executable)
index 0000000..5be57f7
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_84.png differ
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 (executable)
index 0000000..fc70b99
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_84_focus.png differ
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 (executable)
index 0000000..6141ad6
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_button_84_press.png differ
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 (executable)
index 0000000..0948ca4
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_ff.png differ
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 (executable)
index 0000000..4961fa2
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_ff_dim.png differ
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 (executable)
index 0000000..fc2fb52
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_ff_press.png differ
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 (executable)
index 0000000..5bd2bb3
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_pause.png differ
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 (executable)
index 0000000..3b02732
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_pause_dim.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_pause_press.png b/playview/res/edje/images/lock_screen/control_circle_icon_pause_press.png
new file mode 100755 (executable)
index 0000000..e13378b
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_pause_press.png differ
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 (executable)
index 0000000..c80e1de
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_play.png differ
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 (executable)
index 0000000..1b5d697
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_play_dim.png differ
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 (executable)
index 0000000..6dbc977
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_play_press.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_rewind.png b/playview/res/edje/images/lock_screen/control_circle_icon_rewind.png
new file mode 100755 (executable)
index 0000000..7fe74fd
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_rewind.png differ
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 (executable)
index 0000000..3b185eb
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_rewind_dim.png differ
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 (executable)
index 0000000..185957c
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_rewind_press.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_stop.png b/playview/res/edje/images/lock_screen/control_circle_icon_stop.png
new file mode 100755 (executable)
index 0000000..5e71172
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_stop.png differ
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 (executable)
index 0000000..7322e32
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_stop_dim.png differ
diff --git a/playview/res/edje/images/lock_screen/control_circle_icon_stop_press.png b/playview/res/edje/images/lock_screen/control_circle_icon_stop_press.png
new file mode 100755 (executable)
index 0000000..992538e
Binary files /dev/null and b/playview/res/edje/images/lock_screen/control_circle_icon_stop_press.png differ
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 (executable)
index 0000000..b70b588
Binary files /dev/null and b/playview/res/edje/images/mini_controller/album_frame.png differ
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 (executable)
index 0000000..6ea99a0
Binary files /dev/null and b/playview/res/edje/images/mini_controller/bg_btn_player_01.png differ
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 (executable)
index 0000000..ed1fc1d
Binary files /dev/null and b/playview/res/edje/images/mini_controller/bg_btn_player_01_ef.png differ
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 (executable)
index 0000000..dee1d36
Binary files /dev/null and b/playview/res/edje/images/mini_controller/bg_btn_player_02.png differ
diff --git a/playview/res/edje/images/mini_controller/bg_btn_player_02_ef.png b/playview/res/edje/images/mini_controller/bg_btn_player_02_ef.png
new file mode 100755 (executable)
index 0000000..10f5984
Binary files /dev/null and b/playview/res/edje/images/mini_controller/bg_btn_player_02_ef.png differ
diff --git a/playview/res/edje/images/mini_controller/btn_controller_close.png b/playview/res/edje/images/mini_controller/btn_controller_close.png
new file mode 100755 (executable)
index 0000000..bae96ee
Binary files /dev/null and b/playview/res/edje/images/mini_controller/btn_controller_close.png differ
diff --git a/playview/res/edje/images/mini_controller/icon_player_next.png b/playview/res/edje/images/mini_controller/icon_player_next.png
new file mode 100755 (executable)
index 0000000..dc2b4fd
Binary files /dev/null and b/playview/res/edje/images/mini_controller/icon_player_next.png differ
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 (executable)
index 0000000..4b18759
Binary files /dev/null and b/playview/res/edje/images/mini_controller/icon_player_pause.png differ
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 (executable)
index 0000000..5862a77
Binary files /dev/null and b/playview/res/edje/images/mini_controller/icon_player_play.png differ
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 (executable)
index 0000000..1f0165b
Binary files /dev/null and b/playview/res/edje/images/mini_controller/icon_player_prev.png differ
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 (file)
index 0000000..f911d3a
Binary files /dev/null and b/playview/res/edje/images/mini_controller/music_btn_player_next_nor.png differ
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 (file)
index 0000000..392da39
Binary files /dev/null and b/playview/res/edje/images/mini_controller/music_btn_player_pause_nor.png differ
diff --git a/playview/res/edje/images/mini_controller/music_btn_player_play_nor.png b/playview/res/edje/images/mini_controller/music_btn_player_play_nor.png
new file mode 100644 (file)
index 0000000..68dfaab
Binary files /dev/null and b/playview/res/edje/images/mini_controller/music_btn_player_play_nor.png differ
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 (file)
index 0000000..cab6d1a
Binary files /dev/null and b/playview/res/edje/images/mini_controller/music_btn_player_prev_nor.png differ
diff --git a/playview/res/edje/pv-lockscreenmini.edc b/playview/res/edje/pv-lockscreenmini.edc
new file mode 100644 (file)
index 0000000..fa2c58f
--- /dev/null
@@ -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
+
index 68ff7b3..d0c3fbe 100644 (file)
 * 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"
 #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
index c8a5bec..de4298b 100644 (file)
@@ -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"
 
index a4c4ab6..e587cd4 100644 (file)
@@ -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);
index 80271ba..13af70c 100644 (file)
@@ -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;
 
index 9c7a972..0e1a76b 100644 (file)
@@ -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;
+}
index 5c2aa89..99be957 100644 (file)
@@ -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 (file)
index 0000000..65831ec
--- /dev/null
@@ -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 (file)
index 0000000..967f23c
--- /dev/null
@@ -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 (file)
index 0000000..e6ccd12
--- /dev/null
@@ -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 <runtime_info.h>
+#include <network/wifi.h>
+#include <media_key.h>
+#include <sound_manager.h>
+#include <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+#include <device/display.h>
+#include <device/callback.h>
+
+#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 <sys/time.h>
+//#include <minicontrol-provider.h>
+//#include <minicontrol-type.h>
+//#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 <device/display.h>
+//#include <device/callback.h>
+//
+//#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 = "<align=center><style=%s><font_size=%d><color=#%s><color_class=%s>%s</font></color_class></font_size></style></align>";
+       char *title = NULL;
+       char *title_format_left = "<align=left><style=%s><font_size=%d><color=#%s><color_class=%s>%s</font></color_class></font_size></style></align>";
+
+       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 (file)
index 0000000..1634540
--- /dev/null
@@ -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 <runtime_info.h>
+#include <network/wifi.h>
+#include <media_key.h>
+#include <sound_manager.h>
+#include <sys/time.h>
+#include <minicontrol-provider.h>
+#include <minicontrol-type.h>
+
+#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 = "<align=left><font_size=%d><color=#%02x%02x%02x%02x>%s</color></font_size></align>";
+       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
+//}
index 2a0ed76..5b0d53e 100644 (file)
@@ -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 
index 87fa6b7..d0a1832 100644 (file)
@@ -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